package com.steerinfo.dil.service.impl; import com.steerinfo.dil.mapper.RmsMaterialMapper; import com.steerinfo.dil.mapper.RmsMaterialSteelMapper; import com.steerinfo.dil.mapper.RmsMaterialTypeMapper; import com.steerinfo.dil.mapper.RmsUnitOfMeasureMapper; import com.steerinfo.dil.model.RmsCarrier; 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 com.steerinfo.dil.util.DataChange; 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 * 作者:HuJieHuan * 参考: * 描述: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; @Autowired RmsMaterialSteelMapper rmsMaterialSteelMapper; /** * 操作物资 * * @param mapVal * @return */ @Override public int operationMaterial(Map mapVal) { // 得到金蝶物资主键id Integer EASMaterialIdValue = (Integer) mapVal.get("EASMaterialId"); String EASMaterialId = EASMaterialIdValue.toString(); // 得到物资唯一编码 String materialCode = (String) mapVal.get("materialCode"); // 得到物资类型 String materialType = (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"); // 得到长度 Double materialLengthValue = (Double) mapVal.get("materialLength"); BigDecimal materialLength = new BigDecimal(materialLengthValue); // 得到数据状态 Integer dataStatus = (Integer) mapVal.get("dataStatus"); // 判断是否EASId已存在 Map map1 = new HashMap<>(); map1.put("easMaterialId", EASMaterialId); BigDecimal deleted = new BigDecimal(0); map1.put("deleted", deleted); List rmsMaterials = rmsMaterialMapper.selectByParameters(map1); // 判断物资类型是否已存在 Map map2 = new HashMap<>(); map2.put("materialType", materialType); List rmsMaterialTypes = rmsMaterialTypeMapper.selectByParameters(map2); RmsMaterialType rmsMaterialType = rmsMaterialTypes.get(0); // 判断单位是否已存在 Map map3 = new HashMap<>(); map3.put("unitOfMeasure", unitOfMeasure); List rmsUnitOfMeasures = rmsUnitOfMeasureMapper.selectByParameters(map3); RmsUnitOfMeasure rmsUnitOfMeasure = rmsUnitOfMeasures.get(0); RmsMaterial rmsMaterial = new RmsMaterial(); rmsMaterial.setMaterialName(materialName); rmsMaterial.setMaterialCode(materialCode); rmsMaterial.setMaterialSpecification(materialSpecification); rmsMaterial.setMaterialModel(materialModel); rmsMaterial.setMaterialLength(materialLength); rmsMaterial.setEasMaterialId(EASMaterialId); rmsMaterial.setMaterialTypeId(rmsMaterialType.getMaterialTypeId()); rmsMaterial.setUnitOfMeasureId(rmsUnitOfMeasure.getUnitOfMeasureId()); 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 == 2) { RmsMaterial rmsMaterial1 = rmsMaterials.get(0); rmsMaterial.setMaterialId(rmsMaterial1.getMaterialId()); result = rmsMaterialMapper.updateByPrimaryKeySelective(rmsMaterial); } // 逻辑删除 if (rmsMaterials.size() != 0 && dataStatus == 3) { 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); } /** * 添加原料信息 * * @param rmsMaterial * @return */ @Override public int insertMaterial(RmsMaterial rmsMaterial) { String code="lx"; Integer id=rmsMaterialMapper.getMaterialId().intValue(); String materialCode=DataChange.generateEightDigitsNumber(code,id); rmsMaterial.setMaterialCode(materialCode); rmsMaterial.setDeleted(new BigDecimal(0)); rmsMaterial.setMaterialId(new BigDecimal(id)); rmsMaterial.setInsertTime(new Date()); rmsMaterial.setInsertUsername("admin"); return rmsMaterialMapper.insertSelective(rmsMaterial); } /** * 修改原料信息 * * @param rmsMaterial * @return */ @Override public int updateMaterial(RmsMaterial rmsMaterial) { rmsMaterial.setUpdateUsername("admin"); rmsMaterial.setUpdateTime(new Date()); return rmsMaterialMapper.updateByPrimaryKeySelective(rmsMaterial); } /** * 删除原料信息 * * @param id * @return */ @Override public int deleteMaterial(BigDecimal id) { RmsMaterial rmsMaterial = rmsMaterialMapper.selectByPrimaryKey(id); rmsMaterial.setDeleted(new BigDecimal(1)); return rmsMaterialMapper.updateByPrimaryKeySelective(rmsMaterial); } /** * 根据id值获取原材料信息 * * @param id * @return */ @Override public List> getMaterialById(BigDecimal id) { return rmsMaterialMapper.selectMaterialById(id); } /** * 获取原材料类型Id * @return */ @Override public List> getMaterialTypeId() { return rmsMaterialMapper.getMaterialTypeId(); } /** *获得计量单位的Id * @return */ @Override public List> getUnitOfMeasureId() { return rmsMaterialMapper.getUnitOfMeasureId(); } /* * 根据汽车衡测量的物资id,进行展示物资 * */ @Override public List> getCalculateOfMaterialList(Map mapVal) { return rmsMaterialMapper.getCalculateOfMaterialList(mapVal); } }