zhanghl
2025-05-12 f9b32b7a3745e402cb8cb2701d6a05335984e8ff
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
package com.aps.core.service.impl;
 
import com.alibaba.fastjson2.JSONArray;
import com.alibaba.fastjson2.JSONObject;
import com.aps.common.core.utils.DateUtils;
import com.aps.core.domain.ApsBomHeader;
import com.aps.core.mapper.ApsBomHeaderMapper;
import com.aps.core.service.IApsBomHeaderService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.stereotype.Service;
 
import java.util.List;
 
/**
 * BOM Header 数据管理Service业务层处理
 * 
 * @author zhl
 * @date 2025-05-06
 */
@Service
public class ApsBomHeaderServiceImpl implements IApsBomHeaderService 
{
    @Autowired
    private ApsBomHeaderMapper apsBomHeaderMapper;
 
    @Autowired
    public RedisTemplate redisTemplate;
 
    /**
     * 查询BOM Header 数据管理
     * 
     * @param id BOM Header 数据管理主键
     * @return BOM Header 数据管理
     */
    @Override
    public ApsBomHeader selectApsBomHeaderById(Long id)
    {
        return apsBomHeaderMapper.selectApsBomHeaderById(id);
    }
 
    /**
     * 查询BOM Header 数据管理列表
     * 
     * @param apsBomHeader BOM Header 数据管理
     * @return BOM Header 数据管理
     */
    @Override
    public List<ApsBomHeader> selectApsBomHeaderList(ApsBomHeader apsBomHeader)
    {
        return apsBomHeaderMapper.selectApsBomHeaderList(apsBomHeader);
    }
 
    /**
     * 新增BOM Header 数据管理
     * 
     * @param apsBomHeader BOM Header 数据管理
     * @return 结果
     */
    @Override
    public int insertApsBomHeader(ApsBomHeader apsBomHeader)
    {
        apsBomHeader.setCreateTime(DateUtils.getNowDate());
        return apsBomHeaderMapper.insertApsBomHeader(apsBomHeader);
    }
 
    /**
     * 修改BOM Header 数据管理
     * 
     * @param apsBomHeader BOM Header 数据管理
     * @return 结果
     */
    @Override
    public int updateApsBomHeader(ApsBomHeader apsBomHeader)
    {
        apsBomHeader.setUpdateTime(DateUtils.getNowDate());
        return apsBomHeaderMapper.updateApsBomHeader(apsBomHeader);
    }
 
    /**
     * 批量删除BOM Header 数据管理
     * 
     * @param ids 需要删除的BOM Header 数据管理主键
     * @return 结果
     */
    @Override
    public int deleteApsBomHeaderByIds(Long[] ids)
    {
        return apsBomHeaderMapper.deleteApsBomHeaderByIds(ids);
    }
 
    /**
     * 删除BOM Header 数据管理信息
     * 
     * @param id BOM Header 数据管理主键
     * @return 结果
     */
    @Override
    public int deleteApsBomHeaderById(Long id)
    {
        return apsBomHeaderMapper.deleteApsBomHeaderById(id);
    }
 
    /**
     * 设置BOM数据到Redis
     * @return
     */
    @Override
    public boolean setBomDataToRedis(String orgCode) {
        try {
            List<JSONObject> bomRedisData = apsBomHeaderMapper.selectBomRedisData(orgCode);
            String nowMainItemCode = "";
            JSONArray bomLine = new JSONArray();
            for (int i=0,size=bomRedisData.size();i<size;i++) {
                JSONObject jsonObject = bomRedisData.get(i);
                if("".equals(nowMainItemCode)){
                    nowMainItemCode = jsonObject.getString("mainitemcode");
                }
                if(!nowMainItemCode.equals(jsonObject.getString("mainitemcode"))){
                    redisTemplate.opsForValue().set("BOM:BOM_"+orgCode+"_"+nowMainItemCode, bomLine);
                    bomLine = new JSONArray();
                }
                bomLine.add(jsonObject);
                nowMainItemCode = jsonObject.getString("mainitemcode");
                if(i==size-1){
                    redisTemplate.opsForValue().set("BOM:BOM_"+orgCode+"_"+nowMainItemCode, bomLine);
                }
            }
        } catch (Exception e) {
            e.printStackTrace();
            return false;
        }
        return true;
    }
}