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.BaseGoodsModelsService; import com.consum.base.service.BaseGoodsTemplateService; import com.consum.base.service.BaseWarehouseService; 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 { //保存所有数据 private HashMap containMap; // 当前人机构 private Long agencyId; private BaseWarehouseService baseWarehouseService; private BaseGoodsTemplateService baseGoodsTemplateService; private BaseGoodsModelsService baseGoodsModelsService; public WhWarningImportVerifyHandler(Long agencyId) { this.agencyId = agencyId; this.containMap = new HashMap<>(); this.baseWarehouseService = BeanContextAware.getBeanByType(BaseWarehouseService.class); this.baseGoodsTemplateService = BeanContextAware.getBeanByType(BaseGoodsTemplateService.class); this.baseGoodsModelsService = BeanContextAware.getBeanByType(BaseGoodsModelsService.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 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); } }