HaifmvSjlrRsHpController.java 26 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744
  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.SjlrRsjlDTO;
  20. import com.huimv.sjlr.dao.SjlrFmjlDAO;
  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.SjlrFmjlExample;
  25. import com.huimv.sjlr.dataobject.SjlrMzda;
  26. import com.huimv.sjlr.dataobject.SjlrMzdaExample;
  27. import com.huimv.sjlr.dataobject.SjlrRsjl;
  28. import com.huimv.sjlr.dataobject.SjlrRsjlExample;
  29. import com.huimv.web.base.BaseController;
  30. import com.huimv.xt.dao.XtGydmDAO;
  31. import com.huimv.xt.dataobject.XtGydm;
  32. public class HaifmvSjlrRsHpController extends BaseController {
  33. private CommonService commonService;
  34. private XtGydmDAO xtGydmDAO;
  35. private SjlrMzdaDAO sjlrMzdaDAO;
  36. private SjlrRsjlDAO sjlrRsjlDAO;
  37. private SjlrPzjlDAO sjlrPzjlDAO;
  38. private SjlrFmjlDAO sjlrFmjlDAO;
  39. /**
  40. * 加载妊娠
  41. * @param request
  42. * @param response
  43. * @return
  44. * @throws Exception
  45. */
  46. public ModelAndView hvSjlrRsIndex(HttpServletRequest request,
  47. HttpServletResponse response) throws Exception {
  48. ModelAndView mv = new ModelAndView("haifmv/sjrl/rs/rsjl.htm");
  49. Map<String, Object> paramMap = new HashMap<String, Object>();
  50. String dweb = request.getParameter("dweb");
  51. String mcid = request.getParameter("mcid");
  52. String ksrq = request.getParameter("ksrq");
  53. String jsrq = request.getParameter("jsrq");
  54. String cxeph = request.getParameter("cxeph");
  55. SjlrRsjl sjlrRsjl = null;
  56. SjlrRsjlDTO rsjlDTO = null;
  57. List<SjlrRsjlDTO> rsDTOList = new ArrayList<SjlrRsjlDTO>();
  58. List<SjlrRsjl> rsList = null;
  59. String date = "";
  60. int countPage = 0;
  61. int maxPages = 0;
  62. int count = 0;
  63. if (StringUtils.hasText(mcid)) {
  64. paramMap.put("mcid", mcid);
  65. paramMap.put("order", XtSearchSqlConstant.order_by_rs);
  66. if (!StringUtils.hasText(jsrq)) {
  67. jsrq = DateUtil.parserDateToDefaultString(commonService.getCurrentDate());
  68. }
  69. paramMap.put("jsrq", jsrq);
  70. mv.addObject("jsrq", jsrq);
  71. if (!StringUtils.hasText(ksrq)) {
  72. Calendar calendar = new GregorianCalendar();
  73. calendar.setTime(commonService.getCurrentDate());
  74. calendar.add(Calendar.DATE, -7);
  75. ksrq = DateUtil.parserDateToDefaultString(calendar.getTime());
  76. }
  77. paramMap.put("ksrq", ksrq);
  78. mv.addObject("ksrq", ksrq);
  79. if (StringUtils.hasText(dweb)) {
  80. //根据耳标号
  81. paramMap.put("dweb", "%" + dweb +"%" );
  82. mv.addObject("dweb",dweb);
  83. } else if (StringUtils.hasText(cxeph)) {
  84. //根据耳牌号查
  85. paramMap.put("cxeph","%" + cxeph +"%" );
  86. mv.addObject("dweb",cxeph);
  87. }
  88. countPage = sjlrRsjlDAO.selectRsjlListByParam(paramMap).size();
  89. maxPages = (countPage % 15 == 0 ? countPage / 15 : countPage/15 + 1);
  90. paramMap.put("limit", "limit 0,15");
  91. List<SjlrRsjl> rsjlList = sjlrRsjlDAO.selectRsjlListByParam(paramMap);
  92. if (rsjlList.size() == 0) {//如果当天没有则取最近一天
  93. Map<String, Object> paramMapRs = new HashMap<String, Object>();
  94. paramMapRs.put("order", XtSearchSqlConstant.order_by_rs);
  95. paramMapRs.put("mcid", mcid);
  96. countPage = sjlrRsjlDAO.selectRsjlListByParam(paramMapRs).size();
  97. maxPages = (countPage % 15 == 0 ? countPage / 15 : countPage/15 + 1);
  98. paramMapRs.put("limit", "limit 0,15");
  99. List<SjlrRsjl> rsjlListRs = sjlrRsjlDAO.selectRsjlListByParam(paramMapRs);
  100. if (rsjlListRs.size() > 0) {
  101. String lastRssj = DateUtil.parserDateToDefaultString(rsjlListRs.get(0).getRssj());
  102. String lastJsrq = lastRssj;
  103. String lastksrq = lastJsrq;
  104. paramMap.put("jsrq", lastJsrq);
  105. paramMap.put("ksrq", lastksrq);
  106. rsjlList.clear();
  107. rsjlList = sjlrRsjlDAO.selectRsjlListByParam(paramMap);
  108. }
  109. }
  110. List<XtGydm> rsjgList = getGydm(XtAppConstant.CODE_SJLR_RSJG);
  111. if(rsjlList != null && rsjlList.size() > 0 ) {
  112. for (int i = 0 ; i < rsjlList.size() ; i++) {
  113. sjlrRsjl = rsjlList.get(i);
  114. //根据耳标号查询耳牌号
  115. SjlrMzdaExample mzEx = new SjlrMzdaExample();
  116. SjlrMzdaExample.Criteria mzCr = mzEx.createCriteria();
  117. mzCr.andDwebEqualTo(sjlrRsjl.getDweb()).andMcidEqualTo(Integer.parseInt(mcid)).andZfbzEqualTo(XtAppConstant.ZFBZ_VALID);
  118. String eph = sjlrMzdaDAO.selectByExample(mzEx).get(0).getEph();
  119. sjlrRsjl.setEph(eph);
  120. //舍栏
  121. if (StringUtils.hasText(sjlrRsjl.getRsjg())) {
  122. for (XtGydm xtGydm : rsjgList) {
  123. if (xtGydm.getDmid().equals(sjlrRsjl.getRsjg())) {
  124. sjlrRsjl.setRsjgStr(xtGydm.getDmmc());
  125. }
  126. }
  127. }
  128. //妊娠胎次。 筛选该耳标的妊娠修改时间。所有比这个时间小。妊娠结果为怀孕的记录
  129. SjlrRsjlExample rsEx = new SjlrRsjlExample();
  130. SjlrRsjlExample.Criteria rsCr = rsEx.createCriteria();
  131. List<String> rsjg = new ArrayList<String>();
  132. rsjg.add("2");
  133. rsjg.add("13");
  134. rsCr.andDwebEqualTo(sjlrRsjl.getDweb()).andIdLessThanOrEqualTo(sjlrRsjl.getId()).andRssjLessThanOrEqualTo(sjlrRsjl.getRssj()).andRsjgIn(rsjg).andZfbzEqualTo(XtAppConstant.ZFBZ_VALID);
  135. int rstc = sjlrRsjlDAO.countByExample(rsEx);
  136. if (rstc == 0) {
  137. sjlrRsjl.setRstc("1"); //如果从没有记录 则妊娠胎次为1
  138. } else {
  139. sjlrRsjl.setRstc(String.valueOf(rstc));
  140. }
  141. //业务逻辑
  142. if (i == 0) {
  143. rsjlDTO = new SjlrRsjlDTO();
  144. rsList = new ArrayList<SjlrRsjl>();
  145. date = DateUtil.parserDateToDefaultString(sjlrRsjl.getRssj());
  146. rsjlDTO.setDate(date);
  147. rsList.add(sjlrRsjl);
  148. count++;
  149. }else {
  150. if(DateUtil.parserDateToDefaultString(sjlrRsjl.getRssj()).equals(date)) {
  151. count++;
  152. rsList.add(sjlrRsjl);
  153. }else {
  154. rsjlDTO.setRsList(rsList);
  155. rsjlDTO.setCount(count);
  156. rsDTOList.add(rsjlDTO);
  157. rsjlDTO = new SjlrRsjlDTO();
  158. rsList = new ArrayList<SjlrRsjl>();
  159. date = DateUtil.parserDateToDefaultString(sjlrRsjl.getRssj());
  160. rsjlDTO.setDate(date);
  161. rsList.add(sjlrRsjl);
  162. count = 1;
  163. }
  164. }
  165. }
  166. if (count > 0 ) {
  167. rsjlDTO.setRsList(rsList);
  168. rsjlDTO.setCount(count);
  169. rsDTOList.add(rsjlDTO);
  170. }
  171. }
  172. mv.addObject("rsDTOList", rsDTOList);
  173. }
  174. /* mv.addObject("ksrq", ksrq);
  175. mv.addObject("jsrq", jsrq);*/
  176. mv.addObject("maxPages",maxPages);
  177. return mv;
  178. }
  179. /**
  180. * 妊娠记录首页下拉加载
  181. * @param request
  182. * @param response
  183. * @return
  184. * @throws Exception
  185. */
  186. public void addSjlrRsjl(HttpServletRequest request,
  187. HttpServletResponse response) throws Exception {
  188. Map<String, Object> paramMap = new HashMap<String, Object>();
  189. String dweb = request.getParameter("dweb");
  190. String mcid = request.getParameter("mcid");
  191. String ksrq = request.getParameter("ksrq");
  192. String jsrq = request.getParameter("jsrq");
  193. String cxeph = request.getParameter("cxeph");
  194. String page = request.getParameter("page");
  195. SjlrRsjl sjlrRsjl = null;
  196. SjlrRsjlDTO rsjlDTO = null;
  197. List<SjlrRsjlDTO> rsDTOList = new ArrayList<SjlrRsjlDTO>();
  198. List<SjlrRsjl> rsList = null;
  199. String date = "";
  200. int count = 0;
  201. if (StringUtils.hasText(mcid)) {
  202. paramMap.put("mcid", mcid);
  203. paramMap.put("order", XtSearchSqlConstant.order_by_rs);
  204. if (!StringUtils.hasText(jsrq)) {
  205. jsrq = DateUtil.parserDateToDefaultString(commonService.getCurrentDate());
  206. }
  207. paramMap.put("jsrq", jsrq);
  208. if (!StringUtils.hasText(ksrq)) {
  209. Calendar calendar = new GregorianCalendar();
  210. calendar.setTime(commonService.getCurrentDate());
  211. calendar.add(Calendar.DATE, -7);
  212. ksrq = DateUtil.parserDateToDefaultString(calendar.getTime());
  213. }
  214. paramMap.put("ksrq", ksrq);
  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. paramMap.put("limit", "limit " + (Integer.parseInt(page)-1)*15+",15");
  223. List<SjlrRsjl> rsjlList = sjlrRsjlDAO.selectRsjlListByParam(paramMap);
  224. List<XtGydm> rsjgList = getGydm(XtAppConstant.CODE_SJLR_RSJG);
  225. if(rsjlList != null && rsjlList.size() > 0 ) {
  226. for (int i = 0 ; i < rsjlList.size() ; i++) {
  227. sjlrRsjl = rsjlList.get(i);
  228. //根据耳标号查询耳牌号
  229. SjlrMzdaExample mzEx = new SjlrMzdaExample();
  230. SjlrMzdaExample.Criteria mzCr = mzEx.createCriteria();
  231. mzCr.andDwebEqualTo(sjlrRsjl.getDweb()).andMcidEqualTo(Integer.parseInt(mcid)).andZfbzEqualTo(XtAppConstant.ZFBZ_VALID);
  232. String eph = sjlrMzdaDAO.selectByExample(mzEx).get(0).getEph();
  233. sjlrRsjl.setEph(eph);
  234. //舍栏
  235. if (StringUtils.hasText(sjlrRsjl.getRsjg())) {
  236. for (XtGydm xtGydm : rsjgList) {
  237. if (xtGydm.getDmid().equals(sjlrRsjl.getRsjg())) {
  238. sjlrRsjl.setRsjgStr(xtGydm.getDmmc());
  239. }
  240. }
  241. }
  242. //妊娠胎次。 筛选该耳标的妊娠修改时间。所有比这个时间小。妊娠结果为怀孕的记录
  243. SjlrRsjlExample rsEx = new SjlrRsjlExample();
  244. SjlrRsjlExample.Criteria rsCr = rsEx.createCriteria();
  245. List<String> rsjg = new ArrayList<String>();
  246. rsjg.add("2");
  247. rsjg.add("13");
  248. rsCr.andDwebEqualTo(sjlrRsjl.getDweb()).andIdLessThanOrEqualTo(sjlrRsjl.getId()).andRssjLessThanOrEqualTo(sjlrRsjl.getRssj()).andRsjgIn(rsjg).andZfbzEqualTo(XtAppConstant.ZFBZ_VALID);
  249. int rstc = sjlrRsjlDAO.countByExample(rsEx);
  250. if (rstc == 0) {
  251. sjlrRsjl.setRstc("1"); //如果从没有记录 则妊娠胎次为1
  252. } else {
  253. sjlrRsjl.setRstc(String.valueOf(rstc));
  254. }
  255. //业务逻辑
  256. if (i == 0) {
  257. rsjlDTO = new SjlrRsjlDTO();
  258. rsList = new ArrayList<SjlrRsjl>();
  259. date = DateUtil.parserDateToDefaultString(sjlrRsjl.getRssj());
  260. rsjlDTO.setDate(date);
  261. rsList.add(sjlrRsjl);
  262. count++;
  263. }else {
  264. if(DateUtil.parserDateToDefaultString(sjlrRsjl.getRssj()).equals(date)) {
  265. count++;
  266. rsList.add(sjlrRsjl);
  267. }else {
  268. rsjlDTO.setRsList(rsList);
  269. rsjlDTO.setCount(count);
  270. rsDTOList.add(rsjlDTO);
  271. rsjlDTO = new SjlrRsjlDTO();
  272. rsList = new ArrayList<SjlrRsjl>();
  273. date = DateUtil.parserDateToDefaultString(sjlrRsjl.getRssj());
  274. rsjlDTO.setDate(date);
  275. rsList.add(sjlrRsjl);
  276. count = 1;
  277. }
  278. }
  279. }
  280. if (count > 0 ) {
  281. rsjlDTO.setRsList(rsList);
  282. rsjlDTO.setCount(count);
  283. rsDTOList.add(rsjlDTO);
  284. }
  285. }
  286. }
  287. response.setCharacterEncoding("UTF-8");
  288. response.setContentType("text/plain; charset=UTF-8");
  289. response.addHeader("Cache-Control", "no-cache,must-revalidate");
  290. response.addHeader("Pragma", "no-cache");
  291. String param = JsonUtil.list2json(rsDTOList);
  292. response.getWriter().write(param);
  293. }
  294. /**
  295. * 加载妊娠记录新增页面
  296. * @param request
  297. * @param response
  298. * @return
  299. * @throws Exception
  300. */
  301. public ModelAndView hvSjlrRsAdd(HttpServletRequest request,
  302. HttpServletResponse response) throws Exception {
  303. ModelAndView mv = new ModelAndView("haifmv/sjrl/rs/rsjlAdd.htm");
  304. String dweb = request.getParameter("dweb");
  305. String id = request.getParameter("id");
  306. String mcid = request.getParameter("mcid");
  307. String newDate = request.getParameter("date");
  308. String eph = request.getParameter("eph");
  309. Date drrssj = null;
  310. SjlrRsjl sjlrRsjl = new SjlrRsjl();
  311. List<XtGydm> slList = getGydm(XtAppConstant.CODE_SJLR_SL);
  312. List<XtGydm> rsjgList = getGydm(XtAppConstant.CODE_SJLR_RSJG);
  313. List<XtGydm> bzsfList = getGydm(XtAppConstant.CODE_BZSF);
  314. List<SjlrRsjl> rstcList = null;
  315. if ("undefined".equals(id)) {
  316. id = null;
  317. }
  318. if (StringUtils.hasText(mcid)) {
  319. Map<String, Object> paramMap = new HashMap<String, Object>();
  320. paramMap.put("mcid", mcid);
  321. //修改
  322. if (StringUtils.hasText(id) && !StringUtils.hasText(dweb)) {
  323. sjlrRsjl = sjlrRsjlDAO.selectByPrimaryKey(Integer.parseInt(id));
  324. dweb = sjlrRsjl.getDweb();
  325. //根据动物耳标获得耳牌号
  326. SjlrMzdaExample mzEx = new SjlrMzdaExample();
  327. SjlrMzdaExample.Criteria mzCr = mzEx.createCriteria();
  328. mzCr.andDwebEqualTo(sjlrRsjl.getDweb()).andMcidEqualTo(Integer.parseInt(mcid)).andZfbzEqualTo(XtAppConstant.ZFBZ_VALID);
  329. eph = sjlrMzdaDAO.selectByExample(mzEx).get(0).getEph();
  330. sjlrRsjl.setEph(eph);
  331. //妊娠胎次。 筛选该耳标的妊娠修改时间。所有比这个时间小。妊娠结果为怀孕的记录
  332. Date rssj = sjlrRsjl.getXgsj();
  333. SjlrRsjlExample rsEx = new SjlrRsjlExample();
  334. SjlrRsjlExample.Criteria rsCr = rsEx.createCriteria();
  335. List<String> rsjg = new ArrayList<String>();
  336. rsjg.add("2");
  337. rsjg.add("13");
  338. rsCr.andDwebEqualTo(sjlrRsjl.getDweb()).andRssjLessThanOrEqualTo(rssj).andIdLessThanOrEqualTo(sjlrRsjl.getId()).andRsjgIn(rsjg).andZfbzEqualTo(XtAppConstant.ZFBZ_VALID);
  339. int rstc = sjlrRsjlDAO.countByExample(rsEx);
  340. if (rstc == 0) {
  341. sjlrRsjl.setRstc("1"); //如果从没有记录 则妊娠胎次为1
  342. } else {
  343. sjlrRsjl.setRstc(String.valueOf(rstc));
  344. }
  345. mv.addObject("id",id);
  346. mv.addObject("dweb",dweb);
  347. id = null;
  348. } else if (StringUtils.hasText(dweb) && !StringUtils.hasText(id)) {
  349. if (StringUtils.hasText(eph)) {
  350. sjlrRsjl.setEph(eph);
  351. paramMap.put("dweb", dweb);
  352. rstcList = sjlrRsjlDAO.selectRsjlPzListByParam(paramMap);
  353. SjlrRsjl sjlrRsjl2 = rstcList.get(0);
  354. sjlrRsjl.setRssl(sjlrRsjl2.getSl());
  355. sjlrRsjl.setZrsl(sjlrRsjl2.getSl());
  356. sjlrRsjl.setPzid(Integer.parseInt(sjlrRsjl2.getPzids()));
  357. sjlrRsjl.setDweb(dweb);
  358. //妊娠胎次。 筛选该耳标的妊娠修改时间。所有比这个时间小。妊娠结果为怀孕的记录
  359. SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
  360. if (StringUtils.hasText(newDate)) {
  361. drrssj = sdf.parse(newDate);
  362. }else {
  363. drrssj = commonService.getCurrentDate();
  364. }
  365. SjlrRsjlExample rsEx = new SjlrRsjlExample();
  366. SjlrRsjlExample.Criteria rsCr = rsEx.createCriteria();
  367. List<String> rsjg = new ArrayList<String>();
  368. rsjg.add("2");
  369. rsjg.add("13");
  370. rsCr.andDwebEqualTo(dweb).andRssjLessThan(drrssj).andRsjgIn(rsjg).andZfbzEqualTo(XtAppConstant.ZFBZ_VALID);
  371. int rstc = sjlrRsjlDAO.countByExample(rsEx);
  372. if (rstc == 0) {
  373. sjlrRsjl.setRstc("1"); //如果从没有记录 则妊娠胎次为1
  374. } else {
  375. sjlrRsjl.setRstc(String.valueOf(rstc+1));
  376. }
  377. }
  378. }
  379. }
  380. if (newDate != null) {
  381. SimpleDateFormat sdf = new SimpleDateFormat(XtAppConstant.TIME_FORMAT);//小写的mm表示的是分钟
  382. java.util.Date newdate = sdf.parse(newDate);
  383. sjlrRsjl.setRssj(newdate);
  384. }
  385. mv.addObject("bzsfList", bzsfList);
  386. mv.addObject("slList", slList);
  387. mv.addObject("rsjgList", rsjgList);
  388. mv.addObject("sjlrRsjl", sjlrRsjl);
  389. mv.addObject("date" , newDate);
  390. mv.addObject("dweb",dweb);
  391. mv.addObject("kssj",request.getParameter("kssj"));
  392. mv.addObject("jssj",request.getParameter("jssj"));
  393. return mv;
  394. }
  395. /**
  396. * 保存
  397. * @param request
  398. * @throws Exception
  399. */
  400. public void saveHaifmvSjlrRsjl(HttpServletRequest request,
  401. HttpServletResponse response) throws Exception {
  402. response.setContentType("text/json; charset=UTF-8");
  403. response.addHeader("Cache-Control", "no-cache,must-revalidate");
  404. response.addHeader("Pragma", "no-cache");
  405. String dweb = request.getParameter("dweb");
  406. Date rssj = null;
  407. //String id = request.getParameter("id");
  408. SjlrRsjl sjlrRsjl = new SjlrRsjl();
  409. sjlrRsjl = (SjlrRsjl) parseObjectFromRequest(request, sjlrRsjl);
  410. sjlrRsjl.setXgr(getLoginSessionBean(request).getYhid().toString());
  411. sjlrRsjl.setXgsj(commonService.getCurrentDate());
  412. sjlrRsjl.setZfbz(XtAppConstant.ZFBZ_VALID);
  413. if (StringUtils.hasText(dweb)) {
  414. sjlrRsjl.setDweb(dweb);
  415. }
  416. if (StringUtils.hasText(request.getParameter("rsjg"))) {
  417. sjlrRsjl.setRsjg(request.getParameter("rsjg"));
  418. }
  419. if (StringUtils.hasText(request.getParameter("zgy"))) {
  420. sjlrRsjl.setZgy(request.getParameter("zgy"));
  421. }
  422. if (StringUtils.hasText(request.getParameter("rssl"))) {
  423. sjlrRsjl.setRssl(request.getParameter("rssl"));
  424. }
  425. if (StringUtils.hasText(request.getParameter("zrsl"))) {
  426. sjlrRsjl.setZrsl(request.getParameter("zrsl"));
  427. }
  428. //如果这个配种ID已经被用过, 就返回
  429. SjlrRsjlExample rsEx = new SjlrRsjlExample();
  430. SjlrRsjlExample.Criteria rsCr = rsEx.createCriteria();
  431. rsCr.andPzidEqualTo(sjlrRsjl.getPzid()).andZfbzEqualTo(XtAppConstant.ZFBZ_VALID);
  432. int pzid = sjlrRsjlDAO.countByExample(rsEx);
  433. if (pzid > 0 && sjlrRsjl.getId() == 0) {
  434. String jsonStr = "{\"count\" : \"2\"}";
  435. response.getWriter().write(jsonStr);
  436. return;
  437. }
  438. //妊娠时间应该大于配种时间
  439. Date pzsj = sjlrPzjlDAO.selectByPrimaryKey(sjlrRsjl.getPzid()).getPzsj();
  440. if (sjlrRsjl.getId() != 0) {
  441. rssj = sjlrRsjlDAO.selectByPrimaryKey(sjlrRsjl.getId()).getRssj();
  442. }else {
  443. rssj = sjlrRsjl.getRssj();
  444. }
  445. if (pzsj.getTime() > rssj.getTime()) {
  446. String jsonStr = "{\"count\" : \"3\"}";
  447. response.getWriter().write(jsonStr);
  448. return;
  449. }
  450. if (sjlrRsjl.getId().equals(0)) {
  451. sjlrRsjlDAO.insertSelective(sjlrRsjl);
  452. } else {
  453. sjlrRsjlDAO.updateByPrimaryKeySelective(sjlrRsjl);
  454. }
  455. String zrsl = sjlrRsjl.getZrsl();
  456. if (StringUtils.hasText(zrsl)) {
  457. SjlrMzdaExample mzdaEx = new SjlrMzdaExample();
  458. SjlrMzdaExample.Criteria mzdaCr = mzdaEx.createCriteria();
  459. mzdaCr.andDwebEqualTo(sjlrRsjl.getDweb()).andZfbzEqualTo(XtAppConstant.ZFBZ_VALID);
  460. String mcid = request.getParameter("mcid");
  461. if (StringUtils.hasText(mcid)) {
  462. mzdaCr.andMcidEqualTo(Integer.parseInt(mcid));
  463. }
  464. String sczt = sjlrMzdaDAO.selectByExample(mzdaEx).get(0).getDqzt();
  465. SjlrMzda sjlrMzda = new SjlrMzda();
  466. sjlrMzda.setSl(zrsl);
  467. sjlrMzda.setXgr(getLoginSessionBean(request).getYhid().toString());
  468. sjlrMzda.setXgsj(commonService.getCurrentDate());
  469. if (XtAppConstant.CODE_SJLR_RSJG_HY.equals(sjlrRsjl.getRsjg())) {
  470. sjlrMzda.setDqzt(XtAppConstant.CODE_SJLR_DQZT_HY);
  471. } else if (XtAppConstant.CODE_SJLR_RSJG_KT.equals(sjlrRsjl.getRsjg())) {
  472. sjlrMzda.setDqzt(XtAppConstant.CODE_SJLR_DQZT_KH);
  473. } else if (XtAppConstant.CODE_SJLR_RSJG_LC.equals(sjlrRsjl.getRsjg())) {
  474. sjlrMzda.setDqzt(XtAppConstant.CODE_SJLR_DQZT_LC);
  475. } else if (XtAppConstant.CODE_SJLR_RSJG_FQ.equals(sjlrRsjl.getRsjg())) {
  476. sjlrMzda.setDqzt(XtAppConstant.CODE_SJLR_DQZT_FQ);
  477. }
  478. sjlrMzda.setSczt(sczt);
  479. sjlrMzdaDAO.updateByExampleSelective(sjlrMzda, mzdaEx);
  480. }
  481. String jsonStr = "{\"count\" : \"1\"}";
  482. response.getWriter().write(jsonStr);
  483. }
  484. /**
  485. * 耳标公共查询页面
  486. * @param request
  487. * @param response
  488. * @return
  489. * @throws Exception
  490. */
  491. public ModelAndView getHaifmvRsjlSearchDweb(HttpServletRequest request,
  492. HttpServletResponse response) throws Exception {
  493. ModelAndView mv = new ModelAndView("haifmv/sjrl/rs/searchRsep.htm");
  494. String dweb = request.getParameter("dweb");
  495. String mcid = request.getParameter("mcid");
  496. String date = request.getParameter("date");
  497. String cxeph = request.getParameter("cxeph");
  498. int maxPages = 0;
  499. int countPage = 0;
  500. if (StringUtils.hasText(mcid)) {
  501. Map<String, Object> paramMap = new HashMap<String, Object>();
  502. paramMap.put("order", XtSearchSqlConstant.order_by_rs);
  503. paramMap.put("mcid", mcid);
  504. if (StringUtils.hasText(dweb)) {
  505. paramMap.put("dweb", "%" + dweb + "%");
  506. mv.addObject("dweb", dweb);
  507. }
  508. if (StringUtils.hasText(cxeph)) {
  509. paramMap.put("cxeph", "%" + cxeph + "%");
  510. mv.addObject("dweb", cxeph);
  511. }
  512. String dqzthb = XtAppConstant.CODE_SJLR_DQZT_HB;
  513. paramMap.put("hb", dqzthb);
  514. String dqztqt = XtAppConstant.CODE_SJLR_DQZT_QT;
  515. paramMap.put("qt", dqztqt);
  516. String dqztkh = XtAppConstant.CODE_SJLR_DQZT_KH;
  517. paramMap.put("kh", dqztkh);
  518. String dqztdn = XtAppConstant.CODE_SJLR_DQZT_DN;
  519. paramMap.put("dn", dqztdn);
  520. String dqztlc = XtAppConstant.CODE_SJLR_DQZT_LC;
  521. paramMap.put("lc", dqztlc);
  522. String dqztfq = XtAppConstant.CODE_SJLR_DQZT_FQ;
  523. paramMap.put("fq", dqztfq);
  524. String dqztzc = XtAppConstant.CODE_SJLR_DQZT_ZC;
  525. paramMap.put("zc", dqztzc);
  526. countPage = sjlrMzdaDAO.getMzdaListByPzjl(paramMap).size();
  527. maxPages = (countPage % 30 == 0 ? countPage / 30 : countPage/30 + 1);
  528. paramMap.put("limit", "limit 0,30");
  529. List<SjlrMzda> mzdaList = sjlrMzdaDAO.getMzdaListByPzjl(paramMap);
  530. List<XtGydm> pzList = getGydm(XtAppConstant.CODE_SJLR_ZZPZ);
  531. List<XtGydm> dqztList = getGydm(XtAppConstant.CODE_SJLR_MZZT);
  532. if (mzdaList != null && mzdaList.size() > 0) {
  533. for (SjlrMzda sjlrMzda : mzdaList) {
  534. //品种
  535. if (StringUtils.hasText(sjlrMzda.getPz())) {
  536. for (XtGydm xtGydm : pzList) {
  537. if (sjlrMzda.getPz().equals(xtGydm.getDmid())) {
  538. sjlrMzda.setPzStr(xtGydm.getDmmc());
  539. }
  540. }
  541. }
  542. //当前状态
  543. if (StringUtils.hasText(sjlrMzda.getDqzt())) {
  544. for (XtGydm xtGydm : dqztList) {
  545. if (sjlrMzda.getDqzt().equals(xtGydm.getDmid())) {
  546. sjlrMzda.setDqztStr(xtGydm.getDmmc());
  547. }
  548. }
  549. }
  550. }
  551. }
  552. mv.addObject("mzdaList", mzdaList);
  553. mv.addObject("date",date);
  554. mv.addObject("maxPages",maxPages);
  555. }
  556. return mv;
  557. }
  558. /**
  559. * 妊娠记录耳标查询的下拉加载
  560. * @param request
  561. * @param response
  562. * @throws Exception
  563. */
  564. public void addSjlrRsjlSrarch(HttpServletRequest request,
  565. HttpServletResponse response) throws Exception {
  566. response.setCharacterEncoding("UTF-8");
  567. response.setContentType("text/plain; charset=UTF-8");
  568. response.addHeader("Cache-Control", "no-cache,must-revalidate");
  569. response.addHeader("Pragma", "no-cache");
  570. String dweb = request.getParameter("dweb");
  571. String mcid = request.getParameter("mcid");
  572. String cxeph = request.getParameter("cxeph");
  573. String page = request.getParameter("page");
  574. String param = "";
  575. if (StringUtils.hasText(mcid)) {
  576. Map<String, Object> paramMap = new HashMap<String, Object>();
  577. paramMap.put("mcid", mcid);
  578. if (StringUtils.hasText(dweb)) {
  579. paramMap.put("dweb", "%" + dweb + "%");
  580. }
  581. if (StringUtils.hasText(cxeph)) {
  582. paramMap.put("cxeph", "%" + cxeph + "%");
  583. }
  584. String dqzthb = XtAppConstant.CODE_SJLR_DQZT_HB;
  585. paramMap.put("hb", dqzthb);
  586. String dqztqt = XtAppConstant.CODE_SJLR_DQZT_QT;
  587. paramMap.put("qt", dqztqt);
  588. String dqztkh = XtAppConstant.CODE_SJLR_DQZT_KH;
  589. paramMap.put("kh", dqztkh);
  590. String dqztdn = XtAppConstant.CODE_SJLR_DQZT_DN;
  591. paramMap.put("dn", dqztdn);
  592. String dqztlc = XtAppConstant.CODE_SJLR_DQZT_LC;
  593. paramMap.put("lc", dqztlc);
  594. String dqztfq = XtAppConstant.CODE_SJLR_DQZT_FQ;
  595. paramMap.put("fq", dqztfq);
  596. String dqztzc = XtAppConstant.CODE_SJLR_DQZT_ZC;
  597. paramMap.put("zc", dqztzc);
  598. paramMap.put("limit", "limit "+(Integer.parseInt(page)-1)*30+",30");
  599. List<SjlrMzda> mzdaList = sjlrMzdaDAO.getMzdaListByPzjl(paramMap);
  600. List<XtGydm> pzList = getGydm(XtAppConstant.CODE_SJLR_ZZPZ);
  601. List<XtGydm> dqztList = getGydm(XtAppConstant.CODE_SJLR_MZZT);
  602. if (mzdaList != null && mzdaList.size() > 0) {
  603. for (SjlrMzda sjlrMzda : mzdaList) {
  604. //品种
  605. if (StringUtils.hasText(sjlrMzda.getPz())) {
  606. for (XtGydm xtGydm : pzList) {
  607. if (sjlrMzda.getPz().equals(xtGydm.getDmid())) {
  608. sjlrMzda.setPzStr(xtGydm.getDmmc());
  609. }
  610. }
  611. }
  612. //当前状态
  613. if (StringUtils.hasText(sjlrMzda.getDqzt())) {
  614. for (XtGydm xtGydm : dqztList) {
  615. if (sjlrMzda.getDqzt().equals(xtGydm.getDmid())) {
  616. sjlrMzda.setDqztStr(xtGydm.getDmmc());
  617. }
  618. }
  619. }
  620. }
  621. }
  622. param = JsonUtil.list2json(mzdaList);
  623. }
  624. response.getWriter().write(param);
  625. }
  626. /**
  627. * 是否是24小时之内的数据
  628. * @param request
  629. * @throws Exception
  630. */
  631. public void haifmvCheckRsDataIsIn24H(HttpServletRequest request,
  632. HttpServletResponse response) throws Exception {
  633. response.setContentType("text/json; charset=UTF-8");
  634. response.addHeader("Cache-Control", "no-cache,must-revalidate");
  635. response.addHeader("Pragma", "no-cache");
  636. String id = request.getParameter("id");
  637. String jsonStr = "";
  638. if (StringUtils.hasText(id)) {
  639. SjlrRsjlExample RsjlEx = new SjlrRsjlExample();
  640. SjlrRsjlExample.Criteria rsjlCr = RsjlEx.createCriteria();
  641. rsjlCr.andIdEqualTo(Integer.valueOf(id)).andZfbzEqualTo(XtAppConstant.ZFBZ_VALID);
  642. List<SjlrRsjl> RsjlList = sjlrRsjlDAO.selectByExample(RsjlEx);
  643. if (RsjlList.size() > 0) {
  644. boolean isIn24H = commonService.getCurrentDate().getTime() -RsjlList.get(0).getRssj().getTime() <= 24*60*60*1000;
  645. if (isIn24H) {
  646. jsonStr = "{\"count\" : \"1\"}";
  647. } else {
  648. jsonStr = "{\"count\" : \"0\"}";
  649. }
  650. }
  651. }
  652. response.getWriter().write(jsonStr);
  653. }
  654. /**
  655. * 检查该次妊娠是否已经有分娩记录
  656. * @param id
  657. * @thoews Exception
  658. * @return true of false
  659. */
  660. public void haifmvIsFmData(HttpServletRequest request,
  661. HttpServletResponse response) throws Exception {
  662. response.setContentType("text/json; charset=UTF-8");
  663. response.addHeader("Cache-Control", "no-cache,must-revalidate");
  664. response.addHeader("Pragma", "no-cache");
  665. String id = request.getParameter("id");
  666. String jsonStr = "";
  667. if (StringUtils.hasText(id)) {
  668. SjlrFmjlExample FmjlEx = new SjlrFmjlExample();
  669. SjlrFmjlExample.Criteria fmjlCr = FmjlEx.createCriteria();
  670. fmjlCr.andRsidEqualTo(Integer.valueOf(id)).andZfbzEqualTo(XtAppConstant.ZFBZ_VALID);
  671. int count = sjlrFmjlDAO.countByExample(FmjlEx);
  672. if (count == 0) { //如果在分娩记录里没有该RSID ,则可以修改。
  673. jsonStr = "{\"count\" : \"1\"}";
  674. } else {
  675. jsonStr = "{\"count\" : \"0\"}";
  676. }
  677. }
  678. response.getWriter().write(jsonStr);
  679. }
  680. /**
  681. * 获取公用代码
  682. * @param lbmc
  683. * @return
  684. * @throws Exception
  685. */
  686. private List<XtGydm> getGydm(String lbmc) {
  687. return xtGydmDAO.selectGydmByLbmc(lbmc);
  688. }
  689. public void setCommonService(CommonService commonService) {
  690. this.commonService = commonService;
  691. }
  692. public void setXtGydmDAO(XtGydmDAO xtGydmDAO) {
  693. this.xtGydmDAO = xtGydmDAO;
  694. }
  695. public void setSjlrMzdaDAO(SjlrMzdaDAO sjlrMzdaDAO) {
  696. this.sjlrMzdaDAO = sjlrMzdaDAO;
  697. }
  698. public void setSjlrRsjlDAO(SjlrRsjlDAO sjlrRsjlDAO) {
  699. this.sjlrRsjlDAO = sjlrRsjlDAO;
  700. }
  701. public void setSjlrPzjlDAO(SjlrPzjlDAO sjlrPzjlDAO) {
  702. this.sjlrPzjlDAO = sjlrPzjlDAO;
  703. }
  704. public void setSjlrFmjlDAO(SjlrFmjlDAO sjlrFmjlDAO) {
  705. this.sjlrFmjlDAO = sjlrFmjlDAO;
  706. }
  707. }