YYC
2023-07-24 65af56af565a47e191aa76ede4a62ab3fd91e789
igds-core/src/main/java/com/ld/igds/m/service/HQualityManageService.java
@@ -1,6 +1,7 @@
package com.ld.igds.m.service;
import com.bstek.bdf2.core.orm.hibernate.HibernateDao;
import com.bstek.dorado.data.entity.EntityUtils;
import com.bstek.dorado.data.provider.Page;
import com.ld.igds.check.mapper.CheckStandardMapper;
import com.ld.igds.constant.RedisConst;
@@ -10,8 +11,10 @@
import com.ld.igds.util.RedisUtil;
import org.apache.commons.lang3.StringUtils;
import org.hibernate.Session;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
@@ -28,8 +31,7 @@
    private CheckStandardMapper checkStandardMapper;
    public void listQuality(Page<MQuality> page, Map<String, Object> param) throws Exception{
    public void listQuality(Page<MQuality> page, Map<String, Object> param) throws Exception {
        String hql = " from " + MQuality.class.getName()
                + " where companyId =:companyId and deptId =:deptId";
@@ -39,20 +41,20 @@
        if (null != param) {
            String str = (String) param.get("depotId");
            if(StringUtils.isNotEmpty(str)){
            if (StringUtils.isNotEmpty(str)) {
                hql += " and depotId =:depotId";
                args.put("depotId",  str );
                args.put("depotId", str);
            }
            str = (String) param.get("type");
            if(StringUtils.isNotEmpty(str)){
            if (StringUtils.isNotEmpty(str)) {
                hql += " and type =:type";
                args.put("type",  str );
                args.put("type", str);
            }
            Date date = (Date) param.get("start");
            if(null != date) {
            if (null != date) {
                hql += " and time >=:start";
                args.put("start", DateUtil.getCurZero(date));
            }
@@ -72,12 +74,13 @@
    /**
     * 获取仓库最新一条质检数据
     *
     * @param depotId
     * @return
     * @throws Exception
     */
    public MQuality getLastData(String depotId){
        if(StringUtils.isEmpty(depotId)){
    public MQuality getLastData(String depotId) {
        if (StringUtils.isEmpty(depotId)) {
            return null;
        }
        String hql = " from " + MQuality.class.getName()
@@ -86,12 +89,12 @@
        args.put("companyId", ContextUtil.getCompanyId());
        hql += " and depotId =:depotId";
        args.put("depotId",  depotId );
        args.put("depotId", depotId);
        hql += " order by time DESC";
        List<MQuality> list = this.query(hql,args);
        if(list != null && list.size() > 0){
        List<MQuality> list = this.query(hql, args);
        if (list != null && list.size() > 0) {
            MQuality quality = list.get(0);
            quality.setCheckItems(checkStandardMapper.getCheckItemById(quality.getId(),ContextUtil.getCompanyId()));
            quality.setCheckItems(checkStandardMapper.getCheckItemById(quality.getId(), ContextUtil.getCompanyId()));
            return list.get(0);
        }
        return null;
@@ -99,23 +102,25 @@
    /**
     * 从缓存获取当前仓库的最新一条质检数据
     *
     * @param depotId
     * @return
     * @throws Exception
     */
    public MQuality getCacheLastData(String depotId) {
        if(StringUtils.isEmpty(depotId)){
        if (StringUtils.isEmpty(depotId)) {
            return null;
        }
        MQuality quality = (MQuality) redisUtil.get(RedisConst.buildKey(ContextUtil.getCompanyId(),RedisConst.KEY_DEPOT_QUALITY,depotId));
        if(quality == null){
        MQuality quality = (MQuality) redisUtil.get(RedisConst.buildKey(ContextUtil.getCompanyId(), RedisConst.KEY_DEPOT_QUALITY, depotId));
        if (quality == null) {
            quality = this.getLastData(depotId);
            if(quality != null ){
                redisUtil.set(RedisConst.buildKey(ContextUtil.getCompanyId(),RedisConst.KEY_DEPOT_QUALITY,depotId),quality,60 * 60 *24);
            if (quality != null) {
                redisUtil.set(RedisConst.buildKey(ContextUtil.getCompanyId(), RedisConst.KEY_DEPOT_QUALITY, depotId), quality, 60 * 60 * 24);
            }
        }
        return quality;
    }
    public void saveQuality(String id, MQuality data) {
        if (null == data.getCompanyId()) {
            data.setCompanyId(ContextUtil.getCompanyId());
@@ -124,6 +129,7 @@
            data.setDeptId(ContextUtil.subDeptId(null));
        }
        Session session = this.getSessionFactory().openSession();
        data.setUpdateTime(new Date());
        try {
            if (null == data.getId()) {
                data.setId(id);
@@ -131,9 +137,16 @@
            } else {
                session.update(data);
            }
            redisUtil.del(RedisConst.buildKey(ContextUtil.getCompanyId(),RedisConst.KEY_DEPOT_QUALITY,data.getDepotId()));
            redisUtil.del(RedisConst.buildKey(ContextUtil.getCompanyId(), RedisConst.KEY_DEPOT_QUALITY, data.getDepotId()));
            MQuality newData;
            if (EntityUtils.isEntity(data)) {
                newData = new MQuality();
                BeanUtils.copyProperties(data, newData, new String[]{"checkItems"});
            } else {
                newData = data;
            }
            redisUtil.set(RedisConst.buildKey(ContextUtil.getCompanyId(),RedisConst.KEY_DEPOT_QUALITY,data.getDepotId()),data,60 * 60 *24);
            redisUtil.set(RedisConst.buildKey(ContextUtil.getCompanyId(), RedisConst.KEY_DEPOT_QUALITY, data.getDepotId()), newData, 60 * 60 * 24);
        } catch (Exception e) {
            e.printStackTrace();
        } finally {
@@ -147,6 +160,7 @@
        try {
            if (null != data.getId()) {
                session.delete(data);
                redisUtil.del(RedisConst.buildKey(ContextUtil.getCompanyId(), RedisConst.KEY_DEPOT_QUALITY, data.getDepotId()));
            }
        } catch (Exception e) {
            e.printStackTrace();