HaifmvSjlrDnHpController.java 23 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705
  1. package com.huimv.sjlr.plus;
  2. import java.math.BigDecimal;
  3. import java.text.SimpleDateFormat;
  4. import java.util.ArrayList;
  5. import java.util.Calendar;
  6. import java.util.Date;
  7. import java.util.GregorianCalendar;
  8. import java.util.HashMap;
  9. import java.util.List;
  10. import java.util.Map;
  11. import javax.servlet.http.HttpServletRequest;
  12. import javax.servlet.http.HttpServletResponse;
  13. import org.springframework.util.StringUtils;
  14. import org.springframework.web.servlet.ModelAndView;
  15. import com.huimv.busi.xt.constant.XtAppConstant;
  16. import com.huimv.busi.xt.constant.XtSearchSqlConstant;
  17. import com.huimv.busi.xt.model.CommonService;
  18. import com.huimv.busi.xt.utils.DateUtil;
  19. import com.huimv.busi.xt.utils.JsonUtil;
  20. import com.huimv.dto.SjlrDnjlDTO;
  21. import com.huimv.sjlr.dao.SjlrDnjlDAO;
  22. import com.huimv.sjlr.dao.SjlrFmjlDAO;
  23. import com.huimv.sjlr.dao.SjlrMzdaDAO;
  24. import com.huimv.sjlr.dataobject.SjlrDnjl;
  25. import com.huimv.sjlr.dataobject.SjlrDnjlExample;
  26. import com.huimv.sjlr.dataobject.SjlrMzda;
  27. import com.huimv.sjlr.dataobject.SjlrMzdaExample;
  28. import com.huimv.web.base.BaseController;
  29. import com.huimv.xt.dao.XtGydmDAO;
  30. import com.huimv.xt.dataobject.XtGydm;
  31. public class HaifmvSjlrDnHpController extends BaseController {
  32. private CommonService commonService;
  33. private XtGydmDAO xtGydmDAO;
  34. private SjlrMzdaDAO sjlrMzdaDAO;
  35. private SjlrDnjlDAO sjlrDnjlDAO;
  36. private SjlrFmjlDAO sjlrFmjlDAO;
  37. /**
  38. * 加载断奶记录
  39. * @param request
  40. * @param response
  41. * @return
  42. * @throws Exception
  43. */
  44. public ModelAndView hvSjlrDnIndex(HttpServletRequest request,
  45. HttpServletResponse response) throws Exception {
  46. ModelAndView mv = new ModelAndView("haifmv/sjrl/dn/dnjl.htm");
  47. Map<String, Object> paramMap = new HashMap<String, Object>();
  48. String dweb = request.getParameter("dweb");
  49. String mcid = request.getParameter("mcid");
  50. String ksrq = request.getParameter("ksrq");
  51. String jsrq = request.getParameter("jsrq");
  52. String cxeph = request.getParameter("cxeph");
  53. int maxPages = 0;
  54. int countPage = 0;
  55. SjlrDnjlDTO dnDTO = null;
  56. List<SjlrDnjl> dnList = null;
  57. SjlrDnjl sjlrDnjl = null;
  58. List<SjlrDnjlDTO> dnDTOList = new ArrayList<SjlrDnjlDTO>();
  59. String date = "";
  60. int count = 0;
  61. int countzz = 0;
  62. if (StringUtils.hasText(mcid)) {
  63. paramMap.put("mcid", mcid);
  64. paramMap.put("order", XtSearchSqlConstant.order_by_dn);
  65. if (!StringUtils.hasText(jsrq)) {
  66. jsrq = DateUtil.parserDateToDefaultString(commonService.getCurrentDate());
  67. }
  68. paramMap.put("jsrq", jsrq);
  69. mv.addObject("jsrq", jsrq);
  70. if (!StringUtils.hasText(ksrq)) {
  71. Calendar calendar = new GregorianCalendar();
  72. calendar.setTime(commonService.getCurrentDate());
  73. calendar.add(Calendar.DATE, -7);
  74. ksrq = DateUtil.parserDateToDefaultString(calendar.getTime());
  75. }
  76. paramMap.put("ksrq", ksrq);
  77. mv.addObject("ksrq", ksrq);
  78. if (StringUtils.hasText(dweb)) {
  79. //根据耳标号
  80. paramMap.put("dweb", "%" + dweb +"%" );
  81. mv.addObject("dweb",dweb);
  82. } else if (StringUtils.hasText(cxeph)) {
  83. //根据耳牌号查
  84. paramMap.put("cxeph","%" + cxeph +"%" );
  85. mv.addObject("dweb",cxeph);
  86. }
  87. countPage = sjlrDnjlDAO.selectDnjlListByParam(paramMap).size();
  88. maxPages = (countPage % 15 == 0 ? countPage / 15 : countPage/15 + 1);
  89. paramMap.put("limit", "limit 0,15");
  90. //查询当前耳牌/日期下所有的断奶记录
  91. List<SjlrDnjl> dnjlList = sjlrDnjlDAO.selectDnjlListByParam(paramMap);
  92. if (dnjlList.size() == 0) {//如果当天没有则取最近一天
  93. Map<String, Object> paramMapPz = new HashMap<String, Object>();
  94. paramMapPz.put("order", XtSearchSqlConstant.order_by_dn);
  95. countPage = sjlrDnjlDAO.selectDnjlListByParam(paramMapPz).size();
  96. maxPages = (countPage % 15 == 0 ? countPage / 15 : countPage/15 + 1);
  97. paramMapPz.put("limit", "limit 0,15");
  98. paramMapPz.put("mcid", mcid);
  99. List<SjlrDnjl> dnjlListDn = sjlrDnjlDAO.selectDnjlListByParam(paramMapPz);
  100. if (dnjlListDn.size() > 0) {
  101. String lastDnsj = DateUtil.parserDateToDefaultString(dnjlListDn.get(0).getDnsj());
  102. String lastJsrq = lastDnsj;
  103. String lastksrq = lastJsrq;
  104. paramMap.put("jsrq", lastJsrq);
  105. paramMap.put("ksrq", lastksrq);
  106. dnjlList.clear();
  107. dnjlList = sjlrDnjlDAO.selectDnjlListByParam(paramMap);
  108. }
  109. }
  110. List<XtGydm> slList = getGydm(XtAppConstant.CODE_SJLR_SL);
  111. if (dnjlList != null && dnjlList.size() > 0 ) {
  112. for (int i = 0 ;i < dnjlList.size(); i++ ) {
  113. sjlrDnjl = dnjlList.get(i);
  114. //舍栏
  115. if (StringUtils.hasText(sjlrDnjl.getDnsl())) {
  116. for (XtGydm xtGydm : slList) {
  117. if (xtGydm.getDmid().equals(sjlrDnjl.getDnsl())) {
  118. sjlrDnjl.setDnsl(xtGydm.getDmmc());
  119. }
  120. }
  121. }
  122. //断奶胎次
  123. SjlrDnjlExample dnEx = new SjlrDnjlExample();
  124. SjlrDnjlExample.Criteria dnCr = dnEx.createCriteria();
  125. dnCr.andDwebEqualTo(sjlrDnjl.getDweb()).andIdLessThanOrEqualTo(sjlrDnjl.getId()).andZfbzEqualTo(XtAppConstant.ZFBZ_VALID);
  126. int dntc = sjlrDnjlDAO.countByExample(dnEx);
  127. sjlrDnjl.setDntc(String.valueOf(dntc));
  128. //猪仔头数
  129. if (sjlrDnjl.getZzzs() == null) {
  130. sjlrDnjl.setZzzs(0);
  131. }
  132. //断奶均重
  133. if (StringUtils.hasText(sjlrDnjl.getDnwz()) && sjlrDnjl.getDnwz() != "0") {
  134. if (sjlrDnjl.getZzzs() != 0) {
  135. Double str = (Double.parseDouble(sjlrDnjl.getDnwz()) / sjlrDnjl.getZzzs());
  136. if (!"0".equals(str)) {
  137. BigDecimal bd = new BigDecimal(str);
  138. sjlrDnjl.setDnjz(bd.setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue());
  139. }else {
  140. sjlrDnjl.setDnjz((double) 0);
  141. }
  142. } else {
  143. sjlrDnjl.setDnjz((double) 0);
  144. }
  145. }
  146. //业务逻辑
  147. if (i == 0) {
  148. dnDTO = new SjlrDnjlDTO();
  149. dnList = new ArrayList<SjlrDnjl>();
  150. date = DateUtil.parserDateToDefaultString(sjlrDnjl.getDnsj());
  151. dnDTO.setDnrq(date);
  152. dnList.add(sjlrDnjl);
  153. count++;
  154. countzz = sjlrDnjl.getZzzs();
  155. }else {
  156. if (DateUtil.parserDateToDefaultString(sjlrDnjl.getDnsj()).equals(date)) {
  157. count++;
  158. countzz += sjlrDnjl.getZzzs();
  159. dnList.add(sjlrDnjl);
  160. }else {
  161. dnDTO.setDnList(dnList);
  162. dnDTO.setCount(count);
  163. dnDTO.setCountzz(countzz);
  164. dnDTOList.add(dnDTO);
  165. dnDTO = new SjlrDnjlDTO();
  166. dnList = new ArrayList<SjlrDnjl>();
  167. date = DateUtil.parserDateToDefaultString(sjlrDnjl.getDnsj());
  168. dnDTO.setDnrq(date);
  169. dnList.add(sjlrDnjl);
  170. count = 1;
  171. countzz = sjlrDnjl.getZzzs();
  172. }
  173. }
  174. }
  175. if (count > 0) {
  176. dnDTO.setDnList(dnList);
  177. dnDTO.setCount(count);
  178. dnDTO.setCountzz(countzz);
  179. dnDTOList.add(dnDTO);
  180. }
  181. }
  182. mv.addObject("dnDTOList", dnDTOList);
  183. }
  184. /* mv.addObject("ksrq", ksrq);
  185. mv.addObject("jsrq", jsrq);*/
  186. mv.addObject("maxPages",maxPages);
  187. return mv;
  188. }
  189. /**
  190. * 断奶记录首页的下拉加载
  191. * @param request
  192. * @param response
  193. * @return
  194. * @throws Exception
  195. */
  196. public void addSjlrDnjl(HttpServletRequest request,
  197. HttpServletResponse response) throws Exception {
  198. String page = request.getParameter("page");
  199. String dweb = request.getParameter("dweb");
  200. String mcid = request.getParameter("mcid");
  201. String ksrq = request.getParameter("ksrq");
  202. String jsrq = request.getParameter("jsrq");
  203. String cxeph = request.getParameter("cxeph");//查询耳牌号
  204. Map<String, Object> paramMap = new HashMap<String, Object>();
  205. SjlrDnjlDTO dnDTO = null;
  206. List<SjlrDnjl> dnList = null;
  207. SjlrDnjl sjlrDnjl = null;
  208. List<SjlrDnjlDTO> dnDTOList = new ArrayList<SjlrDnjlDTO>();
  209. String date = "";
  210. int count = 0;
  211. int countzz = 0;
  212. if (StringUtils.hasText(mcid)) {
  213. paramMap.put("mcid", mcid);
  214. paramMap.put("order", XtSearchSqlConstant.order_by_dn);
  215. if (!StringUtils.hasText(jsrq)) {
  216. jsrq = DateUtil.parserDateToDefaultString(commonService.getCurrentDate());
  217. }
  218. paramMap.put("jsrq", jsrq);
  219. if (!StringUtils.hasText(ksrq)) {
  220. Calendar calendar = new GregorianCalendar();
  221. calendar.setTime(commonService.getCurrentDate());
  222. calendar.add(Calendar.DATE, -7);
  223. ksrq = DateUtil.parserDateToDefaultString(calendar.getTime());
  224. }
  225. paramMap.put("ksrq", ksrq);
  226. if (StringUtils.hasText(dweb)) {
  227. //根据耳标号
  228. paramMap.put("dweb", "%" + dweb +"%" );
  229. } else if (StringUtils.hasText(cxeph)) {
  230. //根据耳牌号查
  231. paramMap.put("cxeph","%" + cxeph +"%" );
  232. }
  233. paramMap.put("limit", "limit " + (Integer.parseInt(page)-1)*15+",15");
  234. //查询当前耳牌/日期下所有的断奶记录
  235. List<SjlrDnjl> dnjlList = sjlrDnjlDAO.selectDnjlListByParam(paramMap);
  236. List<XtGydm> slList = getGydm(XtAppConstant.CODE_SJLR_SL);
  237. if (dnjlList != null && dnjlList.size() > 0 ) {
  238. for (int i = 0 ;i < dnjlList.size(); i++ ) {
  239. sjlrDnjl = dnjlList.get(i);
  240. //舍栏
  241. if (StringUtils.hasText(sjlrDnjl.getDnsl())) {
  242. for (XtGydm xtGydm : slList) {
  243. if (xtGydm.getDmid().equals(sjlrDnjl.getDnsl())) {
  244. sjlrDnjl.setDnsl(xtGydm.getDmmc());
  245. }
  246. }
  247. }
  248. //断奶胎次
  249. SjlrDnjlExample dnEx = new SjlrDnjlExample();
  250. SjlrDnjlExample.Criteria dnCr = dnEx.createCriteria();
  251. dnCr.andDwebEqualTo(sjlrDnjl.getDweb()).andIdLessThanOrEqualTo(sjlrDnjl.getId()).andZfbzEqualTo(XtAppConstant.ZFBZ_VALID);
  252. int dntc = sjlrDnjlDAO.countByExample(dnEx);
  253. sjlrDnjl.setDntc(String.valueOf(dntc));
  254. //猪仔头数
  255. if (sjlrDnjl.getZzzs() == null) {
  256. sjlrDnjl.setZzzs(0);
  257. }
  258. //断奶均重
  259. if (StringUtils.hasText(sjlrDnjl.getDnwz()) && sjlrDnjl.getDnwz() != "0") {
  260. if (sjlrDnjl.getZzzs() != 0) {
  261. Double str = (Double.parseDouble(sjlrDnjl.getDnwz()) / sjlrDnjl.getZzzs());
  262. if (!"0".equals(str)) {
  263. BigDecimal bd = new BigDecimal(str);
  264. sjlrDnjl.setDnjz(bd.setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue());
  265. }else {
  266. sjlrDnjl.setDnjz((double) 0);
  267. }
  268. } else {
  269. sjlrDnjl.setDnjz((double) 0);
  270. }
  271. }
  272. //业务逻辑
  273. if (i == 0) {
  274. dnDTO = new SjlrDnjlDTO();
  275. dnList = new ArrayList<SjlrDnjl>();
  276. date = DateUtil.parserDateToDefaultString(sjlrDnjl.getDnsj());
  277. dnDTO.setDnrq(date);
  278. dnList.add(sjlrDnjl);
  279. count++;
  280. countzz = sjlrDnjl.getZzzs();
  281. }else {
  282. if (DateUtil.parserDateToDefaultString(sjlrDnjl.getDnsj()).equals(date)) {
  283. count++;
  284. countzz += sjlrDnjl.getZzzs();
  285. dnList.add(sjlrDnjl);
  286. }else {
  287. dnDTO.setDnList(dnList);
  288. dnDTO.setCount(count);
  289. dnDTO.setCountzz(countzz);
  290. dnDTOList.add(dnDTO);
  291. dnDTO = new SjlrDnjlDTO();
  292. dnList = new ArrayList<SjlrDnjl>();
  293. date = DateUtil.parserDateToDefaultString(sjlrDnjl.getDnsj());
  294. dnDTO.setDnrq(date);
  295. dnList.add(sjlrDnjl);
  296. count = 1;
  297. countzz = sjlrDnjl.getZzzs();
  298. }
  299. }
  300. }
  301. if (count > 0) {
  302. dnDTO.setDnList(dnList);
  303. dnDTO.setCount(count);
  304. dnDTO.setCountzz(countzz);
  305. dnDTOList.add(dnDTO);
  306. }
  307. }
  308. response.setCharacterEncoding("UTF-8");
  309. response.setContentType("text/plain; charset=UTF-8");
  310. response.addHeader("Cache-Control", "no-cache,must-revalidate");
  311. response.addHeader("Pragma", "no-cache");
  312. String param = JsonUtil.list2json(dnDTOList);
  313. response.getWriter().write(param);
  314. }
  315. }
  316. /**
  317. * 加载断奶记录新增页面
  318. * @param request
  319. * @param response
  320. * @return
  321. * @throws Exception
  322. */
  323. public ModelAndView hvSjlrDnAdd(HttpServletRequest request,
  324. HttpServletResponse response) throws Exception {
  325. ModelAndView mv = new ModelAndView("haifmv/sjrl/dn/dnjlAdd.htm");
  326. String dweb = request.getParameter("dweb");
  327. String id = request.getParameter("id");
  328. String mcid = request.getParameter("mcid");
  329. String newDate = request.getParameter("date");
  330. String eph = request.getParameter("eph");
  331. SjlrDnjl sjlrDnjl = new SjlrDnjl();
  332. List<XtGydm> slList = getGydm(XtAppConstant.CODE_SJLR_SL);
  333. List<SjlrDnjl> dnjltc = new ArrayList<SjlrDnjl>() ;
  334. Map<String, Object> paramMap = new HashMap<String, Object>();
  335. if ("undefined".equals(id)) {
  336. id=null;
  337. }
  338. if (StringUtils.hasText(mcid)) {
  339. //有id 无耳标, 编辑修改
  340. if (StringUtils.hasText(id) && !StringUtils.hasText(dweb)) {
  341. sjlrDnjl = sjlrDnjlDAO.selectByPrimaryKey(Integer.parseInt(id));
  342. //根据动物耳标查询断奶胎次
  343. SjlrDnjlExample dnEx = new SjlrDnjlExample();
  344. SjlrDnjlExample.Criteria dnCr = dnEx.createCriteria();
  345. dnCr.andDwebEqualTo(sjlrDnjl.getDweb()).andIdLessThanOrEqualTo(sjlrDnjl.getId()).andZfbzEqualTo(XtAppConstant.ZFBZ_VALID);
  346. int dntc = sjlrDnjlDAO.countByExample(dnEx);
  347. sjlrDnjl.setDntc(String.valueOf(dntc));
  348. //耳牌号
  349. if (StringUtils.hasText(eph)) {
  350. sjlrDnjl.setEph(eph);
  351. }
  352. dweb = sjlrDnjl.getDweb();
  353. //有耳标无ID ,新增插入耳标等信息
  354. } else if (StringUtils.hasText(dweb) && !StringUtils.hasText(id)) {
  355. if (StringUtils.hasText(eph)) {
  356. sjlrDnjl.setEph(eph);
  357. }
  358. sjlrDnjl.setDweb(dweb);
  359. //根据动物耳标查询断奶胎次
  360. paramMap.put("dweb", dweb);
  361. paramMap.put("mcid", mcid);
  362. String dqztid = "3";
  363. paramMap.put("dqztid", dqztid);
  364. dnjltc = sjlrDnjlDAO.selectDnjltcByParam(paramMap);
  365. if (StringUtils.hasText(dnjltc.get(0).getDnsl())) {
  366. for (XtGydm xtGydm : slList) {
  367. if (xtGydm.getDmid().equals(dnjltc.get(0).getDnsl())) {
  368. sjlrDnjl.setDnsl(xtGydm.getDmid());
  369. sjlrDnjl.setZrsl(xtGydm.getDmid());//默认不转栏
  370. }
  371. }
  372. }
  373. if (dnjltc.get(0).getFmid() != null) {
  374. sjlrDnjl.setFmid(dnjltc.get(0).getFmid());
  375. }
  376. if (dnjltc.size() > 0) {
  377. if (dnjltc.get(0).getDntc() != null){
  378. sjlrDnjl.setDntc(String.valueOf(Integer.parseInt(dnjltc.get(0).getDntc()) + 1));
  379. } else {
  380. sjlrDnjl.setDntc("1");
  381. }
  382. } else {
  383. sjlrDnjl.setDntc("0");
  384. }
  385. }
  386. if (newDate != null) {
  387. SimpleDateFormat sdf = new SimpleDateFormat(XtAppConstant.TIME_FORMAT);//小写的mm表示的是分钟
  388. java.util.Date newdate = sdf.parse(newDate);
  389. sjlrDnjl.setDnsj(newdate);
  390. }
  391. if (dweb != null) {
  392. sjlrDnjl.setDweb(dweb);
  393. }
  394. }
  395. List<XtGydm> zcycList = getGydm(XtAppConstant.CODE_ZCYC);
  396. mv.addObject("slList", slList);
  397. mv.addObject("zcycList", zcycList);
  398. mv.addObject("sjlrDnjl", sjlrDnjl);
  399. mv.addObject("date" , newDate);
  400. mv.addObject("dweb",dweb);
  401. mv.addObject("kssj",request.getParameter("kssj"));
  402. mv.addObject("jssj",request.getParameter("jssj"));
  403. return mv;
  404. }
  405. /**
  406. * 普通舍保存
  407. * @param request
  408. * @throws Exception
  409. */
  410. public void saveHaifmvSjlrDnjl(HttpServletRequest request,
  411. HttpServletResponse response) throws Exception {
  412. response.setContentType("text/json; charset=UTF-8");
  413. response.addHeader("Cache-Control", "no-cache,must-revalidate");
  414. response.addHeader("Pragma", "no-cache");
  415. String dweb = request.getParameter("dweb");
  416. Date dnsj = null;
  417. SjlrDnjl sjlrDnjl = new SjlrDnjl();
  418. sjlrDnjl = (SjlrDnjl) parseObjectFromRequest(request, sjlrDnjl);
  419. sjlrDnjl.setXgr(getLoginSessionBean(request).getYhid().toString());
  420. sjlrDnjl.setXgsj(commonService.getCurrentDate());
  421. sjlrDnjl.setZfbz(XtAppConstant.ZFBZ_VALID);
  422. if (StringUtils.hasText(dweb)) {
  423. sjlrDnjl.setDweb(dweb);
  424. }
  425. if (StringUtils.hasText(request.getParameter("dnsl"))) {
  426. sjlrDnjl.setDnsl(request.getParameter("dnsl"));
  427. }
  428. if (StringUtils.hasText(request.getParameter("zrsl"))) {
  429. sjlrDnjl.setZrsl(request.getParameter("zrsl"));
  430. }
  431. if (StringUtils.hasText(sjlrDnjl.getFmid().toString())) {
  432. SjlrDnjlExample dnEx = new SjlrDnjlExample();
  433. SjlrDnjlExample.Criteria dnCr = dnEx.createCriteria();
  434. dnCr.andFmidEqualTo(sjlrDnjl.getFmid()).andZfbzEqualTo(XtAppConstant.ZFBZ_VALID);
  435. int count = sjlrDnjlDAO.countByExample(dnEx);
  436. if (count > 0) {
  437. if (sjlrDnjl.getId() == 0) {
  438. String jsonStr = "{\"count\" : \"2\"}";
  439. response.getWriter().write(jsonStr);
  440. return;
  441. }
  442. }
  443. }
  444. //猪仔总数
  445. if (!StringUtils.hasText(String.valueOf(sjlrDnjl.getZzzs()))) {
  446. sjlrDnjl.setZzzs(0);
  447. }
  448. //断奶时间应该大于分娩时间
  449. Date fmsj = sjlrFmjlDAO.selectByPrimaryKey(sjlrDnjl.getFmid()).getFmsj();
  450. if (sjlrDnjl.getId() != 0) {
  451. dnsj = sjlrDnjlDAO.selectByPrimaryKey(sjlrDnjl.getId()).getDnsj();
  452. }else {
  453. dnsj = sjlrDnjl.getDnsj();
  454. }
  455. if (fmsj.getTime() > dnsj.getTime()) {
  456. String jsonStr = "{\"count\" : \"4\"}";
  457. response.getWriter().write(jsonStr);
  458. return;
  459. }
  460. //断奶窝重
  461. if (!StringUtils.hasText(sjlrDnjl.getDnwz())) {
  462. sjlrDnjl.setDnwz("0");
  463. }
  464. //寄入数
  465. if (!StringUtils.hasText(String.valueOf(sjlrDnjl.getJrs()))) {
  466. sjlrDnjl.setJrs(0);
  467. }
  468. //寄出数
  469. if (!StringUtils.hasText(String.valueOf(sjlrDnjl.getJcs()))) {
  470. sjlrDnjl.setJcs(0);
  471. }
  472. //背膘
  473. if (!StringUtils.hasText (sjlrDnjl.getBb())) {
  474. sjlrDnjl.setBb("0");
  475. }
  476. if (sjlrDnjl.getId() != 0) {
  477. sjlrDnjlDAO.updateByPrimaryKeySelective(sjlrDnjl);
  478. } else {
  479. sjlrDnjlDAO.insertSelective(sjlrDnjl);
  480. }
  481. String zrsl = sjlrDnjl.getZrsl();
  482. if (StringUtils.hasText(zrsl)) {
  483. SjlrMzdaExample mzdaEx = new SjlrMzdaExample();
  484. SjlrMzdaExample.Criteria mzdaCr = mzdaEx.createCriteria();
  485. mzdaCr.andDwebEqualTo(sjlrDnjl.getDweb()).andZfbzEqualTo(XtAppConstant.ZFBZ_VALID);
  486. String mcid = request.getParameter("mcid");
  487. if (StringUtils.hasText(mcid)) {
  488. mzdaCr.andMcidEqualTo(Integer.parseInt(mcid));
  489. }
  490. String sczt = sjlrMzdaDAO.selectByExample(mzdaEx).get(0).getDqzt();
  491. SjlrMzda sjlrMzda = new SjlrMzda();
  492. sjlrMzda.setSl(zrsl);
  493. sjlrMzda.setDqzt(XtAppConstant.CODE_SJLR_DN_DMID);
  494. sjlrMzda.setXgr(getLoginSessionBean(request).getYhid().toString());
  495. sjlrMzda.setXgsj(commonService.getCurrentDate());
  496. sjlrMzda.setSczt(sczt);
  497. sjlrMzdaDAO.updateByExampleSelective(sjlrMzda, mzdaEx);
  498. }
  499. String jsonStr = "{\"count\" : \"1\"}";
  500. response.getWriter().write(jsonStr);
  501. }
  502. /**
  503. * 耳标公共查询页面
  504. * @param request
  505. * @param response
  506. * @return
  507. * @throws Exception
  508. */
  509. public ModelAndView getHaifmvDnjlSearchDweb(HttpServletRequest request,
  510. HttpServletResponse response) throws Exception {
  511. ModelAndView mv = new ModelAndView("haifmv/sjrl/dn/searchDnep.htm");
  512. String dweb = request.getParameter("dweb");
  513. String mcid = request.getParameter("mcid");
  514. String date = request.getParameter("date");
  515. String cxeph = request.getParameter("cxeph");
  516. int maxPages = 0;
  517. int countPage = 0;
  518. if (StringUtils.hasText(mcid)) {
  519. Map<String, Object> paramMap = new HashMap<String, Object>();
  520. paramMap.put("order", XtSearchSqlConstant.order_by_dn);
  521. if (StringUtils.hasText(dweb)) {
  522. paramMap.put("dweb", "%" + dweb + "%");
  523. mv.addObject("dweb", dweb);
  524. }
  525. if (StringUtils.hasText(cxeph)) {
  526. paramMap.put("cxeph", "%" + cxeph + "%");
  527. mv.addObject("dweb", cxeph);
  528. }
  529. paramMap.put("mcid", mcid);
  530. countPage = sjlrDnjlDAO.selectSearchDnjlListByParam(paramMap).size();
  531. maxPages = (countPage % 30 == 0 ? countPage / 30 : countPage/30 + 1);
  532. paramMap.put("limit", " 0,30");
  533. List<SjlrMzda> mzdaList = sjlrDnjlDAO.selectSearchDnjlListByParam(paramMap);
  534. List<XtGydm> slList = getGydm(XtAppConstant.CODE_SJLR_SL);
  535. List<XtGydm> dqztList = getGydm(XtAppConstant.CODE_SJLR_MZZT);
  536. if (mzdaList != null && mzdaList.size() > 0) {
  537. for (SjlrMzda sjlrMzda : mzdaList) {
  538. //舍栏
  539. if (StringUtils.hasText(sjlrMzda.getSl())) {
  540. for (XtGydm xtGydm : slList) {
  541. if (sjlrMzda.getSl().equals(xtGydm.getDmid())) {
  542. sjlrMzda.setSlStr(xtGydm.getDmmc());
  543. }
  544. }
  545. }
  546. //当前状态
  547. if (StringUtils.hasText(sjlrMzda.getDqzt())) {
  548. for (XtGydm xtGydm : dqztList) {
  549. if (sjlrMzda.getDqzt().equals(xtGydm.getDmid())) {
  550. sjlrMzda.setDqztStr(xtGydm.getDmmc());
  551. }
  552. }
  553. }
  554. }
  555. }
  556. mv.addObject("mzdaList", mzdaList);
  557. mv.addObject("date",date);
  558. mv.addObject("maxPages",maxPages);
  559. }
  560. return mv;
  561. }
  562. /**
  563. * 断奶记录耳标查询的下拉加载
  564. * @param request
  565. * @param response
  566. * @throws Exception
  567. */
  568. public void addSjlrDnjlSrarch(HttpServletRequest request,
  569. HttpServletResponse response) throws Exception {
  570. response.setCharacterEncoding("UTF-8");
  571. response.setContentType("text/plain; charset=UTF-8");
  572. response.addHeader("Cache-Control", "no-cache,must-revalidate");
  573. response.addHeader("Pragma", "no-cache");
  574. String dweb = request.getParameter("dweb");
  575. String mcid = request.getParameter("mcid");
  576. String cxeph = request.getParameter("cxeph");
  577. String page = request.getParameter("page");
  578. List<SjlrMzda> mzdaList = null;
  579. if (StringUtils.hasText(mcid)) {
  580. Map<String, Object> paramMap = new HashMap<String, Object>();
  581. if (StringUtils.hasText(dweb)) {
  582. paramMap.put("dweb", "%" + dweb + "%");
  583. }
  584. if (StringUtils.hasText(cxeph)) {
  585. paramMap.put("cxeph", "%" + cxeph + "%");
  586. }
  587. paramMap.put("mcid", mcid);
  588. paramMap.put("limit", (Integer.parseInt(page)-1)*30+",30");
  589. mzdaList = sjlrDnjlDAO.selectSearchDnjlListByParam(paramMap);
  590. List<XtGydm> slList = getGydm(XtAppConstant.CODE_SJLR_SL);
  591. List<XtGydm> dqztList = getGydm(XtAppConstant.CODE_SJLR_MZZT);
  592. if (mzdaList != null && mzdaList.size() > 0) {
  593. for (SjlrMzda sjlrMzda : mzdaList) {
  594. //舍栏
  595. if (StringUtils.hasText(sjlrMzda.getSl())) {
  596. for (XtGydm xtGydm : slList) {
  597. if (sjlrMzda.getSl().equals(xtGydm.getDmid())) {
  598. sjlrMzda.setSlStr(xtGydm.getDmmc());
  599. }
  600. }
  601. }
  602. //当前状态
  603. if (StringUtils.hasText(sjlrMzda.getDqzt())) {
  604. for (XtGydm xtGydm : dqztList) {
  605. if (sjlrMzda.getDqzt().equals(xtGydm.getDmid())) {
  606. sjlrMzda.setDqztStr(xtGydm.getDmmc());
  607. }
  608. }
  609. }
  610. }
  611. }
  612. }
  613. String param = JsonUtil.list2json(mzdaList);
  614. response.getWriter().write(param);
  615. }
  616. /**
  617. * 是否是24小时之内的数据
  618. * @param request
  619. * @throws Exception
  620. */
  621. public void haifmvCheckDnDataIsIn24H(HttpServletRequest request,
  622. HttpServletResponse response) throws Exception {
  623. response.setContentType("text/json; charset=UTF-8");
  624. response.addHeader("Cache-Control", "no-cache,must-revalidate");
  625. response.addHeader("Pragma", "no-cache");
  626. String id = request.getParameter("id");
  627. String jsonStr = "";
  628. if (StringUtils.hasText(id)) {
  629. SjlrDnjlExample DnjlEx = new SjlrDnjlExample();
  630. SjlrDnjlExample.Criteria dnjlCr = DnjlEx.createCriteria();
  631. dnjlCr.andIdEqualTo(Integer.valueOf(id)).andZfbzEqualTo(XtAppConstant.ZFBZ_VALID);
  632. List<SjlrDnjl> DnjlList = sjlrDnjlDAO.selectByExample(DnjlEx);
  633. if (DnjlList.size() > 0) {
  634. boolean isIn24H = commonService.getCurrentDate().getTime() - DnjlList.get(0).getDnsj().getTime() <= 24*60*60*1000;
  635. if (isIn24H) {
  636. jsonStr = "{\"count\" : \"1\"}";
  637. } else {
  638. jsonStr = "{\"count\" : \"0\"}";
  639. }
  640. }
  641. }
  642. response.getWriter().write(jsonStr);
  643. }
  644. /**
  645. * 获取公用代码
  646. * @param lbmc
  647. * @return
  648. * @throws Exception
  649. */
  650. private List<XtGydm> getGydm(String lbmc) {
  651. return xtGydmDAO.selectGydmByLbmc(lbmc);
  652. }
  653. public void setCommonService(CommonService commonService) {
  654. this.commonService = commonService;
  655. }
  656. public void setXtGydmDAO(XtGydmDAO xtGydmDAO) {
  657. this.xtGydmDAO = xtGydmDAO;
  658. }
  659. public void setSjlrMzdaDAO(SjlrMzdaDAO sjlrMzdaDAO) {
  660. this.sjlrMzdaDAO = sjlrMzdaDAO;
  661. }
  662. public void setSjlrDnjlDAO(SjlrDnjlDAO sjlrDnjlDAO) {
  663. this.sjlrDnjlDAO = sjlrDnjlDAO;
  664. }
  665. public void setSjlrFmjlDAO(SjlrFmjlDAO sjlrFmjlDAO) {
  666. this.sjlrFmjlDAO = sjlrFmjlDAO;
  667. }
  668. }