Newer
Older
alarm / WebRoot / WEB-INF / classes / com / casic / dma / model / manager / DMASaleWaterManager.java
zhout on 2 Mar 2022 4 KB first commit
package com.casic.dma.model.manager;

import com.casic.alarm.utils.DateUtils;
import com.casic.core.hibernate.HibernateEntityDao;
import com.casic.core.page.Page;
import com.casic.dma.model.domain.DMAInfo;
import com.casic.dma.model.domain.DMASaleWater;
import com.casic.dma.model.dto.DMASaleWaterForm;
import com.casic.dma.model.json.DMASaleWaterJSON;
import org.hibernate.Criteria;
import org.hibernate.criterion.Order;
import org.hibernate.criterion.Restrictions;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;

import javax.annotation.Resource;
import java.text.ParseException;
import java.util.*;

@Service
public class DMASaleWaterManager extends HibernateEntityDao<DMASaleWater> {

    @Resource
    private DMAInfoManager dmaInfoManager;

    public Criteria getCriteria() {
        return getSession().createCriteria(DMASaleWater.class);
    }

    /**
     * 获取子区域内所有有效售水信息
     * @param dmaID
     * @param page
     * @param rows
     * @return
     */
    public Map<String, Object> pagedQueryJson(Long dmaID, int page, int rows) {
        Criteria criteria = getCriteria();
        criteria.add(Restrictions.eq("active", true));
        criteria.add(Restrictions.eq("dmaInfo", dmaInfoManager.get(dmaID)));
        criteria.addOrder(Order.desc("id"));

        Page pg = pagedQuery(criteria,page,rows);

        List<DMASaleWaterJSON> dmaSaleWaterJSONList = new ArrayList<DMASaleWaterJSON>();
        List<DMASaleWater> saleWaterList = (List<DMASaleWater>) pg.getResult();
        for (DMASaleWater dmaSaleWater : saleWaterList) {
            dmaSaleWaterJSONList.add(new DMASaleWaterJSON(dmaSaleWater));
        }
        Map<String,Object> map = new HashMap<String, Object>();
        map.put("total", pg.getTotalCount());
        map.put("rows", dmaSaleWaterJSONList);
        return map;
    }

    /**
     * 删除子区域关联的售水信息
     * @param dmaInfo
     */
    @Transactional
    public void removeByDma(DMAInfo dmaInfo) {
        String hql = "update DMASaleWater set active=:active where dmaInfo=:dma";
        Map<String, Object> map = new HashMap<String, Object>();
        map.put("active",Boolean.FALSE);
        map.put("dma",dmaInfo);
        batchUpdate(hql, map);
    }

    public List<DMASaleWater> getSaleWaterListByDMA(DMAInfo dmaInfo) {
        Map<String, Object> paraMap = new HashMap<String, Object>();
        String hql = " from DMASaleWater " +
                " where active = :active " +
                " and dmaInfo.id = :dmaId ";
        paraMap.put("dmaId", dmaInfo.getID());
        paraMap.put("active",Boolean.TRUE);
        List<DMASaleWater> dmaSaleWaterList = (List<DMASaleWater>) this.
                createQuery(hql, paraMap).list();
        return dmaSaleWaterList;
    }

    public Map<String, Object> removeModel(DMASaleWater model) {
        Map<String,Object> map = new HashMap<String, Object>();
        DMASaleWater saleWater = get(model.getId());
        if(saleWater!=null){
            saleWater.setActive(false);
            save(saleWater);
        }
        map.put("success",true);
        map.put("msg","售水量删除成功!");
        return map;
    }

    /**
     * 删除某一条售水信息
     * @param saleWaterID
     * @return
     */
    public Map<String, Object> removeModel(Long saleWaterID) {
        Map<String,Object> map = new HashMap<String, Object>();
        DMASaleWater saleWater = get(saleWaterID);
        if(null != saleWater){
            saleWater.setActive(false);
            save(saleWater);
        }
        map.put("success",true);
        map.put("msg","售水量删除成功!");
        return map;
    }



    /**
     * 增加一条售水信息
     * @param form
     * @return
     * @throws java.text.ParseException
     */
    public Map<String, Object> addSaleWater(DMASaleWaterForm form) throws ParseException {
        DMASaleWater model = new DMASaleWater();
        model.setStartDate(DateUtils.sdf1.parse(form.getBeginDate()));
        model.setEndDate(DateUtils.sdf1.parse(form.getEndDate()));
        model.setSaleWater(Double.parseDouble(form.getWater()));
        model.setNoValueWater(Double.parseDouble(form.getNoValueWater()));
        model.setInsertDate(new Date());
        model.setUpdateDate(new Date());
        model.setActive(Boolean.TRUE);
        DMAInfo dmaInfo = dmaInfoManager.getDMAByID(form.getDmaID());
        model.setDmaInfo(dmaInfo);
        save(model);
        Map<String,Object> map = new HashMap<String, Object>();
        map.put("success",true);
        map.put("msg","添加成功!");
        return map;
    }

}