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);
|
}
|
}
|