package com.steerinfo.dil.service.impl; import com.steerinfo.dil.mapper.WmshGridMaterialMapper; import com.steerinfo.dil.model.WmshGridMaterial; import com.steerinfo.dil.service.IWmshGridMaterialService; 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.HashMap; import java.util.List; import java.util.Map; /** * WmshGridMaterial服务实现: * @author generator * @version 1.0-SNAPSHORT 2021-10-09 07:25 * 类描述 * 修订历史: * 日期:2021-10-09 * 作者:generator * 参考: * 描述:WmshGridMaterial服务实现 * @see null * @Copyright 湖南视拓信息技术股份有限公司. All rights reserved. */ @Service(value = "wmshGridMaterialService") public class WmshGridMaterialServiceImpl implements IWmshGridMaterialService { @Autowired private WmshGridMaterialMapper wmshGridMaterialMapper; /** * 展示下游港口实时库存 * @param mapVal * @return */ @Override public List> getUnloadPortStockList(Map mapVal) { return wmshGridMaterialMapper.getUnloadPortStockList(mapVal); } /** * 展示万州港实时库存 * @param mapVal * @return */ @Override public List> getLoadPortStockList(Map mapVal) { return wmshGridMaterialMapper.getLoadPortStockList(mapVal); } /** * 修改实时库存 * @param map * @return */ @Override public int updatePortStock(Map map) { BigDecimal portId = DataChange.dataToBigDecimal(map.get("portId")); BigDecimal batchId = DataChange.dataToBigDecimal(map.get("batchId")); BigDecimal tonnage = DataChange.dataToBigDecimal(map.get("resultTonnage")); BigDecimal status = DataChange.dataToBigDecimal(map.get("status")); Map selectMap = new HashMap<>(); selectMap.put("portId",portId); selectMap.put("batchId",batchId); List wmshGridMaterials = wmshGridMaterialMapper.selectByParameters(selectMap); if (wmshGridMaterials.size() == 0) { WmshGridMaterial wmshGridMaterial = new WmshGridMaterial(); BigDecimal gmId = wmshGridMaterialMapper.selectMaxId(); wmshGridMaterial.setGmId(gmId); wmshGridMaterial.setBatchId(batchId); wmshGridMaterial.setPortId(portId); wmshGridMaterial.setGmTonnage(tonnage); wmshGridMaterial.setDeleted(new BigDecimal(0)); return wmshGridMaterialMapper.insertSelective(wmshGridMaterial); } WmshGridMaterial wmshGridMaterial = wmshGridMaterials.get(0); BigDecimal oldGmsTonnage = wmshGridMaterial.getGmTonnage(); BigDecimal gmsTonnage; if (status.intValue() == 0) { gmsTonnage = new BigDecimal(oldGmsTonnage.doubleValue() - tonnage.doubleValue()); } else { gmsTonnage = new BigDecimal(tonnage.doubleValue() + oldGmsTonnage.doubleValue()); } wmshGridMaterial.setGmTonnage(gmsTonnage); return wmshGridMaterialMapper.updateByPrimaryKeySelective(wmshGridMaterial); } }