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.Date; 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("downSwimPortId")); 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()); } if (gmsTonnage.intValue()>=0) { wmshGridMaterial.setGmTonnage(gmsTonnage); }else { return -1; } wmshGridMaterial.setUpdateTime(new Date()); int i = wmshGridMaterialMapper.updateByPrimaryKeySelective(wmshGridMaterial); return i; } @Override public int clearWmshGridMaterial(Map map) { BigDecimal gmId =DataChange.dataToBigDecimal(map.get("gmId")); WmshGridMaterial wmshGridMaterial=new WmshGridMaterial(); wmshGridMaterial.setGmId(gmId); wmshGridMaterial.setGmTonnage(new BigDecimal(0)); int i = wmshGridMaterialMapper.updateByPrimaryKeySelective(wmshGridMaterial); return i; } }