package com.steerinfo.dil.service.impl; import com.steerinfo.dil.mapper.RmsMaterialMapper; import com.steerinfo.dil.mapper.RmsMaterialTypeMapper; import com.steerinfo.dil.mapper.RmsUnitOfMeasureMapper; import com.steerinfo.dil.model.RmsMaterial; import com.steerinfo.dil.model.RmsMaterialType; import com.steerinfo.dil.model.RmsUnitOfMeasure; import com.steerinfo.dil.service.IRmsMaterialService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import java.math.BigDecimal; import java.util.Date; import java.util.HashMap; import java.util.List; import java.util.Map; /** * RmsMaterial服务实现: * @author generator * @version 1.0-SNAPSHORT 2021-10-22 05:55 * 类描述 * 修订历史: * 日期:2021-10-22 * 作者:generator * 参考: * 描述:RmsMaterial服务实现 * @see null * @Copyright 湖南视拓信息技术股份有限公司. All rights reserved. */ @Service(value = "rmsMaterialService") public class RmsMaterialServiceImpl implements IRmsMaterialService { @Autowired private RmsMaterialMapper rmsMaterialMapper; @Autowired RmsMaterialTypeMapper rmsMaterialTypeMapper; @Autowired RmsUnitOfMeasureMapper rmsUnitOfMeasureMapper; /** * 操作物资 * @param mapVal * @return */ @Override public int operationMaterial(Map mapVal) { // 得到金蝶物资主键id String EASMaterialId = (String) mapVal.get("EASMaterialId"); // 得到物资唯一编码 String materialCode = (String) mapVal.get("materialCode"); // 得到物资类型 String materialTypeName = (String) mapVal.get("materialType"); // 得到物资名称 String materialName = (String) mapVal.get("materialName"); // 得到物资规格 String materialSpecification = (String) mapVal.get("materialSpecification"); // 得到物资型号 String materialModel = (String) mapVal.get("materialModel"); // 得到计量单位 String unitOfMeasure = (String) mapVal.get("unitOfMeasure"); // 得到长度 String materialLengthValue = (String) mapVal.get("materialLength"); BigDecimal materialLength = null; if (materialLengthValue != null && !materialLengthValue.equals("")) { materialLength = new BigDecimal(materialLengthValue); } // 得到数据状态 Integer dataStatus = (Integer) mapVal.get("dataStatus"); // 判断是否materialCode已存在 Map map1 = new HashMap<>(); map1.put("materialModel",materialModel); BigDecimal deleted = new BigDecimal(0); // map1.put("deleted",deleted); List rmsMaterials = rmsMaterialMapper.selectByParameters(map1); // 判断物资类型是否已存在 Map map2 = new HashMap<>(); map2.put("materialTypeName",materialTypeName); List rmsMaterialTypes = rmsMaterialTypeMapper.selectByParameters(map2); RmsMaterial rmsMaterial = new RmsMaterial(); if (rmsMaterialTypes.size() == 0) { RmsMaterialType rmsMaterialType = new RmsMaterialType(); rmsMaterialType.setMaterialTypeId(rmsMaterialTypeMapper.getMaterialId()); rmsMaterialType.setMaterialTypeName(materialTypeName); rmsMaterialType.setInsertTime(new Date()); rmsMaterialType.setInsertUsername("admin"); rmsMaterialType.setUpdateTime(new Date()); rmsMaterialType.setUpdateUsername("admin"); rmsMaterialType.setInsertUpdateRemark("采集金蝶数据"); rmsMaterialTypeMapper.insertSelective(rmsMaterialType); rmsMaterial.setMaterialTypeId(rmsMaterialType.getMaterialTypeId()); } else { RmsMaterialType rmsMaterialType = rmsMaterialTypes.get(0); rmsMaterial.setMaterialTypeId(rmsMaterialType.getMaterialTypeId()); } // 判断单位是否已存在 Map map3 = new HashMap<>(); map3.put("unitOfMeasureName",unitOfMeasure); List rmsUnitOfMeasures = rmsUnitOfMeasureMapper.selectByParameters(map3); if (rmsUnitOfMeasures.size() == 0) { RmsUnitOfMeasure rmsUnitOfMeasure = new RmsUnitOfMeasure(); rmsUnitOfMeasure.setUnitOfMeasureId(rmsUnitOfMeasureMapper.getUnitOfMeasureId()); rmsUnitOfMeasure.setUnitOfMeasureName(unitOfMeasure); rmsUnitOfMeasure.setInsertTime(new Date()); rmsUnitOfMeasure.setInsertUsername("admin"); rmsUnitOfMeasure.setUpdateTime(new Date()); rmsUnitOfMeasure.setUpdateUsername("admin"); rmsUnitOfMeasure.setInsertUpdateRemark("采集金蝶数据"); rmsUnitOfMeasureMapper.insertSelective(rmsUnitOfMeasure); rmsMaterial.setUnitOfMeasureId(rmsUnitOfMeasure.getUnitOfMeasureId()); } else { RmsUnitOfMeasure rmsUnitOfMeasure = rmsUnitOfMeasures.get(0); rmsMaterial.setUnitOfMeasureId(rmsUnitOfMeasure.getUnitOfMeasureId()); } rmsMaterial.setMaterialName(materialName); rmsMaterial.setMaterialCode(materialCode); rmsMaterial.setMaterialSpecification(materialSpecification); rmsMaterial.setMaterialModel(materialModel); rmsMaterial.setMaterialLength(materialLength); rmsMaterial.setEasMaterialId(EASMaterialId); rmsMaterial.setInsertTime(new Date()); rmsMaterial.setInsertUsername("admin"); rmsMaterial.setUpdateTime(new Date()); rmsMaterial.setUpdateUsername("admin"); rmsMaterial.setInsertUpdateRemark("采集金蝶数据"); int result = 0; // 新增 if (rmsMaterials.size() == 0) { rmsMaterial.setDeleted(new BigDecimal(0)); BigDecimal materialId = rmsMaterialMapper.getMaterialId(); rmsMaterial.setMaterialId(materialId); result = rmsMaterialMapper.insertSelective(rmsMaterial); } // 修改 if (rmsMaterials.size() != 0 && dataStatus == 1){ RmsMaterial rmsMaterial1 = rmsMaterials.get(0); rmsMaterial.setDeleted(deleted); rmsMaterial.setMaterialId(rmsMaterial1.getMaterialId()); result = rmsMaterialMapper.updateByPrimaryKeySelective(rmsMaterial); } // 逻辑删除 if (rmsMaterials.size() != 0 && dataStatus == 2) { RmsMaterial rmsMaterial1 = rmsMaterials.get(0); rmsMaterial.setMaterialId(rmsMaterial1.getMaterialId()); rmsMaterial.setDeleted(new BigDecimal(1)); result = rmsMaterialMapper.updateByPrimaryKeySelective(rmsMaterial); } return result; } /** * 展示物资信息 * @param mapVal * @return */ @Override public List> getMaterialList(Map mapVal) { return rmsMaterialMapper.getMaterialList(mapVal); } }