123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506 |
- package com.huimv.sjlr;
- import java.math.BigDecimal;
- import java.text.SimpleDateFormat;
- import java.util.ArrayList;
- import java.util.Calendar;
- 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.xt.constant.XtAppConstant;
- import com.huimv.busi.xt.constant.XtSearchSqlConstant;
- import com.huimv.busi.xt.model.CommonService;
- import com.huimv.busi.xt.utils.DateUtil;
- import com.huimv.dto.SjlrDnjlDTO;
- import com.huimv.sjlr.dao.SjlrDnjlDAO;
- import com.huimv.sjlr.dao.SjlrFmjlDAO;
- import com.huimv.sjlr.dao.SjlrMzdaDAO;
- import com.huimv.sjlr.dataobject.SjlrDnjl;
- import com.huimv.sjlr.dataobject.SjlrDnjlExample;
- import com.huimv.sjlr.dataobject.SjlrMzda;
- import com.huimv.sjlr.dataobject.SjlrMzdaExample;
- import com.huimv.web.base.BaseController;
- import com.huimv.xt.dao.XtGydmDAO;
- import com.huimv.xt.dataobject.XtGydm;
- public class SjlrDnHpController extends BaseController {
-
- private CommonService commonService;
-
- private XtGydmDAO xtGydmDAO;
-
- private SjlrMzdaDAO sjlrMzdaDAO;
-
- private SjlrDnjlDAO sjlrDnjlDAO;
-
- private SjlrFmjlDAO sjlrFmjlDAO;
-
- /**
- * 加载断奶记录
- * @param request
- * @param response
- * @return
- * @throws Exception
- */
- public ModelAndView hpSjlrDnIndex(HttpServletRequest request,
- HttpServletResponse response) throws Exception {
- ModelAndView mv = new ModelAndView("haifmp/sjlr/dn/hpSjlrDnIndex.htm");
- Map<String, Object> paramMap = new HashMap<String, Object>();
- String dweb = request.getParameter("dweb");
- String mcid = request.getParameter("mcid");
- String ksrq = request.getParameter("ksrq");
- String jsrq = request.getParameter("jsrq");
- String cxeph = request.getParameter("cxeph");
- String searchFlag = request.getParameter("searchFlag");
- SjlrDnjlDTO dnDTO = null;
- List<SjlrDnjl> dnList = null;
- SjlrDnjl sjlrDnjl = null;
- List<SjlrDnjlDTO> dnDTOList = new ArrayList<SjlrDnjlDTO>();
- String date = "";
- int count = 0;
- int countzz = 0;
- if (StringUtils.hasText(mcid)) {
- paramMap.put("mcid", mcid);
- paramMap.put("order", XtSearchSqlConstant.order_by_dn);
- if (!StringUtils.hasText(searchFlag)) {
- searchFlag = "0";//如果没有,默认是耳标搜索页面
- }
- mv.addObject("searchFlag", searchFlag);
- if (XtAppConstant.HAIFMP_SEARCH_FLAG_DATE.equals(searchFlag)) {//日期搜索页面
- if (!StringUtils.hasText(jsrq)) {
- jsrq = DateUtil.parserDateToDefaultString(commonService.getCurrentDate());
- }
- paramMap.put("jsrq", jsrq);
- mv.addObject("jsrq", jsrq);
- if (!StringUtils.hasText(ksrq)) {
- Calendar calendar = new GregorianCalendar();
- calendar.setTime(commonService.getCurrentDate());
- calendar.add(Calendar.DATE, -7);
- ksrq = DateUtil.parserDateToDefaultString(calendar.getTime());
- }
- paramMap.put("ksrq", ksrq);
- mv.addObject("ksrq", ksrq);
- } else { //耳标搜索页面,无耳标显示当天,有耳标显示当前耳标下全部
- if (StringUtils.hasText(dweb)) {
- //根据耳标号
- paramMap.put("dweb", "%" + dweb +"%" );
- mv.addObject("dweb",dweb);
- } else if (StringUtils.hasText(cxeph)) {
- //根据耳牌号查
- paramMap.put("cxeph","%" + cxeph +"%" );
- mv.addObject("dweb",cxeph);
- } else {
- jsrq = ksrq = DateUtil.parserDateToDefaultString(commonService.getCurrentDate());
- paramMap.put("jsrq", jsrq);
- paramMap.put("ksrq", ksrq);
- }
- }
- //查询当前耳牌/日期下所有的断奶记录
- List<SjlrDnjl> dnjlList = sjlrDnjlDAO.selectDnjlListByParam(paramMap);
- if (dnjlList.size() == 0 && searchFlag.equals("0")) {//如果当天没有则取最近一天
- Map<String, Object> paramMapPz = new HashMap<String, Object>();
- paramMapPz.put("order", XtSearchSqlConstant.order_by_dn);
- List<SjlrDnjl> dnjlListDn = sjlrDnjlDAO.selectDnjlListByParam(paramMapPz);
- if (dnjlListDn.size() > 0) {
- String lastDnsj = DateUtil.parserDateToDefaultString(dnjlListDn.get(0).getDnsj());
- String lastJsrq = lastDnsj;
- String lastksrq = lastJsrq;
- paramMap.put("jsrq", lastJsrq);
- paramMap.put("ksrq", lastksrq);
- dnjlList.clear();
- dnjlList = sjlrDnjlDAO.selectDnjlListByParam(paramMap);
- }
- }
- List<XtGydm> slList = getGydm(XtAppConstant.CODE_SJLR_SL);
- if (dnjlList != null && dnjlList.size() > 0 ) {
- for (int i = 0 ;i < dnjlList.size(); i++ ) {
- sjlrDnjl = dnjlList.get(i);
- //舍栏
- if (StringUtils.hasText(sjlrDnjl.getDnsl())) {
- for (XtGydm xtGydm : slList) {
- if (xtGydm.getDmid().equals(sjlrDnjl.getDnsl())) {
- sjlrDnjl.setDnsl(xtGydm.getDmmc());
- }
- }
- }
- //断奶胎次
- SjlrDnjlExample dnEx = new SjlrDnjlExample();
- SjlrDnjlExample.Criteria dnCr = dnEx.createCriteria();
- dnCr.andDwebEqualTo(sjlrDnjl.getDweb()).andIdLessThanOrEqualTo(sjlrDnjl.getId()).andZfbzEqualTo(XtAppConstant.ZFBZ_VALID);
- int dntc = sjlrDnjlDAO.countByExample(dnEx);
- sjlrDnjl.setDntc(String.valueOf(dntc));
-
- //猪仔头数
- if (sjlrDnjl.getZzzs() == null) {
- sjlrDnjl.setZzzs(0);
- }
-
- //断奶均重
- if (StringUtils.hasText(sjlrDnjl.getDnwz()) && sjlrDnjl.getDnwz() != "0") {
- if (sjlrDnjl.getZzzs() != 0) {
- Double str = (Double.parseDouble(sjlrDnjl.getDnwz()) / sjlrDnjl.getZzzs());
- if (!"0".equals(str)) {
- BigDecimal bd = new BigDecimal(str);
- sjlrDnjl.setDnjz(bd.setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue());
- }else {
- sjlrDnjl.setDnjz((double) 0);
- }
- } else {
- sjlrDnjl.setDnjz((double) 0);
- }
- }
-
- //业务逻辑
- if (i == 0) {
- dnDTO = new SjlrDnjlDTO();
- dnList = new ArrayList<SjlrDnjl>();
- date = DateUtil.parserDateToDefaultString(sjlrDnjl.getDnsj());
- dnDTO.setDnrq(date);
- dnList.add(sjlrDnjl);
- count++;
- countzz = sjlrDnjl.getZzzs();
- }else {
- if (DateUtil.parserDateToDefaultString(sjlrDnjl.getDnsj()).equals(date)) {
- count++;
- countzz += sjlrDnjl.getZzzs();
- dnList.add(sjlrDnjl);
- }else {
- dnDTO.setDnList(dnList);
- dnDTO.setCount(count);
- dnDTO.setCountzz(countzz);
- dnDTOList.add(dnDTO);
- dnDTO = new SjlrDnjlDTO();
- dnList = new ArrayList<SjlrDnjl>();
- date = DateUtil.parserDateToDefaultString(sjlrDnjl.getDnsj());
- dnDTO.setDnrq(date);
- dnList.add(sjlrDnjl);
- count = 1;
- countzz = sjlrDnjl.getZzzs();
- }
- }
- }
- if (count > 0) {
- dnDTO.setDnList(dnList);
- dnDTO.setCount(count);
- dnDTO.setCountzz(countzz);
- dnDTOList.add(dnDTO);
- }
- }
- mv.addObject("dnDTOList", dnDTOList);
- }
- mv.addObject("ksrq", ksrq);
- mv.addObject("jsrq", jsrq);
- mv.addObject("dweb", dweb);
- return mv;
- }
-
- /**
- * 加载断奶记录新增页面
- * @param request
- * @param response
- * @return
- * @throws Exception
- */
- public ModelAndView hpSjlrDnAdd(HttpServletRequest request,
- HttpServletResponse response) throws Exception {
- ModelAndView mv = new ModelAndView("haifmp/sjlr/dn/hpSjlrDnjlAdd.htm");
- String dweb = request.getParameter("dweb");
- String id = request.getParameter("id");
- String mcid = request.getParameter("mcid");
- String newDate = request.getParameter("date");
- String eph = request.getParameter("eph");
- SjlrDnjl sjlrDnjl = new SjlrDnjl();
- List<XtGydm> slList = getGydm(XtAppConstant.CODE_SJLR_SL);
- List<SjlrDnjl> dnjltc = new ArrayList<SjlrDnjl>() ;
- Map<String, Object> paramMap = new HashMap<String, Object>();
- if ("undefined".equals(id)) {
- id=null;
- }
- if (StringUtils.hasText(mcid)) {
- //有id 无耳标, 编辑修改
- if (StringUtils.hasText(id) && !StringUtils.hasText(dweb)) {
- sjlrDnjl = sjlrDnjlDAO.selectByPrimaryKey(Integer.parseInt(id));
- //根据动物耳标查询断奶胎次
- SjlrDnjlExample dnEx = new SjlrDnjlExample();
- SjlrDnjlExample.Criteria dnCr = dnEx.createCriteria();
- dnCr.andDwebEqualTo(sjlrDnjl.getDweb()).andIdLessThanOrEqualTo(sjlrDnjl.getId()).andZfbzEqualTo(XtAppConstant.ZFBZ_VALID);
- int dntc = sjlrDnjlDAO.countByExample(dnEx);
- sjlrDnjl.setDntc(String.valueOf(dntc));
- //耳牌号
- if (StringUtils.hasText(eph)) {
- sjlrDnjl.setEph(eph);
- }
- dweb = sjlrDnjl.getDweb();
- //有耳标无ID ,新增插入耳标等信息
- } else if (StringUtils.hasText(dweb) && !StringUtils.hasText(id)) {
- if (StringUtils.hasText(eph)) {
- sjlrDnjl.setEph(eph);
- }
- sjlrDnjl.setDweb(dweb);
- //根据动物耳标查询断奶胎次
- paramMap.put("dweb", dweb);
- paramMap.put("mcid", mcid);
- String dqztid = "3";
- paramMap.put("dqztid", dqztid);
- dnjltc = sjlrDnjlDAO.selectDnjltcByParam(paramMap);
- if (StringUtils.hasText(dnjltc.get(0).getDnsl())) {
- for (XtGydm xtGydm : slList) {
- if (xtGydm.getDmid().equals(dnjltc.get(0).getDnsl())) {
- sjlrDnjl.setDnsl(xtGydm.getDmid());
- sjlrDnjl.setZrsl(xtGydm.getDmid());//默认不转栏
- }
- }
- }
- if (dnjltc.get(0).getFmid() != null) {
- sjlrDnjl.setFmid(dnjltc.get(0).getFmid());
- }
- if (dnjltc.size() > 0) {
- if (dnjltc.get(0).getDntc() != null){
- sjlrDnjl.setDntc(String.valueOf(Integer.parseInt(dnjltc.get(0).getDntc()) + 1));
- } else {
- sjlrDnjl.setDntc("1");
- }
- } else {
- sjlrDnjl.setDntc("0");
- }
- }
-
- if (newDate != null) {
- SimpleDateFormat sdf = new SimpleDateFormat(XtAppConstant.TIME_FORMAT);//小写的mm表示的是分钟
- java.util.Date newdate = sdf.parse(newDate);
- sjlrDnjl.setDnsj(newdate);
- }
- if (dweb != null) {
- sjlrDnjl.setDweb(dweb);
- }
- }
-
- List<XtGydm> zcycList = getGydm(XtAppConstant.CODE_ZCYC);
- mv.addObject("slList", slList);
- mv.addObject("zcycList", zcycList);
- mv.addObject("sjlrDnjl", sjlrDnjl);
- mv.addObject("date" , newDate);
- mv.addObject("dweb",dweb);
- return mv;
- }
-
- /**
- * 普通舍保存
- * @param request
- * @throws Exception
- */
- public void saveSjlrDnjl(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 dweb = request.getParameter("dweb");
- Date dnsj = null;
- SjlrDnjl sjlrDnjl = new SjlrDnjl();
- sjlrDnjl = (SjlrDnjl) parseObjectFromRequest(request, sjlrDnjl);
- sjlrDnjl.setXgr(getLoginSessionBean(request).getYhid().toString());
- sjlrDnjl.setXgsj(commonService.getCurrentDate());
- sjlrDnjl.setZfbz(XtAppConstant.ZFBZ_VALID);
- if (StringUtils.hasText(dweb)) {
- sjlrDnjl.setDweb(dweb);
- }
- if (StringUtils.hasText(sjlrDnjl.getFmid().toString())) {
- SjlrDnjlExample dnEx = new SjlrDnjlExample();
- SjlrDnjlExample.Criteria dnCr = dnEx.createCriteria();
- dnCr.andFmidEqualTo(sjlrDnjl.getFmid()).andZfbzEqualTo(XtAppConstant.ZFBZ_VALID);
- int count = sjlrDnjlDAO.countByExample(dnEx);
- if (count > 0) {
- if (sjlrDnjl.getId() == 0) {
- String jsonStr = "{\"count\" : \"2\"}";
- response.getWriter().write(jsonStr);
- return;
- }
- }
-
-
-
-
- }
- //猪仔总数
- if (!StringUtils.hasText(String.valueOf(sjlrDnjl.getZzzs()))) {
- sjlrDnjl.setZzzs(0);
- }
-
- //断奶时间应该大于分娩时间
- Date fmsj = sjlrFmjlDAO.selectByPrimaryKey(sjlrDnjl.getFmid()).getFmsj();
- if (sjlrDnjl.getId() != 0) {
- dnsj = sjlrDnjlDAO.selectByPrimaryKey(sjlrDnjl.getId()).getDnsj();
- }else {
- dnsj = sjlrDnjl.getDnsj();
- }
- if (fmsj.getTime() > dnsj.getTime()) {
- String jsonStr = "{\"count\" : \"4\"}";
- response.getWriter().write(jsonStr);
- return;
- }
-
- //断奶窝重
- if (!StringUtils.hasText(sjlrDnjl.getDnwz())) {
- sjlrDnjl.setDnwz("0");
- }
- //寄入数
- if (!StringUtils.hasText(String.valueOf(sjlrDnjl.getJrs()))) {
- sjlrDnjl.setJrs(0);
- }
- //寄出数
- if (!StringUtils.hasText(String.valueOf(sjlrDnjl.getJcs()))) {
- sjlrDnjl.setJcs(0);
- }
- //背膘
- if (!StringUtils.hasText (sjlrDnjl.getBb())) {
- sjlrDnjl.setBb("0");
- }
- if (sjlrDnjl.getId() != 0) {
- sjlrDnjlDAO.updateByPrimaryKeySelective(sjlrDnjl);
- } else {
- sjlrDnjlDAO.insertSelective(sjlrDnjl);
- }
- String zrsl = sjlrDnjl.getZrsl();
- if (StringUtils.hasText(zrsl)) {
- SjlrMzdaExample mzdaEx = new SjlrMzdaExample();
- SjlrMzdaExample.Criteria mzdaCr = mzdaEx.createCriteria();
- mzdaCr.andDwebEqualTo(sjlrDnjl.getDweb()).andZfbzEqualTo(XtAppConstant.ZFBZ_VALID);
- String mcid = request.getParameter("mcid");
- if (StringUtils.hasText(mcid)) {
- mzdaCr.andMcidEqualTo(Integer.parseInt(mcid));
- }
- String sczt = sjlrMzdaDAO.selectByExample(mzdaEx).get(0).getDqzt();
- SjlrMzda sjlrMzda = new SjlrMzda();
- sjlrMzda.setSl(zrsl);
- sjlrMzda.setDqzt(XtAppConstant.CODE_SJLR_DN_DMID);
- sjlrMzda.setXgr(getLoginSessionBean(request).getYhid().toString());
- sjlrMzda.setXgsj(commonService.getCurrentDate());
- sjlrMzda.setSczt(sczt);
- sjlrMzdaDAO.updateByExampleSelective(sjlrMzda, mzdaEx);
- }
- String jsonStr = "{\"count\" : \"1\"}";
- response.getWriter().write(jsonStr);
- }
-
- /**
- * 耳标公共查询页面
- * @param request
- * @param response
- * @return
- * @throws Exception
- */
- public ModelAndView getDnjlSearchDweb(HttpServletRequest request,
- HttpServletResponse response) throws Exception {
- ModelAndView mv = new ModelAndView("haifmp/sjlr/dn/dnjlSearchModel.htm");
- String dweb = request.getParameter("dweb");
- String mcid = request.getParameter("mcid");
- String date = request.getParameter("date");
- String cxeph = request.getParameter("cxeph");
- if (StringUtils.hasText(mcid)) {
- Map<String, Object> paramMap = new HashMap<String, Object>();
- if (StringUtils.hasText(dweb)) {
- paramMap.put("dweb", "%" + dweb + "%");
- mv.addObject("dweb", dweb);
- }
- if (StringUtils.hasText(cxeph)) {
- paramMap.put("cxeph", "%" + cxeph + "%");
- mv.addObject("dweb", cxeph);
- }
- paramMap.put("mcid", mcid);
- List<SjlrMzda> mzdaList = sjlrDnjlDAO.selectSearchDnjlListByParam(paramMap);
- List<XtGydm> slList = getGydm(XtAppConstant.CODE_SJLR_SL);
- List<XtGydm> dqztList = getGydm(XtAppConstant.CODE_SJLR_MZZT);
- if (mzdaList != null && mzdaList.size() > 0) {
- for (SjlrMzda sjlrMzda : mzdaList) {
- //舍栏
- if (StringUtils.hasText(sjlrMzda.getSl())) {
- for (XtGydm xtGydm : slList) {
- if (sjlrMzda.getSl().equals(xtGydm.getDmid())) {
- sjlrMzda.setSlStr(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("date",date);
- }
- return mv;
- }
- /**
- * 是否是24小时之内的数据
- * @param request
- * @throws Exception
- */
- public void checkDnDataIsIn24H(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 id = request.getParameter("id");
- String jsonStr = "";
- if (StringUtils.hasText(id)) {
- SjlrDnjlExample DnjlEx = new SjlrDnjlExample();
- SjlrDnjlExample.Criteria dnjlCr = DnjlEx.createCriteria();
- dnjlCr.andIdEqualTo(Integer.valueOf(id)).andZfbzEqualTo(XtAppConstant.ZFBZ_VALID);
- List<SjlrDnjl> DnjlList = sjlrDnjlDAO.selectByExample(DnjlEx);
- if (DnjlList.size() > 0) {
- boolean isIn24H = commonService.getCurrentDate().getTime() - DnjlList.get(0).getDnsj().getTime() <= 24*60*60*1000;
- if (isIn24H) {
- jsonStr = "{\"count\" : \"1\"}";
- } else {
- jsonStr = "{\"count\" : \"0\"}";
- }
- }
- }
- response.getWriter().write(jsonStr);
- }
- /**
- * 获取公用代码
- * @param lbmc
- * @return
- * @throws Exception
- */
- private List<XtGydm> 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 setSjlrMzdaDAO(SjlrMzdaDAO sjlrMzdaDAO) {
- this.sjlrMzdaDAO = sjlrMzdaDAO;
- }
- public void setSjlrDnjlDAO(SjlrDnjlDAO sjlrDnjlDAO) {
- this.sjlrDnjlDAO = sjlrDnjlDAO;
- }
- public void setSjlrFmjlDAO(SjlrFmjlDAO sjlrFmjlDAO) {
- this.sjlrFmjlDAO = sjlrFmjlDAO;
- }
- }
|