123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212 |
- package com.steerinfo.dil.service.impl;
- import com.steerinfo.dil.mapper.RmsWarehouseMapper;
- import com.steerinfo.dil.mapper.WmspGridMaterialMapper;
- import com.steerinfo.dil.mapper.WmspInboundResultMapper;
- import com.steerinfo.dil.mapper.WmspSendReceiveMapper;
- import com.steerinfo.dil.model.WmspSendReceive;
- import com.steerinfo.dil.service.IWmspSendReceiveService;
- 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;
- /**
- * @author luobang
- * @create 2021-09-08 16:10
- */
- @Service
- public class WmspSendReceiveServiceImpl implements IWmspSendReceiveService {
- @Autowired
- WmspSendReceiveMapper wmspSendReceiveMapper;
- @Autowired
- RmsWarehouseMapper rmsWarehouseMapper;
- @Autowired
- WmspGridMaterialMapper wmspGridMaterialMapper;
- @Autowired
- WmspInboundResultMapper wmspInboundResultMapper;
- @Override
- public List<Map<String, Object>> getWmspSendReceiveService(Map<String, Object> mapValue) {
- List<Map<String, Object>> maps = wmspSendReceiveMapper.selectWmspSendReceive(mapValue);
- return maps;
- }
- @Override
- public int count() {
- return 0;
- }
- @Override
- public BigDecimal getMaterialId(BigDecimal materialSteelId) {
- return wmspSendReceiveMapper.getMaterialId(materialSteelId);
- }
- /* @Override
- //针对每一个仓库中的每一个物资类型新增一个收发层(初始化收发层)
- @Scheduled(cron = "0 0 0 * * ? ")
- public int addSendReceive() {
- int i=0;
- WmspSendReceive wmspSendReceive = new WmspSendReceive();
- //高线库,一棒库,二棒库,配送库
- List<Map<String, Object>> mapList = rmsWarehouseMapper.getWarehouseName();
- //遍历四个仓库
- for(Map<String,Object> map:mapList){
- BigDecimal warehouseId = DataChange.dataToBigDecimal(map.get("id"));
- //查询去重实时库存中的物资id
- List<Map<String,Object>> materialIdList = wmspGridMaterialMapper.getMaterialId(warehouseId);
- for(Map<String,Object> map1:materialIdList){
- //收发层主键自增
- BigDecimal sendReceiveId = wmspSendReceiveMapper.getSendReceiveId();
- wmspSendReceive.setSendReceiveId(sendReceiveId);
- //仓库id
- wmspSendReceive.setWarehouseId(warehouseId);
- //收发层日期
- wmspSendReceive.setSendReceiveDate(new Date());
- //物资id
- BigDecimal materialId = DataChange.dataToBigDecimal(map1.get("materialId"));
- wmspSendReceive.setMaterialId(materialId);
- //今天入库(今天生产入库+今天退货入库+今天盘盈 = 今天入库)暂只管出入库
- //从零点开始每入库一件就增加一件
- //sendReceiveThisdayInbound = wmspSendReceiveMapper.updateSendReceiveThisdayInbound(materialId);
- //初始化今日入库为零
- wmspSendReceive.setSendReceiveThisdayInbound(new BigDecimal(0));
- //今天出库(今天出库+今天盘亏=今天出库)
- //初始化出库为0
- wmspSendReceive.setSendReceiveThisdayOutbound(new BigDecimal(0));
- //昨天库存
- //查询昨天库存
- Map<String,Object> map2 = new HashMap<>();
- map2.put("warehouseId",warehouseId);
- map2.put("materialId",materialId);
- BigDecimal sendReceiveLastdayInventory = wmspSendReceiveMapper.getSendReceiveLastdayInventory(map2);
- if(sendReceiveLastdayInventory == null){
- wmspSendReceive.setSendReceiveLastdayInventory(new BigDecimal(0));
- }else{
- wmspSendReceive.setSendReceiveLastdayInventory(sendReceiveLastdayInventory);
- }
- //今天库存
- // BigDecimal sendReceiveLastdayInventory1 = wmspSendReceive.getSendReceiveLastdayInventory();
- // if(sendReceiveLastdayInventory1.intValue()==0 || sendReceiveLastdayInventory1 == null){
- // wmspSendReceive.setSendReceiveThisdayInventory(new BigDecimal(0));
- // }else {
- // addThisdayInventorySendReceive(map2);
- // }
- wmspSendReceive.setSendReceiveThisdayInventory(wmspSendReceive.getSendReceiveLastdayInventory());
- wmspSendReceive.setInsertUsername("admin");
- wmspSendReceive.setInsertTime(new Date());
- wmspSendReceive.setDeleted(new BigDecimal(1));
- i+=wmspSendReceiveMapper.insertSelective(wmspSendReceive);
- }
- }
- return i;
- }
- //入库的时候调用收发层
- //传入一个map进来warehouseId,materialId
- public int addInBoundSendReceive(Map<String,Object> map){
- //今天入库(今天生产入库+今天退货入库+今天盘盈 = 今天入库)暂只管入库
- return wmspSendReceiveMapper.updateSendReceiveThisdayInbound(map);
- }
- //出库的时候调用收发层
- public int addOutBoundSendReceive(Map<String,Object> map){
- //今天出库(今天出库+今天盘亏=今天出库)暂只管出库
- return wmspSendReceiveMapper.updateSendReceiveThisdayOutbound(map);
- }
- //计算今天库存(昨天库存 + 今天入库 — 今天出库 = 今天库存),实时变动
- public int addThisdayInventorySendReceive(Map<String,Object> map){
- BigDecimal materialId = DataChange.dataToBigDecimal(map.get("materialId"));
- BigDecimal warehouseId = DataChange.dataToBigDecimal(map.get("warehouseId"));
- //今天入库
- BigDecimal sendReceiveThisdayInbound = wmspSendReceiveMapper.selectSendReceiveThisdayInbound(map);
- if(sendReceiveThisdayInbound == null){
- sendReceiveThisdayInbound = new BigDecimal(0);
- }
- //今天出库
- BigDecimal sendReceiveThisdayOutbound = wmspSendReceiveMapper.selectSendReceiveThisdayOutbound(map);
- if(sendReceiveThisdayOutbound == null){
- sendReceiveThisdayOutbound = new BigDecimal(0);
- }
- // 昨天库存
- BigDecimal sendReceiveLastdayInventory = wmspSendReceiveMapper.getSendReceiveLastdayInventory(map);
- if(sendReceiveLastdayInventory == null){
- sendReceiveLastdayInventory=new BigDecimal(0);
- }
- //今天库存
- BigDecimal sendReceiveThisdayInventory = new BigDecimal(sendReceiveLastdayInventory.intValue()
- +sendReceiveThisdayInbound.intValue()-sendReceiveThisdayOutbound.intValue());
- Map<String,Object> map1 = new HashMap<>();
- map1.put("materialId",materialId);
- map1.put("warehouseId",warehouseId);
- map1.put("sendReceiveThisdayInventory",sendReceiveThisdayInventory);
- return wmspSendReceiveMapper.updateSendReceiveThisdayInventory(map1);
- }
- */
- //零点生成前一天的入库、出库、库存
- @Override
- public int addSendReceive(){
- WmspSendReceive wmspSendReceive = new WmspSendReceive();
- int i = 0;
- //高线库,一棒库,二棒库,配送库
- List<Map<String, Object>> mapList = rmsWarehouseMapper.getWarehouseName();
- //遍历四个仓库
- for(Map<String,Object> map:mapList){
- BigDecimal warehouseId = DataChange.dataToBigDecimal(map.get("id"));
- //查询去重实时库存中的物资id
- List<Map<String,Object>> materialIdList = wmspGridMaterialMapper.getMaterialId(warehouseId);
- for(Map<String,Object> map1:materialIdList) {
- //收发层主键自增
- BigDecimal sendReceiveId = wmspSendReceiveMapper.getSendReceiveId();
- wmspSendReceive.setSendReceiveId(sendReceiveId);
- //仓库id
- wmspSendReceive.setWarehouseId(warehouseId);
- //收发层日期
- wmspSendReceive.setSendReceiveDate(new Date());
- //物资id
- BigDecimal materialId = DataChange.dataToBigDecimal(map1.get("materialId"));
- wmspSendReceive.setMaterialId(materialId);
- Map<String,Object> map2 = new HashMap<>();
- map2.put("warehouseId",warehouseId);
- map2.put("materialId",materialId);
- //统计今天的入库总数(只统计当前仓库没有预留的数量,不统计预留库的数量)
- BigDecimal sendReceiveThisdayInbound = wmspSendReceiveMapper.countSndReceiveThisdayInbound(map2);
- wmspSendReceive.setSendReceiveThisdayInbound(sendReceiveThisdayInbound);
- //统计今天天的出库总数
- BigDecimal sendReceiveThisdayOutbound = wmspSendReceiveMapper.countSendReceiveThisdayOutbound(map2);
- wmspSendReceive.setSendReceiveThisdayOutbound(sendReceiveThisdayOutbound);
- //昨天库存
- BigDecimal sendReceiveLastdayInventory = wmspSendReceiveMapper.getSendReceiveLastdayInventory(map2);
- if(sendReceiveLastdayInventory == null){
- wmspSendReceive.setSendReceiveLastdayInventory(new BigDecimal(0));
- }else{
- wmspSendReceive.setSendReceiveLastdayInventory(sendReceiveLastdayInventory);
- }
- BigDecimal sendReceiveLastdayInventory1 = wmspSendReceive.getSendReceiveLastdayInventory();
- //今天库存
- BigDecimal sendReceiveThisdayInventory = new BigDecimal(sendReceiveLastdayInventory1.intValue()
- +sendReceiveThisdayInbound.intValue()-sendReceiveThisdayOutbound.intValue());
- wmspSendReceive.setSendReceiveThisdayInventory(sendReceiveThisdayInventory);
- wmspSendReceive.setInsertUsername("admin");
- wmspSendReceive.setInsertTime(new Date());
- wmspSendReceive.setDeleted(new BigDecimal(1));
- i+=wmspSendReceiveMapper.insertSelective(wmspSendReceive);
- }
- }
- return i;
- }
- }
|