123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190 |
- package com.steerinfo.dil.service.impl;
- import com.steerinfo.dil.mapper.WmshGridMaterialMapper;
- import com.steerinfo.dil.mapper.WmshInboundResultMapper;
- import com.steerinfo.dil.mapper.WmshOutboundResultMapper;
- import com.steerinfo.dil.model.WmshGridMaterial;
- import com.steerinfo.dil.model.WmshOutboundResult;
- 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;
- @Autowired
- private WmshOutboundResultMapper wmshOutboundResultMapper;
- @Autowired
- private WmshInboundResultMapper wmshInboundResultMapper;
- /**
- * 展示下游港口实时库存
- * @param mapVal
- * @return
- */
- @Override
- public List<Map<String, Object>> getUnloadPortStockList(Map<String, Object> mapVal) {
- return wmshGridMaterialMapper.getUnloadPortStockList(mapVal);
- }
- /**
- * 展示万州港实时库存
- * @param mapVal
- * @return
- */
- @Override
- public List<Map<String, Object>> getLoadPortStockList(Map<String, Object> mapVal) {
- return wmshGridMaterialMapper.getLoadPortStockList(mapVal);
- }
- /**
- * 修改实时库存
- * @param map
- * @return
- */
- @Override
- public int updatePortStock(Map<String,Object> map) {
- BigDecimal tonnage=null;
- BigDecimal portId = DataChange.dataToBigDecimal(map.get("portId"));
- BigDecimal batchId = DataChange.dataToBigDecimal(map.get("batchId"));
- tonnage = DataChange.dataToBigDecimal(map.get("resultMaterialNumber"));
- if (map.get("resultMaterialNumber")==null){
- tonnage =DataChange.dataToBigDecimal(map.get("resultTonnage"));
- }
- BigDecimal status = DataChange.dataToBigDecimal(map.get("status"));
- Map<String,Object> selectMap = new HashMap<>();
- selectMap.put("portId",portId);
- selectMap.put("batchId",batchId);
- //查找是否有港存库实时库存
- List<Map<String,Object>> wmshGridMaterials = wmshGridMaterialMapper.getGridId(map);
- 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);
- }
- Map<String,Object> map1 = wmshGridMaterials.get(0);
- BigDecimal oldGmsTonnage = DataChange.dataToBigDecimal(map1.get("gmTonnage"));
- BigDecimal gmId =DataChange.dataToBigDecimal(map1.get("gmId"));
- WmshGridMaterial wmshGridMaterial=new WmshGridMaterial();
- wmshGridMaterial.setGmId(gmId);
- BigDecimal gmsTonnage;
- if (status.intValue() == 0) {
- //gmsTonnage = new BigDecimal(oldGmsTonnage.doubleValue() - tonnage.doubleValue());
- gmsTonnage = oldGmsTonnage.subtract(tonnage);
- }
- else {
- //gmsTonnage = new BigDecimal(tonnage.doubleValue() + oldGmsTonnage.doubleValue());
- gmsTonnage = tonnage.add(oldGmsTonnage);
- }
- 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<String, Object> map) {
- int i=0;
- BigDecimal gmId =DataChange.dataToBigDecimal(map.get("gmId"));
- WmshGridMaterial wmshGridMaterial=new WmshGridMaterial();
- wmshGridMaterial.setGmId(gmId);
- wmshGridMaterial.setGmTonnage(new BigDecimal(0));
- i = wmshGridMaterialMapper.updateByPrimaryKeySelective(wmshGridMaterial);
- //实时库存
- String isClear =(String) map.get("isClean");
- WmshOutboundResult wmshOutboundResult =new WmshOutboundResult();
- BigDecimal id = DataChange.dataToBigDecimal(wmshGridMaterialMapper.selectMaxId());
- wmshOutboundResult.setResultId(id);
- String gckd = DataChange.generateEightDigitsNumber("GCKD", id.intValue());
- wmshOutboundResult.setResultNumber(gckd);
- wmshOutboundResult.setResultClearing(isClear);
- wmshOutboundResult.setInsertTime(new Date());
- wmshOutboundResult.setResultTonnage(DataChange.dataToBigDecimal(map.get("resultMaterialNumber")));
- wmshOutboundResult.setBatchId(DataChange.dataToBigDecimal(map.get("batchId")));
- BigDecimal portId = DataChange.dataToBigDecimal(map.get("portId"));
- wmshOutboundResult.setHarborId(portId);
- i = wmshOutboundResultMapper.insertSelective(wmshOutboundResult);
- return id.intValue();
- }
- //展示港存库目前品种对应的库存
- @Override
- public List<Map<String, Object>> getLoadPortStockByMaterialName(Map<String, Object> mapVal) {
- return wmshGridMaterialMapper.getLoadPortStockByMaterialName(mapVal);
- }
- //展示出库总吨位
- @Override
- public List<Map<String, Object>> getUnLockPortStock(Map<String, Object> mapVal) {
- return wmshGridMaterialMapper.getUnLockPortStock(mapVal);
- }
- @Override
- public int updateWmshGridMaterial(Map<String, Object> map) {
- BigDecimal batchId = DataChange.dataToBigDecimal(map.get("batchId"));
- BigDecimal userId = DataChange.dataToBigDecimal(map.get("userId"));
- BigDecimal gmId = DataChange.dataToBigDecimal(map.get("gmId"));
- //查找是否有港存库实时库存
- List<Map<String,Object>> wmshGridMaterials = wmshGridMaterialMapper.getGridId(map);
- WmshGridMaterial wmshGridMaterial=new WmshGridMaterial();
- if(wmshGridMaterials!=null && wmshGridMaterials.size()>0){
- //已经存在则加库存,将原本的港存库库存弄成0,免得同一录入批次二次使用时多加库存
- Map<String,Object> now = wmshGridMaterials.get(0);
- BigDecimal nowGmsTonnage = DataChange.dataToBigDecimal(now.get("gmTonnage"));
- //查询旧的批次
- Map<String,Object> old = new HashMap<>();
- old.put("portId",map.get("portId"));
- old.put("batchId",map.get("batchIdOld"));
- old=wmshGridMaterialMapper.getGridId(old).get(0);
- BigDecimal oldGmsTonnage = DataChange.dataToBigDecimal(old.get("gmTonnage"));
- //增加库存
- wmshGridMaterial.setGmId(DataChange.dataToBigDecimal(now.get("gmId")));
- wmshGridMaterial.setGmTonnage(nowGmsTonnage.add(oldGmsTonnage));
- wmshGridMaterial.setUpdateUsername(userId.toString());
- //将旧的港存库置为0
- WmshGridMaterial oldGrid=new WmshGridMaterial();
- oldGrid.setGmId(DataChange.dataToBigDecimal(old.get("gmId")));
- oldGrid.setGmTonnage(new BigDecimal(0));
- wmshGridMaterialMapper.updateByPrimaryKeySelective(oldGrid);
- }else{
- //不存在修改批次
- wmshGridMaterial.setGmId(gmId);
- wmshGridMaterial.setBatchId(batchId);
- wmshGridMaterial.setUpdateUsername(userId.toString());
- }
- //修改入库和出库实绩绑定的批次
- wmshInboundResultMapper.updateForBind(map);
- wmshOutboundResultMapper.updateForBind(map);
- return wmshGridMaterialMapper.updateByPrimaryKeySelective(wmshGridMaterial);
- }
- }
|