package com.gzzn.omms.msgexchangeapi.service; import java.util.Collections; import java.util.Date; import java.util.List; import java.util.Optional; import java.util.stream.Collectors; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import com.gzzn.omms.msgexchangeapi.dao.CminmsgDao; import com.gzzn.omms.msgexchangeapi.entity.Cminmsg; import com.gzzn.omms.msgexchangeapi.entity.msg.Msg; @Service public class CminmsgServiceImpl implements ICminmsgService { @Autowired private CminmsgDao cminmsgDao; @Autowired IExchangeService exchangeService; @Override public Cminmsg sendXmlMsg(String xmlMsg) { Cminmsg cminmsg = new Cminmsg(); cminmsg.setCminmsgsClobMsg(xmlMsg); cminmsg.setCminmsgsDateReceived(new Date()); Cminmsg rt = cminmsgDao.save(cminmsg); return rt; } @Override public List getNewMsgsAfterDate(Date afterdate) { List lsCminmsgs = cminmsgDao.findByCminmsgsDateReceivedAfterOrderByCminmsgsDateReceived(afterdate); if(null == lsCminmsgs) { return Collections.emptyList(); } return lsCminmsgs; } //end function @Override public List getNewMsgsAfterId(Long id) { List lsCminmsgs = cminmsgDao.findByCminmsgsIdGreaterThanOrderByCminmsgsDateReceived(id); if(null == lsCminmsgs) { return Collections.emptyList(); } return lsCminmsgs; } @Override public Optional getRespSchdCminmsg(Date date) { List lsCminmsgs = getNewMsgsAfterDate(date); Optional opCminmsg = lsCminmsgs .stream() .filter(x->{ String msgBlob = x.getCminmsgsClobMsg(); Msg msg = exchangeService.xmlstrToObject(msgBlob, Msg.class); String type = msg.getMeta().getType(); String subType = msg.getMeta().getStyp(); return type.equals("SCHD") && subType.equals("RESP"); }) .findFirst(); return opCminmsg; }//end function @Override public List updateBatchProcessed(List lsCminmsgs) { // List ids = lsCminmsgs.stream().map(node->{ return node.getCminmsgsId(); }).collect(Collectors.toList()); List lsCmins = (List) cminmsgDao.findAll(ids); List lsCminsProcessed = lsCmins.stream().map(node->{ node.setCminmsgsDateReceived(new Date()); return node; }).collect(Collectors.toList()); return (List) cminmsgDao.save(lsCminsProcessed); }//end function }