|
@@ -8,6 +8,7 @@ import com.huimv.eartag2.common.utils.*;
|
|
|
import com.huimv.eartag2.manage.service.IEartagService;
|
|
|
import lombok.extern.slf4j.Slf4j;
|
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
|
+import org.springframework.data.domain.Page;
|
|
|
import org.springframework.data.domain.PageRequest;
|
|
|
import org.springframework.data.domain.Pageable;
|
|
|
import org.springframework.data.jpa.domain.Specification;
|
|
@@ -16,6 +17,7 @@ import org.springframework.stereotype.Service;
|
|
|
import javax.persistence.criteria.Order;
|
|
|
import javax.persistence.criteria.Predicate;
|
|
|
import java.sql.Date;
|
|
|
+import java.sql.Timestamp;
|
|
|
import java.text.ParseException;
|
|
|
import java.util.ArrayList;
|
|
|
import java.util.List;
|
|
@@ -43,6 +45,87 @@ public class EartagServiceImpl implements IEartagService {
|
|
|
private EartagDeviceEartagCountRepo deviceEartagCountRepo;
|
|
|
|
|
|
|
|
|
+ @Override
|
|
|
+ public Result listAllEartagRegister(String farmId, String earmark, Integer activeStatus, Integer liveStatus, Integer registerType, String startDate, String endDate, Integer pageNo, Integer pageSize) throws ParseException {
|
|
|
+ DateUtil du = new DateUtil();
|
|
|
+ //
|
|
|
+ Specification<EartagEartagRegisterEntity> sf = (Specification<EartagEartagRegisterEntity>) (root, criteriaQuery, criteriaBuilder) -> {
|
|
|
+ //
|
|
|
+ List<Predicate> predList = new ArrayList<>();
|
|
|
+ //farmId
|
|
|
+ if (null != farmId && farmId.trim().length()>0) {
|
|
|
+ predList.add(criteriaBuilder.equal(root.get("farmId").as(String.class), farmId));
|
|
|
+ }
|
|
|
+ //earmark
|
|
|
+ if (null != earmark && earmark.trim().length()>0) {
|
|
|
+ predList.add(criteriaBuilder.equal(root.get("earmark").as(String.class), earmark));
|
|
|
+ }
|
|
|
+ //activeStatus
|
|
|
+ if (null != activeStatus) {
|
|
|
+ predList.add(criteriaBuilder.equal(root.get("activeStatus").as(Integer.class), activeStatus));
|
|
|
+ }
|
|
|
+ //liveStatus
|
|
|
+ if (null != liveStatus) {
|
|
|
+ predList.add(criteriaBuilder.equal(root.get("liveStatus").as(Integer.class), liveStatus));
|
|
|
+ }
|
|
|
+ //registerType
|
|
|
+ if (null != registerType) {
|
|
|
+ predList.add(criteriaBuilder.equal(root.get("registerType").as(Integer.class), registerType));
|
|
|
+ }
|
|
|
+ //startDate
|
|
|
+ if (null != startDate && startDate.trim().length()>0) {
|
|
|
+ try {
|
|
|
+ predList.add(criteriaBuilder.greaterThanOrEqualTo(root.get("createDate").as(Date.class), new Date(new DateUtil().parseDateTextToLong(startDate))));
|
|
|
+ } catch (ParseException e) {
|
|
|
+ e.printStackTrace();
|
|
|
+ }
|
|
|
+ }
|
|
|
+ //endDate
|
|
|
+ if (null != endDate && endDate.trim().length()>0) {
|
|
|
+ try {
|
|
|
+ predList.add(criteriaBuilder.lessThanOrEqualTo(root.get("createDate").as(Date.class), new Date(new DateUtil().parseDateTextToLong(endDate))));
|
|
|
+ } catch (ParseException e) {
|
|
|
+ e.printStackTrace();
|
|
|
+ }
|
|
|
+ }
|
|
|
+// //activeStatus
|
|
|
+// if (null != activeStatus) {
|
|
|
+// predList.add(criteriaBuilder.equal(root.get("activeStatus").as(Integer.class), activeStatus));
|
|
|
+// }
|
|
|
+// //liveStatus
|
|
|
+// if (null != liveStatus) {
|
|
|
+// predList.add(criteriaBuilder.equal(root.get("deviceStatus").as(Integer.class), liveStatus));
|
|
|
+// }
|
|
|
+ Predicate[] pred = new Predicate[predList.size()];
|
|
|
+ Predicate and = criteriaBuilder.and(predList.toArray(pred));
|
|
|
+ criteriaQuery.where(and);
|
|
|
+ //
|
|
|
+ List<Order> orders = new ArrayList<>();
|
|
|
+ orders.add(criteriaBuilder.desc(root.get("id")));
|
|
|
+ return criteriaQuery.orderBy(orders).getRestriction();
|
|
|
+ };
|
|
|
+ Pageable pageable = PageRequest.of(pageNo - 1, pageSize);
|
|
|
+ Page<EartagEartagRegisterEntity> eartagRegisterPage = eartagRegisterRepo.findAll(sf, pageable);
|
|
|
+// System.out.println("## eartagRegisterPage>>"+eartagRegisterPage);
|
|
|
+// List<EartagEartagRegisterEntity> eartagRegisterEntityList = eartagRegisterPage.getContent();
|
|
|
+// System.out.println("## eartagRegisterEntityList.size()>>"+eartagRegisterEntityList.size());
|
|
|
+// JSONArray dataJa = new JSONArray();
|
|
|
+// for(EartagEartagRegisterEntity eartagRegisterEntity:eartagRegisterEntityList){
|
|
|
+// JSONObject dataJo = JSONUtil.convertEntityToJSONObject(eartagRegisterEntity);
|
|
|
+// dataJa.add(dataJo);
|
|
|
+// dataJo.put("firstTime",du.formatDatetimeText(eartagRegisterEntity.getFirstTime()));
|
|
|
+// dataJo.put("lastTime",du.formatDatetimeText(eartagRegisterEntity.getLastTime()));
|
|
|
+// dataJo.put("registerTime",du.formatDatetimeText(eartagRegisterEntity.getRegisterTime()));
|
|
|
+// dataJo.put("activeTime",du.formatDatetimeText(eartagRegisterEntity.getActiveTime()));
|
|
|
+// dataJo.put("createDate",du.formatDateText(eartagRegisterEntity.getCreateDate()));
|
|
|
+// }
|
|
|
+// for(EartagEartagRegisterEntity eartagRegisterEntity:eartagRegisterEntityList){
|
|
|
+// eartagRegisterEntity.setFirstTime(new Timestamp(du.parseDateTime(eartagRegisterEntity.getFirstTime().toString()).getTime()));
|
|
|
+// System.out.println("getFirstTime 33>>"+du.parseDateTime(eartagRegisterEntity.getFirstTime().toString()));
|
|
|
+// }
|
|
|
+ return new Result(ResultCode.SUCCESS, eartagRegisterPage);
|
|
|
+ }
|
|
|
+
|
|
|
/**
|
|
|
* @Method : getEartagDeviceByEarmarkAndAddDate
|
|
|
* @Description :
|
|
@@ -64,6 +147,7 @@ public class EartagServiceImpl implements IEartagService {
|
|
|
}
|
|
|
}
|
|
|
|
|
|
+
|
|
|
/**
|
|
|
* @Method : listOnlineEartagCount
|
|
|
* @Description :
|