lxw
2022-09-08 49bbc5ee83c3566e013592a28fdf13e6ca90de64
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
package com.whyc.service;
 
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.whyc.dto.Response;
import com.whyc.mapper.ProductHistoryMapper;
import com.whyc.mapper.ProductMapper;
import com.whyc.pojo.Product;
import com.whyc.pojo.ProductHistory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
 
import java.awt.print.PrinterJob;
import java.util.List;
 
@Service
public class ProductHistoryService {
    @Autowired(required = false)
    private ProductHistoryMapper mapper;
    @Autowired(required = false)
    private ProductMapper productMapper;
 
 
 
 
    //产品详情查看版本信息
    public Response getProductVersion(String parentCode,String customCode) {
        QueryWrapper wrapper=new QueryWrapper();
        wrapper.eq("parent_code",parentCode);
        wrapper.eq("custom_code",customCode);
        wrapper.orderByDesc("version_time");
        List<ProductHistory> list=mapper.selectList(wrapper);
        return new Response().setII(1,list.size()>0,list,"返回产品版信息");
    }
 
    /**新增追加的版本并将原先的版本的启用设置为未启用*/
    public void insertAndUpdateEnabled(ProductHistory productHistory) {
        UpdateWrapper<ProductHistory> update = Wrappers.update();
        update.set("enabled",0).eq("parent_code",productHistory.getParentCode())
                .eq("custom_code",productHistory.getCustomCode()).eq("enabled",1);
        mapper.update(null,update);
 
        mapper.insert(productHistory);
    }
 
    public void updateEnabledStatus(String parentCode, String customCode, int status) {
        int anotherStatus = 0;
        if(status==0){
            anotherStatus=1;
        }else{
            anotherStatus=0;
        }
        UpdateWrapper<ProductHistory> update = Wrappers.update();
        update.set("enabled",status).eq("parent_code",parentCode)
                .eq("custom_code",customCode).eq("enabled",anotherStatus);
        mapper.update(null,update);
    }
 
    public ProductHistory getEnabledByParentCodeAndCustomCode(String parentCode, String customCode) {
        QueryWrapper<ProductHistory> query = Wrappers.query();
        query.eq("parent_code",parentCode).eq("custom_code",customCode).eq("enabled",1)
                .last(" limit 1");
        return mapper.selectOne(query);
    }
 
    public ProductHistory getLatestVersion(String parentCode, String customCode) {
        QueryWrapper<ProductHistory> query = Wrappers.query();
        query.eq("parent_code",parentCode).eq("custom_code",customCode).orderByDesc("version").last(" limit 1");
        return mapper.selectOne(query);
    }
    //历史版本可用性设定
    public Response setpHistoryEnable(String parentCode, String customCode, int version, int enabled) {
        UpdateWrapper wrapper=new UpdateWrapper();
        wrapper.eq("parent_code",parentCode);
        wrapper.eq("custom_code",customCode);
 
        int flag=0;
        if(enabled==1){
            //先将所有的锁定
            wrapper.set("enabled",0);
            flag=mapper.update(null,wrapper);
            //再将选中的设为可用
            wrapper.eq("version",version);
            wrapper.set("enabled",1);
            flag=mapper.update(null,wrapper);
            if(flag>0){
                QueryWrapper qWrapper=new QueryWrapper();
                qWrapper.eq("parent_code",parentCode);
                qWrapper.eq("custom_code",customCode);
                //将选中的版本的历史信息查询出来
                qWrapper.eq("version",version);
                ProductHistory pHistory=mapper.selectOne(qWrapper);
                //prodcut中删除旧的产品信息
                UpdateWrapper deleteWrapper=new UpdateWrapper();
                deleteWrapper.eq("parent_code",parentCode);
                deleteWrapper.eq("custom_code",customCode);
                productMapper.delete(deleteWrapper);
                //再在product中查询设定可用的pHistory
                if(pHistory!=null){
                    Product product=new Product();
                    product.setParentCode(pHistory.getParentCode());
                    product.setParentName(pHistory.getParentName());
                    product.setParentModel(pHistory.getCustomCode());
                    product.setCreateTime(pHistory.getCreateTime());
                    product.setVersionTime(pHistory.getVersionTime());
                    product.setVersion(pHistory.getVersion());
                    productMapper.insert(product);
                }
            }
        }else{
            wrapper.eq("version",version);
            wrapper.set("enabled",0);
            flag=mapper.update(null,wrapper);
        }
        return new Response().set(1,flag>0,"历史版本可用性设定");
    }
 
    public void insert(ProductHistory his) {
        mapper.insert(his);
    }
}