From fae4bd828a6b81b95f53e285fcb4749fbd80c7bf Mon Sep 17 00:00:00 2001
From: CZT <czt18638530771@163.com>
Date: 星期一, 04 九月 2023 17:31:46 +0800
Subject: [PATCH] 增加粮情层行转换配置

---
 igds-core/src/main/java/com/ld/igds/m/service/HQualityManageService.java |   77 ++++++++++++++++++++++++++------------
 1 files changed, 53 insertions(+), 24 deletions(-)

diff --git a/igds-core/src/main/java/com/ld/igds/m/service/HQualityManageService.java b/igds-core/src/main/java/com/ld/igds/m/service/HQualityManageService.java
index 5762679..b54172e 100644
--- a/igds-core/src/main/java/com/ld/igds/m/service/HQualityManageService.java
+++ b/igds-core/src/main/java/com/ld/igds/m/service/HQualityManageService.java
@@ -1,7 +1,9 @@
 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.dto.CheckItemData;
 import com.ld.igds.check.mapper.CheckStandardMapper;
 import com.ld.igds.constant.RedisConst;
 import com.ld.igds.models.MQuality;
@@ -10,12 +12,11 @@
 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;
-import java.util.Map;
+
+import java.util.*;
 
 /**
  * @author chen
@@ -28,8 +29,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 +39,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 +72,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 +87,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 +100,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());
@@ -123,7 +126,21 @@
         if (null == data.getDeptId()) {
             data.setDeptId(ContextUtil.subDeptId(null));
         }
+        if (null != data.getZblb() || "" != data.getZblb()) {
+            String[] str = data.getZblb().split("#");
+            //闃叉鍦ㄦ洿鏂版搷浣滄椂鍐嶆瀛樺叆鐩稿悓鐨勬暟鎹�
+            Set<String> metrics = new HashSet<>();
+            for (int i = 0; i < str.length; i++) {
+                metrics.add(str[i].substring(0, 1));
+            }
+            String value = "";
+            for (String s : metrics) {
+                value = value + s + "#";
+            }
+            data.setZblb(value.substring(0, value.length() - 1));
+        }
         Session session = this.getSessionFactory().openSession();
+        data.setUpdateTime(new Date());
         try {
             if (null == data.getId()) {
                 data.setId(id);
@@ -131,9 +148,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 +171,11 @@
         try {
             if (null != data.getId()) {
                 session.delete(data);
+                CheckItemData checkItemData = new CheckItemData();
+                checkItemData.setCompanyId(ContextUtil.getCompanyId());
+                checkItemData.setCheckId(data.getId());
+                checkStandardMapper.delCheckItemByParam(checkItemData);
+                redisUtil.del(RedisConst.buildKey(ContextUtil.getCompanyId(), RedisConst.KEY_DEPOT_QUALITY, data.getDepotId()));
             }
         } catch (Exception e) {
             e.printStackTrace();

--
Gitblit v1.9.3