package com.huimv.sjlr; import java.math.BigDecimal; import java.util.ArrayList; import java.util.Arrays; import java.util.Calendar; import java.util.Collections; import java.util.Date; import java.util.GregorianCalendar; import java.util.HashMap; import java.util.List; import java.util.Map; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import org.springframework.util.StringUtils; import org.springframework.web.servlet.ModelAndView; import com.huimv.busi.tjt.dto.HighchartsDTO; import com.huimv.busi.xt.constant.XtAppConstant; import com.huimv.busi.xt.model.CommonService; import com.huimv.busi.xt.utils.DateUtil; import com.huimv.busi.xt.utils.JsonUtil; import com.huimv.da.dao.DaMcdaDAO; import com.huimv.da.dataobject.DaMcda; import com.huimv.dto.SjlrMzxxDTO; import com.huimv.dto.SjlrMzxxxxDTO; import com.huimv.sjlr.dao.SjlrCjjlDAO; import com.huimv.sjlr.dao.SjlrDnjlDAO; import com.huimv.sjlr.dao.SjlrFmjlDAO; import com.huimv.sjlr.dao.SjlrGzdaDAO; import com.huimv.sjlr.dao.SjlrMzdaDAO; import com.huimv.sjlr.dao.SjlrPzjlDAO; import com.huimv.sjlr.dao.SjlrRsjlDAO; import com.huimv.sjlr.dao.SjlrZzttDAO; import com.huimv.sjlr.dao.SjlrZzwdDAO; import com.huimv.sjlr.dataobject.SjlrCjjl; import com.huimv.sjlr.dataobject.SjlrCjjlExample; import com.huimv.sjlr.dataobject.SjlrDnjl; import com.huimv.sjlr.dataobject.SjlrDnjlExample; import com.huimv.sjlr.dataobject.SjlrFmjl; import com.huimv.sjlr.dataobject.SjlrFmjlExample; import com.huimv.sjlr.dataobject.SjlrGzda; import com.huimv.sjlr.dataobject.SjlrGzdaExample; import com.huimv.sjlr.dataobject.SjlrMzda; import com.huimv.sjlr.dataobject.SjlrMzdaExample; import com.huimv.sjlr.dataobject.SjlrPzjl; import com.huimv.sjlr.dataobject.SjlrPzjlExample; import com.huimv.sjlr.dataobject.SjlrRsjl; import com.huimv.sjlr.dataobject.SjlrRsjlExample; import com.huimv.sjlr.dataobject.SjlrZztt; import com.huimv.sjlr.dataobject.SjlrZzttExample; import com.huimv.sjlr.dataobject.SjlrZzwd; import com.huimv.web.base.BaseController; import com.huimv.xt.dao.XtGydmDAO; import com.huimv.xt.dataobject.XtGydm; public class SjlrDaHpController extends BaseController { private CommonService commonService; private XtGydmDAO xtGydmDAO; private SjlrGzdaDAO sjlrGzdaDAO; private DaMcdaDAO daMcdaDAO; private SjlrMzdaDAO sjlrMzdaDAO; private SjlrZzwdDAO sjlrZzwdDAO; private SjlrCjjlDAO sjlrCjjlDAO; private SjlrPzjlDAO sjlrPzjlDAO; private SjlrRsjlDAO sjlrRsjlDAO; private SjlrFmjlDAO sjlrFmjlDAO; private SjlrDnjlDAO sjlrDnjlDAO; private SjlrZzttDAO sjlrZzttDAO; /** * 加载公猪档案 * @param request * @param response * @return * @throws Exception */ public ModelAndView hpSjlrDaIndex(HttpServletRequest request, HttpServletResponse response) throws Exception { ModelAndView mv = new ModelAndView("haifmp/sjlr/da/hpSjlrDaIndex.htm"); List slList = getGydm(XtAppConstant.CODE_SJLR_SL); List dqztList = getGydm(XtAppConstant.CODE_SJLR_GZSXZT);//公猪筛选状态 List pzList = getGydm(XtAppConstant.CODE_SJLR_ZZPZ); String mcid = request.getParameter("mcid"); String dweb = request.getParameter("dweb"); String rdqzt = request.getParameter("dqzt"); String rsl = request.getParameter("sl"); String dqztStr = request.getParameter("dqztArray"); String slStr = request.getParameter("slArray"); String ztsl = request.getParameter("ztsl"); String cxeph = request.getParameter("cxeph"); List ztList = new ArrayList(); List xzslList = new ArrayList(); if (StringUtils.hasText(ztsl)) { if (ztsl.equals("null@null")) { ztsl = ""; }else { String ztslarr[] = ztsl.split("@"); if (StringUtils.hasText(ztslarr[0])) { dqztStr = ztslarr[0]; rdqzt = "1"; } if (StringUtils.hasText(ztslarr[1])) { slStr = ztslarr[1]; rsl = "1"; } } } if (StringUtils.hasText(mcid)) { SjlrGzdaExample gzEx = new SjlrGzdaExample(); SjlrGzdaExample.Criteria gzCr = gzEx.createCriteria(); gzCr.andMcidEqualTo(Integer.parseInt(mcid)).andZfbzEqualTo(XtAppConstant.ZFBZ_VALID); gzCr.andLcrqIsNull(); if (StringUtils.hasText(dweb)) { gzCr.andDwebLike("%" + dweb + "%"); mv.addObject("dweb", dweb); }else if (StringUtils.hasText(cxeph)) { gzCr.andEphLike("%" + cxeph + "%"); mv.addObject("dweb", cxeph); } if (StringUtils.hasText(rdqzt) && rdqzt.equals("1")) { String dqztArr[] = dqztStr.split(","); for (int i = 0 ; i < dqztArr.length ; i++) { if (!dqztArr[i].equals(",")) { ztList.add(dqztArr[i]); } } if (ztList.size() > 0) { gzCr.andDqztIn(ztList); } } if (StringUtils.hasText(rsl) && rsl.equals("1")) { String slArr[] = slStr.split(","); for (int i = 0 ; i < slArr.length ; i++) { if(!slArr[i].equals(",")) { xzslList.add(slArr[i]); } } if (xzslList.size() > 0) { gzCr.andSlIn(xzslList); } } gzEx.setOrderByClause("xgsj desc"); List gzdaList = sjlrGzdaDAO.selectByExample(gzEx); if (gzdaList != null && gzdaList.size() > 0) { for (SjlrGzda sjlrGzda : gzdaList) { //品种 if (StringUtils.hasText(sjlrGzda.getQt())) { sjlrGzda.setPzStr(sjlrGzda.getQt()); } else { if (StringUtils.hasText(sjlrGzda.getPz())) { for (XtGydm xtGydm : pzList) { if (sjlrGzda.getPz().equals(xtGydm.getDmid())) { sjlrGzda.setPzStr(xtGydm.getDmmc()); } } } } //当前状态 if (StringUtils.hasText(sjlrGzda.getDqzt())) { for (XtGydm xtGydm : dqztList) { if (sjlrGzda.getDqzt().equals(xtGydm.getDmid())) { sjlrGzda.setDqztStr(xtGydm.getDmmc()); } } } } } mv.addObject("gzdaList", gzdaList); } mv.addObject("slList", slList); mv.addObject("dqztList", dqztList); mv.addObject("ztsl", dqztStr+"@"+slStr); return mv; } /** * 加载公猪档案新增页面 * @param request * @param response * @return * @throws Exception */ public ModelAndView hpSjlrGzdaAdd(HttpServletRequest request, HttpServletResponse response) throws Exception { ModelAndView mv = new ModelAndView("haifmp/sjlr/da/hpSjlrGzdaAdd.htm"); String mcid = request.getParameter("mcid"); String dweb = request.getParameter("dweb"); String sswd = request.getParameter("sswd"); String edit = request.getParameter("edit"); String newDweb = request.getParameter("newDweb"); String oldDweb = request.getParameter("oldDweb"); String devType = request.getParameter("devType"); String p = ""; //add标题 String gzwd = request.getParameter("gzwd");//标志着从首页读取温度。只能修改温度。不查重 mv.addObject("oldDweb", oldDweb); int size = 0; SjlrGzda sjlrGzda = new SjlrGzda(); List slList = getGydm(XtAppConstant.CODE_SJLR_SL); List dqztList = getGydm(XtAppConstant.CODE_SJLR_GZZT); List pzList = getGydm(XtAppConstant.CODE_SJLR_ZZPZ); List lyList = getGydm(XtAppConstant.CODE_SJLR_ZZLY); if (StringUtils.hasText(mcid)) { DaMcda daMcda = daMcdaDAO.selectByPrimaryKey(Integer.parseInt(mcid)); mv.addObject("mcmc", daMcda.getMcmc()); mv.addObject("mcid", mcid); if (StringUtils.hasText(dweb) || StringUtils.hasText(oldDweb)) { if (StringUtils.hasText(oldDweb)) { dweb = oldDweb; } SjlrGzdaExample gzEx = new SjlrGzdaExample(); SjlrGzdaExample.Criteria gzCr = gzEx.createCriteria(); gzCr.andDwebEqualTo(dweb).andZfbzEqualTo(XtAppConstant.ZFBZ_VALID); List gzdaList = sjlrGzdaDAO.selectByExample(gzEx); if (gzdaList != null && gzdaList.size() > 0) { sjlrGzda = gzdaList.get(0); size = 1; } sjlrGzda.setDweb(dweb); if (StringUtils.hasText(newDweb)) { sjlrGzda.setDweb(newDweb); } mv.addObject("sswd", sswd); mv.addObject("sjlrGzda", sjlrGzda); } } if (StringUtils.hasText(gzwd) && size == 1) { edit = "notEdit"; //手持机首页添加公猪温度 p = "修改实时体温"; } if (StringUtils.hasText(gzwd) && size == 0) { edit = ""; //手持机首页新增公猪档案 p = "新增公猪档案"; } if (!StringUtils.hasText(gzwd) && size == 1 ) { p = "修改公猪档案"; //页面修改公猪档案 } if (!StringUtils.hasText(gzwd) && size == 0 ) { p = "新增公猪档案"; //页面新增公猪档案 } mv.addObject("slList", slList); mv.addObject("dqztList", dqztList); mv.addObject("pzList", pzList); mv.addObject("lyList", lyList); mv.addObject("edit",edit); mv.addObject("devType",devType); mv.addObject("p", p); return mv; } /** * 普通舍保存 * @param request * @throws Exception */ public void saveSjlrGzda(HttpServletRequest request, HttpServletResponse response) throws Exception { response.setContentType("text/json; charset=UTF-8"); response.addHeader("Cache-Control", "no-cache,must-revalidate"); response.addHeader("Pragma", "no-cache"); String jsonStr = ""; String sswd = request.getParameter("sswd"); String dweb = request.getParameter("dweb"); String edit = request.getParameter("edit"); String eph = request.getParameter("eph"); String oldDweb = request.getParameter("oldDweb"); int countMzda = 0; int countGzda = 0; int countGzEp = 0; int countMzEp = 0; int count = 0; boolean isDwebExsit = false; if (!StringUtils.hasText(edit)) {//如果新增的时候没有动物耳标 if (!StringUtils.hasText(dweb) ) {//如果没有动物耳标,则已当前日期新建一个虚拟的动物耳标 dweb = "@" + String.valueOf(new Date().getTime()) + "@";//#13位# } else {//新增的时候有动物耳标那么进行查重 SjlrMzdaExample mzdaExample = new SjlrMzdaExample(); SjlrMzdaExample.Criteria mzdaCr = mzdaExample.createCriteria(); mzdaCr.andDwebEqualTo(dweb).andZfbzEqualTo(XtAppConstant.ZFBZ_VALID); countMzda = sjlrMzdaDAO.countByExample(mzdaExample); SjlrGzdaExample gzdaExample = new SjlrGzdaExample(); SjlrGzdaExample.Criteria gzdaCr = gzdaExample.createCriteria(); gzdaCr.andDwebEqualTo(dweb).andZfbzEqualTo(XtAppConstant.ZFBZ_VALID); countGzda = sjlrGzdaDAO.countByExample(gzdaExample); } }else {//修改的时候,如果没有动物耳标 if (!StringUtils.hasText(dweb) ) {//那么提示有重复 countMzda = 1; countGzda = 1; } else { //如果传进来的动物耳标不等于OldDweb 或者edit =editDwebNotEditEph .对动物耳标进行查重 if (!oldDweb.equals(dweb) || edit.equals("editDwebNotEditEph")) { SjlrMzdaExample mzdaExample = new SjlrMzdaExample(); SjlrMzdaExample.Criteria mzdaCr = mzdaExample.createCriteria(); mzdaCr.andDwebEqualTo(dweb).andZfbzEqualTo(XtAppConstant.ZFBZ_VALID); countMzda = sjlrMzdaDAO.countByExample(mzdaExample); SjlrGzdaExample gzdaExample = new SjlrGzdaExample(); SjlrGzdaExample.Criteria gzdaCr = gzdaExample.createCriteria(); gzdaCr.andDwebEqualTo(dweb).andZfbzEqualTo(XtAppConstant.ZFBZ_VALID); countGzda = sjlrGzdaDAO.countByExample(gzdaExample); } } } SjlrGzda sjlrGzda = new SjlrGzda(); sjlrGzda = (SjlrGzda) parseObjectFromRequest(request, sjlrGzda); sjlrGzda.setDweb(dweb); sjlrGzda.setEph(eph); //更新实时温度 if (StringUtils.hasText(sswd)) { SjlrZzwd sjlrZzwd = new SjlrZzwd(); BigDecimal bd=new BigDecimal(sswd); sjlrZzwd.setDqwd(bd); sjlrZzwd.setDweb(dweb); sjlrZzwd.setScsj(commonService.getCurrentDate()); sjlrZzwdDAO.insertSelective(sjlrZzwd); } //耳牌号查重 if (!StringUtils.hasText(edit)){ SjlrMzdaExample mzdaEpExample = new SjlrMzdaExample(); SjlrMzdaExample.Criteria mzdaepCr = mzdaEpExample.createCriteria(); mzdaepCr.andEphEqualTo(sjlrGzda.getEph()).andMcidEqualTo(sjlrGzda.getMcid()).andZfbzEqualTo(XtAppConstant.ZFBZ_VALID) .andLcrqIsNull(); List mzList = sjlrMzdaDAO.selectByExample(mzdaEpExample); countMzEp = mzList.size();//有重复的且还没有离场 SjlrGzdaExample gzdaEpExample = new SjlrGzdaExample(); SjlrGzdaExample.Criteria gzdaEpCr = gzdaEpExample.createCriteria(); gzdaEpCr.andEphEqualTo(sjlrGzda.getEph()).andMcidEqualTo(sjlrGzda.getMcid()).andZfbzEqualTo(XtAppConstant.ZFBZ_VALID) .andLcrqIsNull(); List gzList = sjlrGzdaDAO.selectByExample(gzdaEpExample); countGzEp = gzList.size();//有重复的且还没有离场 } if (countMzEp > 0) { //母猪档案中已经有相同的耳牌号 jsonStr = "{\"count\" : \"3\"}"; }else { if(countGzEp > 0) { //公猪档案中已经有相同的耳牌号 jsonStr = "{\"count\" : \"3\"}"; }else { count++; } } if (countMzda > 0) { isDwebExsit = true; //母猪档案中已经有相同的耳标号 jsonStr = "{\"count\" : \"0\"}"; }else { if(countGzda > 0) { isDwebExsit = true; jsonStr = "{\"count\" : \"0\"}"; }else { count++; } } sjlrGzda.setXgr(getLoginSessionBean(request).getYhid().toString()); sjlrGzda.setXgsj(commonService.getCurrentDate()); sjlrGzda.setZfbz(XtAppConstant.ZFBZ_VALID); sjlrGzda.setDweb(dweb); if (StringUtils.hasText(edit) && !edit.equals("notEdit")) { if (!isDwebExsit) { sjlrGzdaDAO.updateByPrimaryKeySelective(sjlrGzda); jsonStr = "{\"count\" : \"2\"}"; if (!oldDweb.equals(dweb)) { Map paramMap = new HashMap(); paramMap.put("oldDweb", oldDweb); paramMap.put("newDweb", dweb); sjlrMzdaDAO.updateDwebAllByParam(paramMap); } } }else { if(count == 2) { if (!edit.equals("notEdit")) { sjlrGzdaDAO.insertSelective(sjlrGzda); } jsonStr = "{\"count\" : \"1\"}"; } } response.getWriter().write(jsonStr); } /** * 加载母猪档案 * @param request * @param response * @return * @throws Exception */ public ModelAndView hpSjlrMzDaIndex(HttpServletRequest request, HttpServletResponse response) throws Exception { ModelAndView mv = new ModelAndView("haifmp/sjlr/da/hpSjlrMzDaIndex.htm"); List slList = getGydm(XtAppConstant.CODE_SJLR_SL); List dqztList = getGydm(XtAppConstant.CODE_SJLR_MZZT); List pzList = getGydm(XtAppConstant.CODE_SJLR_ZZPZ); String mcid = request.getParameter("mcid"); String dweb = request.getParameter("dweb"); String rdqzt = request.getParameter("dqzt"); String rsl = request.getParameter("sl"); String dqztStr = request.getParameter("dqztArray"); String slStr = request.getParameter("slArray"); String ztsl = request.getParameter("ztsl"); String cxeph = request.getParameter("cxeph"); List ztList = new ArrayList(); List xzslList = new ArrayList(); //如果有ztsl 说明是删选后找到的种猪点了返回,返回到删选状态 if (StringUtils.hasText(ztsl)) { if (ztsl.equals("null@null")) { ztsl = ""; }else { String ztslarr[] = ztsl.split("@"); if (StringUtils.hasText(ztslarr[0])) { dqztStr = ztslarr[0]; rdqzt = "1"; } if (StringUtils.hasText(ztslarr[1])) { slStr = ztslarr[1]; rsl = "1"; } } } if (StringUtils.hasText(mcid)) { SjlrMzdaExample mzEx = new SjlrMzdaExample(); SjlrMzdaExample.Criteria mzCr = mzEx.createCriteria(); mzCr.andMcidEqualTo(Integer.parseInt(mcid)).andZfbzEqualTo(XtAppConstant.ZFBZ_VALID); mzCr.andLcrqIsNull(); if (StringUtils.hasText(dweb)) { mzCr.andDwebLike("%" + dweb + "%"); mv.addObject("dweb", dweb); }else if (StringUtils.hasText(cxeph)) { mzCr.andEphLike("%" + cxeph + "%"); mv.addObject("dweb", cxeph); } if (StringUtils.hasText(rdqzt) && rdqzt.equals("1")) { String dqztArr[] = dqztStr.split(","); for (int i = 0 ; i < dqztArr.length ; i++) { if (!dqztArr[i].equals(",")) { ztList.add(dqztArr[i]); } } if (ztList.size() > 0) { mzCr.andDqztIn(ztList); } } if (StringUtils.hasText(rsl) && rsl.equals("1")) { String slArr[] = slStr.split(","); for (int i = 0 ; i < slArr.length ; i++) { if(!slArr[i].equals(",")) { xzslList.add(slArr[i]); } } if (xzslList.size() > 0) { mzCr.andSlIn(xzslList); } } mzEx.setOrderByClause("xgsj desc"); List mzdaList = sjlrMzdaDAO.selectByExample(mzEx); if (mzdaList != null && mzdaList.size() > 0) { for (SjlrMzda sjlrMzda : mzdaList) { //品种 if (StringUtils.hasText(sjlrMzda.getQt())) { sjlrMzda.setPzStr(sjlrMzda.getQt()); } else { if (StringUtils.hasText(sjlrMzda.getPz())) { for (XtGydm xtGydm : pzList) { if (sjlrMzda.getPz().equals(xtGydm.getDmid())) { sjlrMzda.setPzStr(xtGydm.getDmmc()); } } } } //当前状态 if (StringUtils.hasText(sjlrMzda.getDqzt())) { for (XtGydm xtGydm : dqztList) { if (sjlrMzda.getDqzt().equals(xtGydm.getDmid())) { sjlrMzda.setDqztStr(xtGydm.getDmmc()); } } } } } mv.addObject("mzdaList", mzdaList); } mv.addObject("slList", slList); mv.addObject("dqztList", dqztList); mv.addObject("ztsl", dqztStr+"@"+slStr); return mv; } /** * 四舍五入 * @param v * @param scale 保留小数位数 * @return */ public String round(double v, int scale) { if (scale < 0) { throw new IllegalArgumentException("The scale must be a positive integer or zero"); } BigDecimal b = new BigDecimal(Double.toString(v)); BigDecimal one = new BigDecimal("1"); return String.valueOf(b.divide(one, scale, BigDecimal.ROUND_HALF_UP).doubleValue()); } /** * 加载母猪档案新增页面 * @param request * @param response * @return * @throws Exception */ public ModelAndView hpSjlrMzdaAdd(HttpServletRequest request, HttpServletResponse response) throws Exception { ModelAndView mv = new ModelAndView("haifmp/sjlr/da/hpSjlrMzdaAdd.htm"); String mcid = request.getParameter("mcid"); String dweb = request.getParameter("dweb"); String sswd = request.getParameter("sswd"); String edit = request.getParameter("edit"); String newDweb = request.getParameter("newDweb"); String oldDweb = request.getParameter("oldDweb"); mv.addObject("oldDweb", oldDweb); int size = 0; String p = ""; //add页面标题 String mzwd = request.getParameter("mzwd");//标志着从首页读取温度。只能修改温度。不查重 List slList = getGydm(XtAppConstant.CODE_SJLR_SL); List dqztList = getGydm(XtAppConstant.CODE_SJLR_MZZT); List pzList = getGydm(XtAppConstant.CODE_SJLR_ZZPZ); List lyList = getGydm(XtAppConstant.CODE_SJLR_ZZLY); SjlrMzda sjlrMzda = new SjlrMzda(); if (StringUtils.hasText(mcid)) { DaMcda daMcda = daMcdaDAO.selectByPrimaryKey(Integer.parseInt(mcid)); mv.addObject("mcmc", daMcda.getMcmc()); mv.addObject("mcid", mcid); if (StringUtils.hasText(dweb) || StringUtils.hasText(oldDweb)) { if (StringUtils.hasText(oldDweb)) { dweb = oldDweb; } SjlrMzdaExample mzEx = new SjlrMzdaExample(); SjlrMzdaExample.Criteria mzCr = mzEx.createCriteria(); mzCr.andDwebEqualTo(dweb).andZfbzEqualTo(XtAppConstant.ZFBZ_VALID); List mzdaList = sjlrMzdaDAO.selectByExample(mzEx); if (mzdaList != null && mzdaList.size() > 0) { sjlrMzda = mzdaList.get(0); size = 1; } sjlrMzda.setDweb(dweb); if (StringUtils.hasText(newDweb)) { sjlrMzda.setDweb(newDweb); } mv.addObject("sswd", sswd); } if (StringUtils.hasText(mzwd) && size == 1) { edit = "notEdit"; //手持机首页添加母猪温度 p = "修改实时体温"; } if (StringUtils.hasText(mzwd) && size == 0) { edit = ""; //手持机首页新增母猪档案 p = "新增母猪档案"; } if (!StringUtils.hasText(mzwd) && size == 1 ) { p = "修改母猪档案"; //页面修改母猪档案 } if (!StringUtils.hasText(mzwd) && size == 0 ) { p = "新增母猪档案"; //页面新增母猪档案 } } mv.addObject("slList", slList); mv.addObject("dqztList", dqztList); mv.addObject("pzList", pzList); mv.addObject("lyList", lyList); mv.addObject("edit",edit); mv.addObject("p", p); mv.addObject("sjlrMzda", sjlrMzda); return mv; } /** * 普通舍保存 * @param request * @throws Exception */ public void saveSjlrMzda(HttpServletRequest request, HttpServletResponse response) throws Exception { response.setContentType("text/json; charset=UTF-8"); response.addHeader("Cache-Control", "no-cache,must-revalidate"); response.addHeader("Pragma", "no-cache"); String jsonStr = ""; String sswd = request.getParameter("sswd"); String dweb = request.getParameter("dweb"); String edit = request.getParameter("edit"); String eph = request.getParameter("eph"); String oldDweb = request.getParameter("oldDweb"); int countMzda = 0; int countGzda = 0; int countGzEp = 0; int countMzEp = 0; int count = 0; boolean isDwebExsit = false; if (!StringUtils.hasText(edit)) {//如果新增的时候没有动物耳标 if (!StringUtils.hasText(dweb) ) {//如果没有动物耳标,则已当前日期新建一个虚拟的动物耳标 dweb = "@" + String.valueOf(new Date().getTime()) + "@";//#13位# } else {//新增的时候有动物耳标那么进行查重 SjlrMzdaExample mzdaExample = new SjlrMzdaExample(); SjlrMzdaExample.Criteria mzdaCr = mzdaExample.createCriteria(); mzdaCr.andDwebEqualTo(dweb).andZfbzEqualTo(XtAppConstant.ZFBZ_VALID); countMzda = sjlrMzdaDAO.countByExample(mzdaExample); SjlrGzdaExample gzdaExample = new SjlrGzdaExample(); SjlrGzdaExample.Criteria gzdaCr = gzdaExample.createCriteria(); gzdaCr.andDwebEqualTo(dweb).andZfbzEqualTo(XtAppConstant.ZFBZ_VALID); countGzda = sjlrGzdaDAO.countByExample(gzdaExample); } }else {//修改的时候,如果没有动物耳标 if (!StringUtils.hasText(dweb) ) {//那么提示有重复 countMzda = 1; countGzda = 1; } else { //如果有动物耳标 那么进行查重 if (!oldDweb.equals(dweb) || edit.equals("editDwebNotEditEph")) { //如果新旧耳标不相等或者从edit页面进入edit页面 表示修改耳标号 需要查重耳标 SjlrMzdaExample mzdaExample = new SjlrMzdaExample(); SjlrMzdaExample.Criteria mzdaCr = mzdaExample.createCriteria(); mzdaCr.andDwebEqualTo(dweb).andZfbzEqualTo(XtAppConstant.ZFBZ_VALID); countMzda = sjlrMzdaDAO.countByExample(mzdaExample); SjlrGzdaExample gzdaExample = new SjlrGzdaExample(); SjlrGzdaExample.Criteria gzdaCr = gzdaExample.createCriteria(); gzdaCr.andDwebEqualTo(dweb).andZfbzEqualTo(XtAppConstant.ZFBZ_VALID); countGzda = sjlrGzdaDAO.countByExample(gzdaExample); } } } SjlrMzda sjlrMzda = new SjlrMzda(); sjlrMzda = (SjlrMzda) parseObjectFromRequest(request, sjlrMzda); sjlrMzda.setDweb(dweb); sjlrMzda.setEph(eph); //更新实时温度 if (StringUtils.hasText(sswd)) { SjlrZzwd sjlrZzwd = new SjlrZzwd(); BigDecimal bd=new BigDecimal(sswd); sjlrZzwd.setDqwd(bd); sjlrZzwd.setDweb(dweb); sjlrZzwd.setScsj(commonService.getCurrentDate()); sjlrZzwdDAO.insertSelective(sjlrZzwd); } //耳牌号查重 if (!StringUtils.hasText(edit)){ SjlrMzdaExample mzdaEpExample = new SjlrMzdaExample(); SjlrMzdaExample.Criteria mzdaepCr = mzdaEpExample.createCriteria(); mzdaepCr.andEphEqualTo(sjlrMzda.getEph()).andMcidEqualTo(sjlrMzda.getMcid()).andZfbzEqualTo(XtAppConstant.ZFBZ_VALID); List mzList = sjlrMzdaDAO.selectByExample(mzdaEpExample); if (mzList.size() > 0) {//有重复的 if (mzList.get(mzList.size() - 1).getLcrq() == null) {//取当前耳牌的最后一个,判断离栏日期是否为空 //如果最后一条的离栏日期位为空,则标识当前耳牌已经用过,但是猪已经离场,可以重复使用 //如果最后一条的离栏日期不为空,则标识当前耳牌已经用过,但是猪还在场,不能再次使用 countMzEp = mzList.size(); } } SjlrGzdaExample gzdaEpExample = new SjlrGzdaExample(); SjlrGzdaExample.Criteria gzdaEpCr = gzdaEpExample.createCriteria(); gzdaEpCr.andEphEqualTo(sjlrMzda.getEph()).andMcidEqualTo(sjlrMzda.getMcid()).andZfbzEqualTo(XtAppConstant.ZFBZ_VALID); List gzList = sjlrGzdaDAO.selectByExample(gzdaEpExample); if (gzList.size() > 0) {//有重复的 if (gzList.get(gzList.size() - 1).getLcrq() == null) {//取当前耳牌的最后一个,判断离栏日期是否为空 //如果最后一条的离栏日期位为空,则标识当前耳牌已经用过,但是猪已经离场,可以重复使用 //如果最后一条的离栏日期不为空,则标识当前耳牌已经用过,但是猪还在场,不能再次使用 countGzEp = gzList.size(); } } } if (countMzEp > 0) { //母猪档案中已经有相同的耳牌号 jsonStr = "{\"count\" : \"3\"}"; }else { if(countGzEp > 0) { //公猪档案中已经有相同的耳牌号 jsonStr = "{\"count\" : \"3\"}"; }else { count++; } } if (countMzda > 0) { isDwebExsit = true; //母猪档案中已经有相同的耳标号 jsonStr = "{\"count\" : \"0\"}"; }else { if(countGzda > 0) { isDwebExsit = true; jsonStr = "{\"count\" : \"0\"}"; }else { count++; } } sjlrMzda.setXgr(getLoginSessionBean(request).getYhid().toString()); sjlrMzda.setXgsj(commonService.getCurrentDate()); sjlrMzda.setZfbz(XtAppConstant.ZFBZ_VALID); sjlrMzda.setDweb(dweb); if (StringUtils.hasText(edit) && !edit.equals("notEdit")) { if (!isDwebExsit) { sjlrMzdaDAO.updateByPrimaryKeySelective(sjlrMzda); if (!oldDweb.equals(dweb)) { Map paramMap = new HashMap(); paramMap.put("oldDweb", oldDweb); paramMap.put("newDweb", dweb); sjlrMzdaDAO.updateDwebAllByParam(paramMap); } jsonStr = "{\"count\" : \"2\"}"; } }else { if(count == 2) { if (!edit.equals("notEdit")) { sjlrMzdaDAO.insertSelective(sjlrMzda); } jsonStr = "{\"count\" : \"1\"}"; } } response.getWriter().write(jsonStr); } /** * 加载公猪详细信息查看 * @param request * @param response * @return * @throws Exception */ public ModelAndView hpSjlrGzxx(HttpServletRequest request, HttpServletResponse response) throws Exception { ModelAndView mv = new ModelAndView("haifmp/sjlr/da/hpSjlrGzxx.htm"); String id = request.getParameter("id"); String ztsl = request.getParameter("ztsl"); String edit = request.getParameter("edit"); String from = request.getParameter("from"); if (StringUtils.hasText(id)) { List slList = getGydm(XtAppConstant.CODE_SJLR_SL); List dqztList = getGydm(XtAppConstant.CODE_SJLR_DQZT); List pzList = getGydm(XtAppConstant.CODE_SJLR_ZZPZ); List sfhgList = getGydm(XtAppConstant.CODE_SFHG); List pzsmList = getGydm(XtAppConstant.CODE_SJLR_PZSM); SjlrGzda sjlrGzda = sjlrGzdaDAO.selectByPrimaryKey(Integer.parseInt(id)); //舍栏 if (StringUtils.hasText(sjlrGzda.getSl())) { for (XtGydm xtGydm : slList) { if (sjlrGzda.getSl().equals(xtGydm.getDmid())) { sjlrGzda.setSlStr(xtGydm.getDmmc()); } } } //品种 if (StringUtils.hasText(sjlrGzda.getQt())) { sjlrGzda.setPzStr(sjlrGzda.getQt()); } else { if (StringUtils.hasText(sjlrGzda.getPz())) { for (XtGydm xtGydm : pzList) { if (sjlrGzda.getPz().equals(xtGydm.getDmid())) { sjlrGzda.setPzStr(xtGydm.getDmmc()); } } } } //当前状态 if (StringUtils.hasText(sjlrGzda.getDqzt())) { for (XtGydm xtGydm : dqztList) { if (sjlrGzda.getDqzt().equals(xtGydm.getDmid())) { sjlrGzda.setDqztStr(xtGydm.getDmmc()); } } } mv.addObject("sjlrGzda", sjlrGzda); //采精次数 合格次数 不合格次数 SjlrCjjlExample cjEx1 = new SjlrCjjlExample(); SjlrCjjlExample.Criteria cjCr1 = cjEx1.createCriteria(); cjCr1.andDwebEqualTo(sjlrGzda.getDweb()).andZfbzEqualTo(XtAppConstant.ZFBZ_VALID); int cjcount = sjlrCjjlDAO.countByExample(cjEx1); cjCr1.andSfhgEqualTo(Integer.parseInt(XtAppConstant.SFHG_HG)); int hgcount = sjlrCjjlDAO.countByExample(cjEx1); mv.addObject("cjcount", cjcount); mv.addObject("cjhgcount", hgcount); mv.addObject("cjbhgcount", cjcount - hgcount); //使用天数 long day = (commonService.getCurrentDate().getTime() - sjlrGzda.getCsrq().getTime()) / DateUtil.MILLSECOND_OF_DAY; mv.addObject("syts", day); //配种次数 Map paramMap = new HashMap(); paramMap.put("gzeb", sjlrGzda.getDweb()); int pzcount = sjlrPzjlDAO.countPzjlByParam(paramMap); mv.addObject("pzcount", pzcount); //配种分娩次数 int pzfmcount = sjlrPzjlDAO.countPzFmByParam(paramMap); mv.addObject("pzfmcount", pzfmcount); mv.addObject("pzfml", pzcount == 0 ? 0 : Math.round(pzfmcount * 100 / pzcount)); //采精 SjlrCjjlExample cjEx = new SjlrCjjlExample(); SjlrCjjlExample.Criteria cjCr = cjEx.createCriteria(); cjCr.andDwebEqualTo(sjlrGzda.getDweb()).andZfbzEqualTo(XtAppConstant.ZFBZ_VALID); cjEx.setOrderByClause("cjsj desc"); cjEx.setStart(0); cjEx.setLimit(10); List cjjlList = sjlrCjjlDAO.selectByExample(cjEx); for (SjlrCjjl sjlrCjjl : cjjlList) { //是否合格 if (sjlrCjjl.getSfhg() != null) { for (XtGydm xtGydm : sfhgList) { if (xtGydm.getDmid().equals(String.valueOf(sjlrCjjl.getSfhg()))) { sjlrCjjl.setSfhgStr(xtGydm.getDmmc()); } } } } mv.addObject("cjjlList", cjjlList); //配种 paramMap.put("limit", "limit 0, 10"); paramMap.put("order", "order by pz.pzsj desc"); List pzjlList = sjlrPzjlDAO.selectPzjlListByParam(paramMap); for (SjlrPzjl sjlrPzjl : pzjlList) { if (StringUtils.hasText(sjlrPzjl.getMzeb())) { SjlrMzdaExample mzEx = new SjlrMzdaExample(); SjlrMzdaExample.Criteria mzCr = mzEx.createCriteria(); mzCr.andDwebEqualTo(sjlrPzjl.getMzeb()).andZfbzEqualTo(XtAppConstant.ZFBZ_VALID); List mzList = sjlrMzdaDAO.selectByExample(mzEx); if (mzList.size() > 0) { sjlrPzjl.setMzeb(mzList.get(0).getEph());//一配耳牌 } } //配种说明 if (sjlrPzjl.getPzsm() != null) { for (XtGydm xtGydm : pzsmList) { if (xtGydm.getDmid().equals(String.valueOf(sjlrPzjl.getPzsm()))) { sjlrPzjl.setPzsmStr(xtGydm.getDmmc()); } } if (sjlrPzjl.getYpgzeb() != null && sjlrPzjl.getYpgzeb().equals(sjlrGzda.getDweb())) { sjlrPzjl.setPzfs("首配"); sjlrPzjl.setPzfspf(sjlrPzjl.getYppf()); } if (sjlrPzjl.getEpgzeb() != null && sjlrPzjl.getEpgzeb().equals(sjlrGzda.getDweb())) { sjlrPzjl.setPzfs("二配"); sjlrPzjl.setPzfspf(sjlrPzjl.getEppf()); } if (sjlrPzjl.getSpgzeb() != null && sjlrPzjl.getSpgzeb().equals(sjlrGzda.getDweb())) { sjlrPzjl.setPzfs("三配"); sjlrPzjl.setPzfspf(sjlrPzjl.getSppf()); } } } mv.addObject("pzjlList", pzjlList); } mv.addObject("ztsl",ztsl); mv.addObject("edit",edit); mv.addObject("from",from); return mv; } /** * 加载母猪详细信息查看 * @param request * @param response * @return * @throws Exception */ public ModelAndView hpSjlrMzxx(HttpServletRequest request, HttpServletResponse response) throws Exception { ModelAndView mv = new ModelAndView("haifmp/sjlr/da/hpSjlrMzxx.htm"); String id = request.getParameter("id"); String ztsl = request.getParameter("ztsl"); String edit = request.getParameter("edit"); String from = request.getParameter("from"); if (StringUtils.hasText(id)) { List slList = getGydm(XtAppConstant.CODE_SJLR_SL); List dqztList = getGydm(XtAppConstant.CODE_SJLR_DQZT); List pzList = getGydm(XtAppConstant.CODE_SJLR_ZZPZ); List pzsmList = getGydm(XtAppConstant.CODE_SJLR_PZSM); List rsJgList = getGydm(XtAppConstant.CODE_SJLR_RSJG);//妊娠结果 SjlrMzda sjlrMzda = sjlrMzdaDAO.selectByPrimaryKey(Integer.parseInt(id)); //日龄 Date csrq = sjlrMzda.getCsrq(); int rl = (int)DateUtil.getDaysBetweenDateWithoutTime(csrq, new Date()); sjlrMzda.setRl(String.valueOf(rl)); //舍栏 if (StringUtils.hasText(sjlrMzda.getSl())) { for (XtGydm xtGydm : slList) { if (sjlrMzda.getSl().equals(xtGydm.getDmid())) { sjlrMzda.setSlStr(xtGydm.getDmmc()); } } } //品种 if (StringUtils.hasText(sjlrMzda.getQt())) { sjlrMzda.setPzStr(sjlrMzda.getQt()); } else { if (StringUtils.hasText(sjlrMzda.getPz())) { for (XtGydm xtGydm : pzList) { if (sjlrMzda.getPz().equals(xtGydm.getDmid())) { sjlrMzda.setPzStr(xtGydm.getDmmc()); } } } } //当前状态 if (StringUtils.hasText(sjlrMzda.getDqzt())) { for (XtGydm xtGydm : dqztList) { if (sjlrMzda.getDqzt().equals(xtGydm.getDmid())) { sjlrMzda.setDqztStr(xtGydm.getDmmc()); } } } int yctc = 0;//已产胎次 int hz = 0;//活仔 int wjdnts = 0;//窝均断奶头数 int ws = 0;//窝数 Map paramMap = new HashMap(); paramMap.put("dweb", sjlrMzda.getDweb()); List mzxxxxList = sjlrMzdaDAO.getMzxxListByParam(paramMap); List mzxxList = new ArrayList(); //List pzs = new ArrayList(); int i = 1; for (SjlrMzxxxxDTO sjlrMzxxxxDTO : mzxxxxList) { SjlrMzxxDTO mzxxDTO = new SjlrMzxxDTO(); SjlrPzjl sjlrPzjl = new SjlrPzjl(); sjlrPzjl.setPzsj(sjlrMzxxxxDTO.getPzsj()); sjlrPzjl.setPzsm(sjlrMzxxxxDTO.getPzsm());//配种说明 for (XtGydm xtGydm : pzsmList) { if (xtGydm.getDmid().equals(String.valueOf(sjlrPzjl.getPzsm()))) { sjlrPzjl.setPzsmStr(xtGydm.getDmmc()); } } if (StringUtils.hasText(sjlrMzxxxxDTO.getYpgzeb())) { SjlrGzdaExample gzEx = new SjlrGzdaExample(); SjlrGzdaExample.Criteria gzCr = gzEx.createCriteria(); gzCr.andDwebEqualTo(sjlrMzxxxxDTO.getYpgzeb()).andZfbzEqualTo(XtAppConstant.ZFBZ_VALID); List gzList = sjlrGzdaDAO.selectByExample(gzEx); if (gzList.size() > 0) { sjlrPzjl.setYpgzeb(gzList.get(0).getEph());//一配耳牌 } } else { sjlrPzjl.setYpgzeb("未记录"); } sjlrPzjl.setYppf(sjlrMzxxxxDTO.getYppf());//一配评分 sjlrPzjl.setFqjg(Integer.parseInt(sjlrMzxxxxDTO.getFqjg()));//发情间隔 Calendar calendar = new GregorianCalendar(); calendar.setTime(sjlrMzxxxxDTO.getPzsj()); calendar.add(Calendar.DATE, + 114); sjlrPzjl.setYcrq(calendar.getTime());//预产日期 mzxxDTO.setSjlrPzjl(sjlrPzjl); //妊娠数据,妊娠与配种必定是有的 ,sql决定 SjlrRsjl sjlrRsjl = new SjlrRsjl(); sjlrRsjl.setRssj(sjlrMzxxxxDTO.getRssj()); //舍栏 if (StringUtils.hasText(sjlrMzxxxxDTO.getRsjg())) { for (XtGydm xtGydm : rsJgList) { if (sjlrMzxxxxDTO.getRsjg().equals(xtGydm.getDmid())) { sjlrRsjl.setRsjgStr(xtGydm.getDmmc()); } } } mzxxDTO.setSjlrRsjl(sjlrRsjl); if (StringUtils.hasText(sjlrMzxxxxDTO.getRsid())) {//分娩 SjlrFmjl sjlrFmjl = new SjlrFmjl(); sjlrFmjl.setRsid(Integer.parseInt(sjlrMzxxxxDTO.getRsid())); sjlrFmjl.setFmsj(sjlrMzxxxxDTO.getFmsj()); int jzgs = !StringUtils.hasText(sjlrMzxxxxDTO.getJzgs()) ? 0 : Integer.parseInt(sjlrMzxxxxDTO.getJzgs()); sjlrFmjl.setJzgs(jzgs); int rzgs = !StringUtils.hasText(sjlrMzxxxxDTO.getRzgs()) ? 0 : Integer.parseInt(sjlrMzxxxxDTO.getRzgs()); sjlrFmjl.setRzgs(rzgs); int jxgs = !StringUtils.hasText(sjlrMzxxxxDTO.getJxgs()) ? 0 : Integer.parseInt(sjlrMzxxxxDTO.getJxgs()); sjlrFmjl.setJxgs(jxgs); int mnygs = !StringUtils.hasText(sjlrMzxxxxDTO.getMnygs()) ? 0 : Integer.parseInt(sjlrMzxxxxDTO.getMnygs()); sjlrFmjl.setMnygs(mnygs); int stgs = !StringUtils.hasText(sjlrMzxxxxDTO.getStgs()) ? 0 : Integer.parseInt(sjlrMzxxxxDTO.getStgs()); sjlrFmjl.setStgs(stgs); sjlrFmjl.setHzgs(String.valueOf(jzgs + rzgs + jxgs)); sjlrFmjl.setSzgs(String.valueOf(jzgs + rzgs + jxgs + mnygs + stgs)); sjlrFmjl.setGzgs(!StringUtils.hasText(sjlrMzxxxxDTO.getGzgs()) ? 0 : Integer.parseInt(sjlrMzxxxxDTO.getGzgs())); sjlrFmjl.setMzgs(!StringUtils.hasText(sjlrMzxxxxDTO.getMzgs()) ? 0 : Integer.parseInt(sjlrMzxxxxDTO.getMzgs())); ws++; hz = hz + jzgs + rzgs + jxgs;//活仔 yctc++;//已产胎次 mzxxDTO.setSjlrFmjl(sjlrFmjl); if (StringUtils.hasText(sjlrMzxxxxDTO.getFmid())) {//断奶 SjlrDnjl sjlrDnjl = new SjlrDnjl(); sjlrDnjl.setFmid(Integer.parseInt(sjlrMzxxxxDTO.getFmid())); sjlrDnjl.setDnsj(sjlrMzxxxxDTO.getDnsj()); int dnsl = !StringUtils.hasText(sjlrMzxxxxDTO.getZzzs()) ? 0 : Integer.parseInt(sjlrMzxxxxDTO.getZzzs()); sjlrDnjl.setDnsl(String.valueOf(dnsl)); sjlrDnjl.setDnwz(!StringUtils.hasText(sjlrMzxxxxDTO.getDnwz()) ? "0" : sjlrMzxxxxDTO.getDnwz()); mzxxDTO.setSjlrDnjl(sjlrDnjl); wjdnts = wjdnts + dnsl; } } mzxxDTO.setHh(String.valueOf(i)); i++; mzxxList.add(mzxxDTO); } Collections.reverse(mzxxList); sjlrMzda.setYctc(String.valueOf(yctc)); sjlrMzda.setWjhz(ws == 0 ? "0" : String.valueOf(hz / ws)); sjlrMzda.setWjdn(yctc == 0 ? "0" : String.valueOf(wjdnts / yctc)); mv.addObject("sjlrMzda", sjlrMzda); mv.addObject("mzxxList", mzxxList); } mv.addObject("ztsl",ztsl); mv.addObject("edit",edit); mv.addObject("from",from); return mv; } /** * 加载淘汰母猪详细信息查看 * @param request * @param response * @return * @throws Exception */ public ModelAndView hpSjlrTtMzxx(HttpServletRequest request, HttpServletResponse response) throws Exception { ModelAndView mv = new ModelAndView("haifmp/sjlr/da/hpSjlrMzxx.htm"); String id = request.getParameter("id"); String ztsl = request.getParameter("ztsl"); String edit = request.getParameter("edit"); String from = request.getParameter("from"); if (StringUtils.hasText(id)) { List slList = getGydm(XtAppConstant.CODE_SJLR_SL); List dqztList = getGydm(XtAppConstant.CODE_SJLR_DQZT); List pzList = getGydm(XtAppConstant.CODE_SJLR_ZZPZ); List pzsmList = getGydm(XtAppConstant.CODE_SJLR_PZSM); List rsJgList = getGydm(XtAppConstant.CODE_SJLR_RSJG);//妊娠结果 SjlrMzda sjlrMzda = sjlrMzdaDAO.selectByPrimaryKey(Integer.parseInt(id)); //日龄 Date csrq = sjlrMzda.getCsrq(); int rl = (int)DateUtil.getDaysBetweenDateWithoutTime(csrq, new Date()); sjlrMzda.setRl(String.valueOf(rl)); //舍栏 if (StringUtils.hasText(sjlrMzda.getSl())) { for (XtGydm xtGydm : slList) { if (sjlrMzda.getSl().equals(xtGydm.getDmid())) { sjlrMzda.setSlStr(xtGydm.getDmmc()); } } } //品种 if (StringUtils.hasText(sjlrMzda.getQt())) { sjlrMzda.setPzStr(sjlrMzda.getQt()); } else { if (StringUtils.hasText(sjlrMzda.getPz())) { for (XtGydm xtGydm : pzList) { if (sjlrMzda.getPz().equals(xtGydm.getDmid())) { sjlrMzda.setPzStr(xtGydm.getDmmc()); } } } } //当前状态 if (StringUtils.hasText(sjlrMzda.getDqzt())) { for (XtGydm xtGydm : dqztList) { if (sjlrMzda.getDqzt().equals(xtGydm.getDmid())) { sjlrMzda.setDqztStr(xtGydm.getDmmc()); } } } int yctc = 0;//已产胎次 int hz = 0;//活仔 int wjdnts = 0;//窝均断奶头数 int ws = 0;//窝数 Map paramMap = new HashMap(); paramMap.put("dweb", sjlrMzda.getDweb()); List mzxxxxList = sjlrMzdaDAO.getTtMzxxListByParam(paramMap); List mzxxList = new ArrayList(); //List pzs = new ArrayList(); int i = 1; for (SjlrMzxxxxDTO sjlrMzxxxxDTO : mzxxxxList) { SjlrMzxxDTO mzxxDTO = new SjlrMzxxDTO(); SjlrPzjl sjlrPzjl = new SjlrPzjl(); sjlrPzjl.setPzsj(sjlrMzxxxxDTO.getPzsj()); sjlrPzjl.setPzsm(sjlrMzxxxxDTO.getPzsm());//配种说明 for (XtGydm xtGydm : pzsmList) { if (xtGydm.getDmid().equals(String.valueOf(sjlrPzjl.getPzsm()))) { sjlrPzjl.setPzsmStr(xtGydm.getDmmc()); } } if (StringUtils.hasText(sjlrMzxxxxDTO.getYpgzeb())) { SjlrGzdaExample gzEx = new SjlrGzdaExample(); SjlrGzdaExample.Criteria gzCr = gzEx.createCriteria(); gzCr.andDwebEqualTo(sjlrMzxxxxDTO.getYpgzeb()).andZfbzEqualTo(XtAppConstant.ZFBZ_VALID); List gzList = sjlrGzdaDAO.selectByExample(gzEx); if (gzList.size() > 0) { sjlrPzjl.setYpgzeb(gzList.get(0).getEph());//一配耳牌 } } else { sjlrPzjl.setYpgzeb("未记录"); } sjlrPzjl.setYppf(sjlrMzxxxxDTO.getYppf());//一配评分 sjlrPzjl.setFqjg(Integer.parseInt(sjlrMzxxxxDTO.getFqjg()));//发情间隔 Calendar calendar = new GregorianCalendar(); calendar.setTime(sjlrMzxxxxDTO.getPzsj()); calendar.add(Calendar.DATE, + 114); sjlrPzjl.setYcrq(calendar.getTime());//预产日期 mzxxDTO.setSjlrPzjl(sjlrPzjl); //妊娠数据,妊娠与配种必定是有的 ,sql决定 SjlrRsjl sjlrRsjl = new SjlrRsjl(); sjlrRsjl.setRssj(sjlrMzxxxxDTO.getRssj()); //舍栏 if (StringUtils.hasText(sjlrMzxxxxDTO.getRsjg())) { for (XtGydm xtGydm : rsJgList) { if (sjlrMzxxxxDTO.getRsjg().equals(xtGydm.getDmid())) { sjlrRsjl.setRsjgStr(xtGydm.getDmmc()); } } } mzxxDTO.setSjlrRsjl(sjlrRsjl); if (StringUtils.hasText(sjlrMzxxxxDTO.getRsid())) {//分娩 SjlrFmjl sjlrFmjl = new SjlrFmjl(); sjlrFmjl.setRsid(Integer.parseInt(sjlrMzxxxxDTO.getRsid())); sjlrFmjl.setFmsj(sjlrMzxxxxDTO.getFmsj()); int jzgs = !StringUtils.hasText(sjlrMzxxxxDTO.getJzgs()) ? 0 : Integer.parseInt(sjlrMzxxxxDTO.getJzgs()); sjlrFmjl.setJzgs(jzgs); int rzgs = !StringUtils.hasText(sjlrMzxxxxDTO.getRzgs()) ? 0 : Integer.parseInt(sjlrMzxxxxDTO.getRzgs()); sjlrFmjl.setRzgs(rzgs); int jxgs = !StringUtils.hasText(sjlrMzxxxxDTO.getJxgs()) ? 0 : Integer.parseInt(sjlrMzxxxxDTO.getJxgs()); sjlrFmjl.setJxgs(jxgs); int mnygs = !StringUtils.hasText(sjlrMzxxxxDTO.getMnygs()) ? 0 : Integer.parseInt(sjlrMzxxxxDTO.getMnygs()); sjlrFmjl.setMnygs(mnygs); int stgs = !StringUtils.hasText(sjlrMzxxxxDTO.getStgs()) ? 0 : Integer.parseInt(sjlrMzxxxxDTO.getStgs()); sjlrFmjl.setStgs(stgs); sjlrFmjl.setHzgs(String.valueOf(jzgs + rzgs + jxgs)); sjlrFmjl.setSzgs(String.valueOf(jzgs + rzgs + jxgs + mnygs + stgs)); sjlrFmjl.setGzgs(!StringUtils.hasText(sjlrMzxxxxDTO.getGzgs()) ? 0 : Integer.parseInt(sjlrMzxxxxDTO.getGzgs())); sjlrFmjl.setMzgs(!StringUtils.hasText(sjlrMzxxxxDTO.getMzgs()) ? 0 : Integer.parseInt(sjlrMzxxxxDTO.getMzgs())); ws++; hz = hz + jzgs + rzgs + jxgs;//活仔 yctc++;//已产胎次 mzxxDTO.setSjlrFmjl(sjlrFmjl); if (StringUtils.hasText(sjlrMzxxxxDTO.getFmid())) {//断奶 SjlrDnjl sjlrDnjl = new SjlrDnjl(); sjlrDnjl.setFmid(Integer.parseInt(sjlrMzxxxxDTO.getFmid())); sjlrDnjl.setDnsj(sjlrMzxxxxDTO.getDnsj()); int dnsl = !StringUtils.hasText(sjlrMzxxxxDTO.getZzzs()) ? 0 : Integer.parseInt(sjlrMzxxxxDTO.getZzzs()); sjlrDnjl.setDnsl(String.valueOf(dnsl)); sjlrDnjl.setDnwz(!StringUtils.hasText(sjlrMzxxxxDTO.getDnwz()) ? "0" : sjlrMzxxxxDTO.getDnwz()); mzxxDTO.setSjlrDnjl(sjlrDnjl); wjdnts = wjdnts + dnsl; } } mzxxDTO.setHh(String.valueOf(i)); i++; mzxxList.add(mzxxDTO); } Collections.reverse(mzxxList); sjlrMzda.setYctc(String.valueOf(yctc)); sjlrMzda.setWjhz(ws == 0 ? "0" : String.valueOf(hz / ws)); sjlrMzda.setWjdn(yctc == 0 ? "0" : String.valueOf(wjdnts / yctc)); mv.addObject("sjlrMzda", sjlrMzda); mv.addObject("mzxxList", mzxxList); } mv.addObject("ztsl",ztsl); mv.addObject("edit",edit); mv.addObject("from",from); return mv; } /** * 获取种猪温度 * @param request * @param response * @return * @throws Exception */ public ModelAndView getZzwdMain(HttpServletRequest request, HttpServletResponse response) throws Exception { ModelAndView mv = new ModelAndView("haifmp/sjlr/da/zzwdMain.htm"); mv.addObject("dweb", request.getParameter("dweb")); return mv; } /** * 加载温度统计图 * * @param request * @param response * @return * @throws Exception */ public void getZzwdTjt(HttpServletRequest request, HttpServletResponse response) throws Exception { //获取最近7天的体温 String data = ""; String dweb = request.getParameter("dweb"); if (StringUtils.hasText(dweb)) { Map wdMap = new HashMap(); wdMap.put("dweb", dweb); wdMap.put("ss", "1"); List zzwdList = sjlrZzwdDAO.getZzwdListByParam(wdMap); if (zzwdList != null && zzwdList.size() > 0) { String[] Colors = XtAppConstant.TJTCOLORS; HighchartsDTO hd = new HighchartsDTO(); String[] value = new String[zzwdList.size()]; List tjtList = new ArrayList(); for (int i = 0; i < zzwdList.size(); i++) { SjlrZzwd sjlrZzwd = zzwdList.get(i); long time = sjlrZzwd.getScsj().getTime(); value[i] = "{x:" + time + ",y:" + sjlrZzwd.getDqwd() + "}"; } tjtList.add(value); hd.setColor(Arrays.copyOfRange(Colors, 0, 1)); hd.setDateFormat("%H:%M"); hd.setNames(new String[]{"体温"}); hd.setValues(tjtList); hd.setYdw("℃"); hd.setTitle(""); data = JsonUtil.getJsonString4JavaObj(hd); } } this.renderJsonData(response, data); } /** * 批量更新其他表中的动物耳标 * @param 被替换的动物耳标,新的动物耳标,修改人 * @return * @throws Exception */ @SuppressWarnings("unused") private void updateDweb(String oldDweb , String newDweb , String xgr) throws Exception { int count = 0; //检查采精表中有无此耳标号 SjlrCjjlExample cjEx = new SjlrCjjlExample(); SjlrCjjlExample.Criteria cjCr = cjEx.createCriteria(); cjCr.andDwebEqualTo(oldDweb).andZfbzEqualTo(XtAppConstant.ZFBZ_VALID); count = sjlrCjjlDAO.countByExample(cjEx); if (count > 0 ) { //如果采精表中有此动物耳标,则更新 SjlrCjjl sjlrCjjl = new SjlrCjjl(); sjlrCjjl.setXgr(xgr); sjlrCjjl.setXgsj(commonService.getCurrentDate()); sjlrCjjl.setZfbz(XtAppConstant.ZFBZ_VALID); sjlrCjjl.setDweb(newDweb); sjlrCjjlDAO.updateByExampleSelective(sjlrCjjl, cjEx); count = 0; } //检查配种表中有无此耳标号 SjlrPzjlExample pzgzEx = new SjlrPzjlExample(); SjlrPzjl sjlrPzjl = new SjlrPzjl(); sjlrPzjl.setXgr(xgr); sjlrPzjl.setXgsj(commonService.getCurrentDate()); sjlrPzjl.setZfbz(XtAppConstant.ZFBZ_VALID); SjlrPzjlExample.Criteria pzmzCr = pzgzEx.createCriteria(); pzmzCr.andMzebEqualTo(oldDweb).andZfbzEqualTo(XtAppConstant.ZFBZ_VALID); count = sjlrPzjlDAO.countByExample(pzgzEx); if (count > 0) { //如果配种表中有此母猪耳标,则更新母猪耳标 sjlrPzjl.setMzeb(newDweb); sjlrPzjlDAO.updateByExampleSelective(sjlrPzjl, pzgzEx); count = 0; } SjlrPzjlExample pzmzEx = new SjlrPzjlExample(); SjlrPzjlExample.Criteria pzgzCr = pzmzEx.createCriteria(); pzgzCr.andYpgzebEqualTo(oldDweb).andZfbzEqualTo(XtAppConstant.ZFBZ_VALID); count = sjlrPzjlDAO.countByExample(pzmzEx); if (count > 0) { //如果配种表中有此首配公猪耳标,则更新 sjlrPzjl.setYpgzeb(newDweb); sjlrPzjlDAO.updateByExampleSelective(sjlrPzjl, pzmzEx); count = 0; } //检查妊娠表中有无此耳标号 SjlrRsjlExample rsEx = new SjlrRsjlExample(); SjlrRsjlExample.Criteria rsCr = rsEx.createCriteria(); rsCr.andDwebEqualTo(oldDweb).andZfbzEqualTo(XtAppConstant.ZFBZ_VALID); count = sjlrRsjlDAO.countByExample(rsEx); if (count > 0) { SjlrRsjl sjlrRsjl = new SjlrRsjl(); sjlrRsjl.setXgr(xgr); sjlrRsjl.setXgsj(commonService.getCurrentDate()); sjlrRsjl.setZfbz(XtAppConstant.ZFBZ_VALID); sjlrRsjl.setDweb(newDweb); sjlrRsjlDAO.updateByExampleSelective(sjlrRsjl, rsEx); count = 0; } //检查分娩表中有无次耳标号 SjlrFmjlExample fmEx = new SjlrFmjlExample(); SjlrFmjlExample.Criteria fmCr = fmEx.createCriteria(); fmCr.andDwebEqualTo(oldDweb).andZfbzEqualTo(XtAppConstant.ZFBZ_VALID); count = sjlrFmjlDAO.countByExample(fmEx); if (count > 0) { SjlrFmjl sjlrFmjl = new SjlrFmjl(); sjlrFmjl.setXgr(xgr); sjlrFmjl.setXgsj(commonService.getCurrentDate()); sjlrFmjl.setZfbz(XtAppConstant.ZFBZ_VALID); sjlrFmjl.setDweb(newDweb); sjlrFmjlDAO.updateByExampleSelective(sjlrFmjl, fmEx); count = 0; } //检查断奶表中有无此耳标号 SjlrDnjlExample dnEx = new SjlrDnjlExample(); SjlrDnjlExample.Criteria dnCr = dnEx.createCriteria(); dnCr.andDwebEqualTo(oldDweb).andZfbzEqualTo(XtAppConstant.ZFBZ_VALID); count = sjlrDnjlDAO.countByExample(dnEx); if (count > 0) { SjlrDnjl sjlrDnjl = new SjlrDnjl(); sjlrDnjl.setXgr(xgr); sjlrDnjl.setXgsj(commonService.getCurrentDate()); sjlrDnjl.setZfbz(XtAppConstant.ZFBZ_VALID); sjlrDnjl.setDweb(newDweb); sjlrDnjlDAO.updateByExampleSelective(sjlrDnjl, dnEx); count = 0; } //检查淘汰表里有无此耳标号 SjlrZzttExample ttEx = new SjlrZzttExample(); SjlrZzttExample.Criteria ttCr = ttEx.createCriteria(); ttCr.andDwebEqualTo(oldDweb).andZfbzEqualTo(XtAppConstant.ZFBZ_VALID); count = sjlrZzttDAO.countByExample(ttEx); if (count > 0) { SjlrZztt sjlrZztt = new SjlrZztt(); sjlrZztt.setXgr(xgr); sjlrZztt.setXgsj(commonService.getCurrentDate()); sjlrZztt.setZfbz(XtAppConstant.ZFBZ_VALID); sjlrZztt.setDweb(newDweb); sjlrZzttDAO.updateByExampleSelective(sjlrZztt, ttEx); count = 0; } } /** * 获取公用代码 * @param lbmc * @return * @throws Exception */ private List getGydm(String lbmc) { return xtGydmDAO.selectGydmByLbmc(lbmc); } public void setCommonService(CommonService commonService) { this.commonService = commonService; } public void setXtGydmDAO(XtGydmDAO xtGydmDAO) { this.xtGydmDAO = xtGydmDAO; } public void setSjlrGzdaDAO(SjlrGzdaDAO sjlrGzdaDAO) { this.sjlrGzdaDAO = sjlrGzdaDAO; } public void setDaMcdaDAO(DaMcdaDAO daMcdaDAO) { this.daMcdaDAO = daMcdaDAO; } public void setSjlrMzdaDAO(SjlrMzdaDAO sjlrMzdaDAO) { this.sjlrMzdaDAO = sjlrMzdaDAO; } public void setSjlrZzwdDAO(SjlrZzwdDAO sjlrZzwdDAO) { this.sjlrZzwdDAO = sjlrZzwdDAO; } public void setSjlrCjjlDAO(SjlrCjjlDAO sjlrCjjlDAO) { this.sjlrCjjlDAO = sjlrCjjlDAO; } public void setSjlrPzjlDAO(SjlrPzjlDAO sjlrPzjlDAO) { this.sjlrPzjlDAO = sjlrPzjlDAO; } public void setSjlrRsjlDAO(SjlrRsjlDAO sjlrRsjlDAO) { this.sjlrRsjlDAO = sjlrRsjlDAO; } public void setSjlrFmjlDAO(SjlrFmjlDAO sjlrFmjlDAO) { this.sjlrFmjlDAO = sjlrFmjlDAO; } public void setSjlrDnjlDAO(SjlrDnjlDAO sjlrDnjlDAO) { this.sjlrDnjlDAO = sjlrDnjlDAO; } public void setSjlrZzttDAO(SjlrZzttDAO sjlrZzttDAO) { this.sjlrZzttDAO = sjlrZzttDAO; } }