cy
2023-11-22 8fc8b4788ed8be27ff6aae1cdd3fe9a584972ae3
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
package com.consum.base.config;
 
import cn.afterturn.easypoi.excel.entity.result.ExcelVerifyHandlerResult;
import cn.afterturn.easypoi.handler.inter.IExcelVerifyHandler;
import com.consum.base.pojo.WarnConfImEntity;
import com.consum.base.service.BaseGoodsModelsServiceImpl;
import com.consum.base.service.BaseGoodsTemplateServiceImpl;
import com.consum.base.service.BaseWarehouseServiceImpl;
import com.consum.model.po.BaseGoodsModels;
import com.consum.model.po.BaseGoodsTemplate;
import com.consum.model.po.BaseWarehouse;
import com.iplatform.core.BeanContextAware;
import com.walker.infrastructure.utils.CollectionUtils;
 
import java.util.HashMap;
import java.util.List;
import java.util.StringJoiner;
 
/**
 * @ClassName WhWarningImportVerifyHandler
 * @Author cy
 * @Date 2023/11/22
 * @Description
 * @Version 1.0
 **/
 
public class WhWarningImportVerifyHandler implements IExcelVerifyHandler<WarnConfImEntity> {
    //保存所有数据
    private HashMap<String, Integer> containMap;
    // 当前人机构
    private Long agencyId;
    private BaseWarehouseServiceImpl baseWarehouseService;
    private BaseGoodsTemplateServiceImpl baseGoodsTemplateService;
    private BaseGoodsModelsServiceImpl baseGoodsModelsService;
 
    public WhWarningImportVerifyHandler(Long agencyId) {
        this.agencyId = agencyId;
        this.containMap = new HashMap<>();
        this.baseWarehouseService = BeanContextAware.getBeanByType(BaseWarehouseServiceImpl.class);
        this.baseGoodsTemplateService = BeanContextAware.getBeanByType(BaseGoodsTemplateServiceImpl.class);
        this.baseGoodsModelsService = BeanContextAware.getBeanByType(BaseGoodsModelsServiceImpl.class);
 
    }
 
 
    @Override
    public ExcelVerifyHandlerResult verifyHandler(WarnConfImEntity param) {
        StringJoiner joiner = new StringJoiner(";");
        String warehouseName = param.getWarehouseName();
        String goodsTemplateName = param.getGoodsTemplateName();
        String goodsModelName = param.getGoodsModelName();
        Integer lowerLimit = param.getLowerLimit();
        Integer upperLimit = param.getUpperLimit();
        int rowNum = param.getRowNum();
        String modelStr = warehouseName + "&" + goodsTemplateName + "&" + goodsModelName;
        if (containMap.containsKey(modelStr)) {
            Integer firstLine = containMap.get(modelStr);
            joiner.add("数据与第" + firstLine + "行重复");
            String errMsg = joiner.toString();
            return new ExcelVerifyHandlerResult(false, errMsg);
        } else {
            containMap.put(modelStr, rowNum);
        }
        if (lowerLimit == null && upperLimit == null) {
            joiner.add("库存上限、下限不能全为空");
        }
        if (upperLimit != null && lowerLimit != null && upperLimit < lowerLimit) {
            joiner.add("库存上限不能小于下限");
        }
        BaseWarehouse warehouse = baseWarehouseService.getWarehouseByAgencyId(agencyId, warehouseName);
        if (warehouse == null) {
            joiner.add("仓库名称有误");
        } else {
            param.setBaseWarehouseId(warehouse.getId());
        }
 
        List<BaseGoodsTemplate> baseGoodsTemplates = baseGoodsTemplateService.queryGoodsTemplateByCategoryId(agencyId, null, (short) 1, goodsTemplateName);
        if (CollectionUtils.isEmpty(baseGoodsTemplates)) {
            joiner.add("物品名称有误");
            String errMsg = joiner.toString();
            return new ExcelVerifyHandlerResult(false, errMsg);
        }
        Long goodsTemplatesId = baseGoodsTemplates.get(0).getId();
        param.setGoodsTemplateId(goodsTemplatesId);
        BaseGoodsModels models = new BaseGoodsModels();
        models.setGoodsTemplatesId(goodsTemplatesId);
        models.setStates(1);
        models.setModelName(goodsModelName);
        BaseGoodsModels goodsModels = baseGoodsModelsService.getByModelNameAndGoodsTemplatesId(models);
        if (goodsModels == null) {
            joiner.add("物品型号名称有误");
        } else {
            param.setBaseGoodsModelsId(goodsModels.getId());
        }
 
        if (joiner.length() != 0) {
            String errMsg = joiner.toString();
            return new ExcelVerifyHandlerResult(false, errMsg);
        }
        return new ExcelVerifyHandlerResult(true);
    }
}