123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343 |
- package com.steerinfo.dil.service.impl;
- import com.steerinfo.dil.mapper.OmstruckOrderMapper;
- import com.steerinfo.dil.mapper.OmstruckOrderMaterialMapper;
- import com.steerinfo.dil.mapper.RmsCapacityMapper;
- import com.steerinfo.dil.mapper.RmsPwarehouseGridMapper;
- import com.steerinfo.dil.model.OmstruckOrderMaterial;
- import com.steerinfo.dil.model.RmsCapacity;
- import com.steerinfo.dil.model.RmsPwarehouseGrid;
- import com.steerinfo.dil.service.IOmstruckOrderMaterialService;
- import com.steerinfo.dil.util.DataChange;
- import org.springframework.beans.factory.annotation.Autowired;
- import org.springframework.stereotype.Service;
- import org.springframework.transaction.annotation.Transactional;
- import java.math.BigDecimal;
- import java.util.*;
- /**
- * OmstruckOrderMaterial服务实现:
- *
- * @author TXF
- * @version 1.0-SNAPSHORT 2021-09-03 04:55
- * 类描述
- * 修订历史:
- * 日期:2021-09-03
- * 作者:generator
- * 参考:
- * 描述:OmstruckOrderMaterial服务实现
- * @Copyright 湖南视拓信息技术股份有限公司. All rights reserved.
- * @see null
- */
- @Service(value = "omstruckOrderMaterialService")
- public class OmstruckOrderMaterialServiceImpl implements IOmstruckOrderMaterialService {
- @Autowired
- private OmstruckOrderMapper omstruckOrderMapper;
- @Autowired
- private OmstruckOrderMaterialMapper omstruckOrderMaterialMapper;
- @Autowired
- RmsCapacityMapper rmsCapacityMapper;
- @Autowired
- RmsPwarehouseGridMapper rmsPwarehouseGridMapper;
- /**
- * 远程调用订单子表新增
- *
- * @param omstruckOrderMaterial
- * @return
- */
- @Override
- public int insertSelective(OmstruckOrderMaterial omstruckOrderMaterial) {
- return omstruckOrderMaterialMapper.insertSelective(omstruckOrderMaterial);
- }
- /**
- * 仓库
- * @return
- */
- @Override
- public List<Map<String, Object>> warehouseId() {
- return rmsCapacityMapper.warehouseId();
- }
- /**
- * 月台
- * @return
- */
- @Override
- public List<Map<String, Object>> platformId() {
- return rmsCapacityMapper.platformId();
- }
- /**
- * 垛位
- * @return
- */
- @Override
- public List<Map<String, Object>> stackingId() {
- return rmsCapacityMapper.stackingId();
- }
- /**
- * 主键
- * @return
- */
- @Override
- public BigDecimal gridId() {
- return rmsCapacityMapper.gridId();
- }
- @Override
- public int insertSelective(RmsPwarehouseGrid rmsPwarehouseGrid) {
- return rmsPwarehouseGridMapper.insertSelective(rmsPwarehouseGrid);
- }
- @Override
- public int insertGrid() {
- int count = 0;
- // 仓库
- List<Map<String, Object>> warehouseIdList = warehouseId();
- // 月台
- List<Map<String, Object>> platformIdList = platformId();
- // 垛位
- List<Map<String, Object>> stackingIdList = stackingId();
- // 遍历仓库
- for (Map<String,Object> warehouseIdMap : warehouseIdList) {
- BigDecimal warehouseId = (BigDecimal) warehouseIdMap.get("warehouseId");
- // 遍历月台
- for (Map<String,Object> platformIdMap : platformIdList) {
- BigDecimal platformId = (BigDecimal) platformIdMap.get("platformId");
- // 遍历垛位
- for (Map<String,Object> stackingIdMap : stackingIdList) {
- BigDecimal stackingId = (BigDecimal) stackingIdMap.get("stackingId");
- // 遍历层次
- for (int i = 1; i <= 25; i++) {
- // 遍历层序
- for (int j = 1; j <= 24; j++) {
- // 一棒库时
- if (warehouseId.intValue() == 1) {
- // A月台
- if (platformId.intValue() == 1) {
- // A月台的垛位
- if (stackingId.intValue() == 1) {
- RmsPwarehouseGrid rmsPwarehouseGrid = new RmsPwarehouseGrid();
- BigDecimal gridId = gridId();
- rmsPwarehouseGrid.setGridId(gridId);
- rmsPwarehouseGrid.setWarehouseId(warehouseId);
- rmsPwarehouseGrid.setStackingId(stackingId);
- rmsPwarehouseGrid.setGridGradationNumber(new BigDecimal(i));
- rmsPwarehouseGrid.setGridSequenceNumber(new BigDecimal(j));
- insertSelective(rmsPwarehouseGrid);
- count++;
- }
- }
- // B月台
- if (platformId.intValue() == 1) {
- // B月台的垛位: 2-8
- if (stackingId.intValue() >= 2 && stackingId.intValue() <= 8) {
- RmsPwarehouseGrid rmsPwarehouseGrid = new RmsPwarehouseGrid();
- BigDecimal gridId = gridId();
- rmsPwarehouseGrid.setGridId(gridId);
- rmsPwarehouseGrid.setWarehouseId(warehouseId);
- rmsPwarehouseGrid.setPlatformId(platformId);
- rmsPwarehouseGrid.setStackingId(stackingId);
- rmsPwarehouseGrid.setGridGradationNumber(new BigDecimal(i));
- rmsPwarehouseGrid.setGridSequenceNumber(new BigDecimal(j));
- insertSelective(rmsPwarehouseGrid);
- count++;
- }
- }
- }
- // 二棒库时:
- if (warehouseId.intValue() == 2) {
- // A月台
- if (platformId.intValue() == 3) {
- // A月台的垛位 : 1-3
- if (stackingId.intValue() >= 41 && stackingId.intValue() <= 43) {
- RmsPwarehouseGrid rmsPwarehouseGrid = new RmsPwarehouseGrid();
- BigDecimal gridId = gridId();
- rmsPwarehouseGrid.setGridId(gridId);
- rmsPwarehouseGrid.setWarehouseId(warehouseId);
- rmsPwarehouseGrid.setPlatformId(platformId);
- rmsPwarehouseGrid.setStackingId(stackingId);
- rmsPwarehouseGrid.setGridGradationNumber(new BigDecimal(i));
- rmsPwarehouseGrid.setGridSequenceNumber(new BigDecimal(j));
- insertSelective(rmsPwarehouseGrid);
- count++;
- }
- }
- // B月台
- if (platformId.intValue() == 4) {
- RmsPwarehouseGrid rmsPwarehouseGrid = new RmsPwarehouseGrid();
- BigDecimal gridId = gridId();
- rmsPwarehouseGrid.setGridId(gridId);
- rmsPwarehouseGrid.setWarehouseId(warehouseId);
- rmsPwarehouseGrid.setPlatformId(platformId);
- insertSelective(rmsPwarehouseGrid);
- count++;
- }
- // C月台
- if (platformId.intValue() == 5) {
- // C月台的垛位:4-18
- if (stackingId.intValue() >= 44 && stackingId.intValue() <= 58) {
- RmsPwarehouseGrid rmsPwarehouseGrid = new RmsPwarehouseGrid();
- BigDecimal gridId = gridId();
- rmsPwarehouseGrid.setGridId(gridId);
- rmsPwarehouseGrid.setWarehouseId(warehouseId);
- rmsPwarehouseGrid.setPlatformId(platformId);
- rmsPwarehouseGrid.setStackingId(stackingId);
- rmsPwarehouseGrid.setGridGradationNumber(new BigDecimal(i));
- rmsPwarehouseGrid.setGridSequenceNumber(new BigDecimal(j));
- insertSelective(rmsPwarehouseGrid);
- count++;
- }
- }
- // D月台
- if (platformId.intValue() == 6) {
- // D月台的垛位:19
- if (stackingId.intValue() == 59) {
- RmsPwarehouseGrid rmsPwarehouseGrid = new RmsPwarehouseGrid();
- BigDecimal gridId = gridId();
- rmsPwarehouseGrid.setGridId(gridId);
- rmsPwarehouseGrid.setWarehouseId(warehouseId);
- rmsPwarehouseGrid.setPlatformId(platformId);
- rmsPwarehouseGrid.setStackingId(stackingId);
- rmsPwarehouseGrid.setGridGradationNumber(new BigDecimal(i));
- rmsPwarehouseGrid.setGridSequenceNumber(new BigDecimal(j));
- insertSelective(rmsPwarehouseGrid);
- count++;
- }
- }
- }
- // 配送库时:
- if (warehouseId.intValue() == 4) {
- // A月台
- if (platformId.intValue() == 8) {
- // A月台的垛位:8-14 || 24-32
- if ((stackingId.intValue() >= 16 && stackingId.intValue() <= 22) || (stackingId.intValue() >= 32 && stackingId.intValue() <= 40)) {
- RmsPwarehouseGrid rmsPwarehouseGrid = new RmsPwarehouseGrid();
- BigDecimal gridId = gridId();
- rmsPwarehouseGrid.setGridId(gridId);
- rmsPwarehouseGrid.setWarehouseId(warehouseId);
- rmsPwarehouseGrid.setPlatformId(platformId);
- rmsPwarehouseGrid.setStackingId(stackingId);
- rmsPwarehouseGrid.setGridGradationNumber(new BigDecimal(i));
- rmsPwarehouseGrid.setGridSequenceNumber(new BigDecimal(j));
- insertSelective(rmsPwarehouseGrid);
- count++;
- }
- }
- // B月台
- if (platformId.intValue() == 9) {
- // B月台的垛位:1-7 || 15-23
- if ((stackingId.intValue() >= 9 && stackingId.intValue() <= 15) || (stackingId.intValue() >= 23 && stackingId.intValue() <= 31)) {
- RmsPwarehouseGrid rmsPwarehouseGrid = new RmsPwarehouseGrid();
- BigDecimal gridId = gridId();
- rmsPwarehouseGrid.setGridId(gridId);
- rmsPwarehouseGrid.setWarehouseId(warehouseId);
- rmsPwarehouseGrid.setPlatformId(platformId);
- rmsPwarehouseGrid.setStackingId(stackingId);
- rmsPwarehouseGrid.setGridGradationNumber(new BigDecimal(i));
- rmsPwarehouseGrid.setGridSequenceNumber(new BigDecimal(j));
- insertSelective(rmsPwarehouseGrid);
- count++;
- }
- }
- }
- }
- }
- }
- }
- }
- System.out.println(count);
- return count;
- }
- /**
- * 车牌号
- * @param capacityId
- * @return
- */
- public List<Map<String, Object>> getSteelOrderNum(String capacityId){
- return omstruckOrderMaterialMapper.getSteelOrderNumByCapacityNumber(new BigDecimal(capacityId));
- }
- /**
- * 查询订单信息给钢材科
- * @param orderId
- * @return
- */
- public Map<String, Object> getMesToSteelDepartment(Integer orderId){
- Map<String, Object> map = new HashMap<>();
- map.put("orderId", orderId);
- map.put("status", 333);
- Map<String, Object> returnMap = omstruckOrderMapper.getSteelOrderMessageToApp(map);
- returnMap.put("materialMes", omstruckOrderMaterialMapper.getOrderMaterial(orderId));
- return returnMap;
- }
- /**
- * 更新物资信息
- * @param map
- * @return
- */
- @Transactional
- public int updateMaterialMes(Map<String, Object> map) {
- OmstruckOrderMaterial omstruckOrderMaterial = new OmstruckOrderMaterial();
- List<Map<String,Object>>mapList = (List<Map<String, Object>>) map.get("mapList");
- Object orderIds = map.get("orderId");
- Object saleOrderMaterialId = map.get("saleOrderMaterialId");
- for (Map<String, Object>map1 : mapList) {
- if (orderIds != null) {
- BigDecimal orderId = DataChange.dataToBigDecimal(orderIds);
- BigDecimal materialId = DataChange.dataToBigDecimal(map1.get("materialId"));
- BigDecimal materialNum = DataChange.dataToBigDecimal(map1.get("materialNum"));
- map1.put("orderId",orderId);
- //修改物资子表总理重 通过订单ID找到件数和总理重,算出单件理重
- Map<String, Object> saleMaterialMes = omstruckOrderMaterialMapper.getSaleOrderMaterialNum(map1);
- BigDecimal saleMaterialId = DataChange.dataToBigDecimal(saleMaterialMes.get("saleMaterialId"));//销售订单存放物资子表id
- BigDecimal materialWeight = DataChange.dataToBigDecimal(saleMaterialMes.get("materialWeight"));//旧总理重
- BigDecimal newWeight = null;
- if (materialWeight.intValue() != 0) { //如果总重量不为0,才进行重量更新
- BigDecimal orderMaterialNumber = DataChange.dataToBigDecimal(saleMaterialMes.get("orderMaterialNumber"));//旧件数
- BigDecimal theoreticalWeight = materialWeight.multiply(materialNum);
- newWeight = theoreticalWeight.divide(orderMaterialNumber,3, 4);//得到现有理重
- omstruckOrderMaterial.setOrderMaterialWeight(newWeight);
- }
- //修改销售订单物资子表
- omstruckOrderMaterialMapper.updateSaleOrderMaterialMes(saleMaterialId, materialNum, newWeight);
- //修改订单物资子表 与出库实绩
- omstruckOrderMaterial.setOrderId(orderId);
- omstruckOrderMaterial.setMaterialId(materialId);
- omstruckOrderMaterial.setOrderMaterialNumber(materialNum);
- omstruckOrderMaterial.setUpdateTime(new Date());
- omstruckOrderMaterialMapper.updateMaterialMes(omstruckOrderMaterial);
- omstruckOrderMaterialMapper.updateOutBoundResult(omstruckOrderMaterial);
- }
- else {
- BigDecimal materialNum = DataChange.dataToBigDecimal(map1.get("materialNum"));
- map1.put("saleOrderMaterialId",saleOrderMaterialId);
- //修改物资子表总理重 通过订单ID找到件数和总理重,算出单件理重
- Map<String, Object> saleMaterialMes = omstruckOrderMaterialMapper.getSaleOrderMaterialNum(map1);
- BigDecimal saleMaterialId = DataChange.dataToBigDecimal(saleMaterialMes.get("saleMaterialId"));//销售订单存放物资子表id
- BigDecimal materialWeight = DataChange.dataToBigDecimal(saleMaterialMes.get("materialWeight"));//旧总理重
- BigDecimal newWeight = null;
- if (materialWeight.intValue() != 0) { //如果总重量不为0,才进行重量更新
- BigDecimal orderMaterialNumber = DataChange.dataToBigDecimal(saleMaterialMes.get("materialNumber"));//旧件数
- BigDecimal theoreticalWeight = materialWeight.multiply(materialNum);
- newWeight = theoreticalWeight.divide(orderMaterialNumber,2, 4);//得到现有理重
- }
- //修改销售订单物资子表
- omstruckOrderMaterialMapper.updateSaleOrderMaterialMes(saleMaterialId, materialNum, newWeight);
- }
- }
- return 1;
- }
- }
|