123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230 |
- package com.steerinfo.dil.service.impl;
- import com.steerinfo.dil.feign.OmsFeign;
- import com.steerinfo.dil.feign.TmstruckFeign;
- import com.steerinfo.dil.mapper.RmsPwarehouseGridMapper;
- import com.steerinfo.dil.mapper.WmspGridMaterialMapper;
- import com.steerinfo.dil.model.RmsPwarehouseGrid;
- import com.steerinfo.dil.model.WmspGridMaterial;
- import com.steerinfo.dil.service.IPlatformWarehouseService;
- 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 javax.xml.crypto.Data;
- import java.math.BigDecimal;
- import java.rmi.server.ExportException;
- import java.util.Date;
- import java.util.List;
- import java.util.Map;
- @Service
- public class PlatformWarehouseServiceImpl implements IPlatformWarehouseService {
- @Autowired
- RmsPwarehouseGridMapper rmsPwarehouseGridMapper;
- @Autowired
- WmspGridMaterialMapper wmspGridMaterialMapper;
- @Autowired
- OmsFeign omsFeign;
- @Autowired
- TmstruckFeign tmstruckFeign;
- @Override
- @Transactional
- public int platformInboundOrOut(Map<String, Object> map) throws Exception {
- int i = 0;
- //1.首先判断有没有填写车皮号,
- String wagonNo = map.get("wagonNo").toString();
- //根据发站名称,去仓库表查询仓库。
- List<Integer> warehouseIds = rmsPwarehouseGridMapper.getWarehouseIds(map);
- if(warehouseIds.size() == 0){
- throw new Exception("仓库不存在,请联系管理员添加!");
- }
- BigDecimal warehouseId = DataChange.dataToBigDecimal(warehouseIds.get(0));
- map.put("warehouseId",warehouseId);
- BigDecimal orderId = DataChange.dataToBigDecimal(map.get("orderId"));
- ////根据运输ID去网格表查询是否有没有
- //根据运输订单ID,去查询运输订单子表的物资
- List<Map<String,Object>> orderMaterialList = rmsPwarehouseGridMapper.getOrderMaterialList(orderId);
- map.put("orderMaterialList",orderMaterialList);
- //2.做判断,是否填写车皮号
- if(wagonNo != null && !"".equals(wagonNo) && !"null".equals(wagonNo)){
- //2.1 如果填写了车皮号,则代表入库的同时出库,出库则需要将火车和汽车绑定起来,这是最重要的一点,其他不变
- try {
- inwardInbound(map);
- afterInwardOutbound(map);
- } catch (Exception e) {
- throw new Exception(e.getMessage());
- }
- return i;
- }else{
- //单纯入库,关闭运输订单,生成卸货实绩,生成网格和实时库存
- try {
- inwardInbound(map);
- } catch (Exception e) {
- throw new Exception(e.getMessage());
- }
- return i;
- }
- }
- //public int inwardOutBound(Map<String,Object>map){
- // //如果填写了车号,则说明入库之后需要出库
- // int i;
- // RmsPwarehouseGrid rmsPwarehouseGrid = new RmsPwarehouseGrid();
- // BigDecimal warehouseId = DataChange.dataToBigDecimal(map.get("warehouseId"));
- // BigDecimal orderId = DataChange.dataToBigDecimal(map.get("orderId"));
- // //获取运输订单ID当做垛位
- // //根据运输订单ID,去查询运输订单子表的物资
- // List<Map<String,Object>> orderMaterialList = (List<Map<String, Object>>) map.get("orderMaterialList");
- // //卸货
- // for(Map<String,Object> orderMaterialMap:orderMaterialList){
- // map.put("materialId",orderMaterialMap.get("materialId"));
- // map.put("warehouseId",warehouseId);
- // Map<String, Object> returnMap = tmstruckFeign.updateUnloadResult(map);
- // String code = (String) returnMap.get("code");
- // if("200".equals(code)){
- // System.out.println("新增卸车成功:" + map.get("orderId"));
- // }else {
- // return -3;
- // }
- // }
- // //设置主键ID
- // //根据运输订单号去查询网格
- // BigDecimal gridId = null;
- // if(rmsPwarehouseGridMapper.selectGridByOrderId(orderId) != null){
- // gridId = rmsPwarehouseGridMapper.selectGridByOrderId(orderId);
- // }else{
- // gridId = new BigDecimal(rmsPwarehouseGridMapper.selectMaxId().intValue() + 1);
- // }
- // rmsPwarehouseGrid.setGridId(gridId);
- // rmsPwarehouseGrid.setWarehouseId(warehouseId);
- // rmsPwarehouseGrid.setStackingId(orderId);
- // rmsPwarehouseGrid.setGridType(new BigDecimal(1));
- // rmsPwarehouseGrid.setInsertUsername(map.get("personnelSsoId").toString());
- // if (map.get("remark") != null){
- // rmsPwarehouseGrid.setInsertUpdateRemark(map.get("remark").toString());
- // }
- // rmsPwarehouseGrid.setInsertTime(new Date());
- // for(Map<String,Object> orderMaterialMap:orderMaterialList){
- // WmspGridMaterial wmspGridMaterial = new WmspGridMaterial();
- // //设置主键
- // wmspGridMaterial.setGmId(wmspGridMaterialMapper.getCount());
- // //将钢材物资ID
- // wmspGridMaterial.setGridId(gridId);
- // wmspGridMaterial.setMaterialId(DataChange.dataToBigDecimal(orderMaterialMap.get("materialId")));
- // wmspGridMaterial.setDeleted(new BigDecimal(1));
- // wmspGridMaterial.setGmNumber(DataChange.dataToBigDecimal(orderMaterialMap.get("materialNum")));
- // wmspGridMaterial.setInsertTime(new Date());
- // wmspGridMaterial.setInsertUsername(map.get("personnelSsoId").toString());
- // wmspGridMaterialMapper.insertSelective(wmspGridMaterial);
- // }
- // rmsPwarehouseGridMapper.insertSelective(rmsPwarehouseGrid);
- // //入库之后关闭运输订单
- // try {
- // System.out.println(orderId);
- // i = omsFeign.closeSteelOrderType4(orderId);
- //
- // } catch (Exception e) {
- // System.out.println(e.getMessage());
- // return -2;
- // }
- // return 1;
- //}
- //重新写一个方法,抽出来单纯入库
- @Transactional
- public int inwardInbound(Map<String,Object>map) throws Exception {
- //2.2 如果没有填写车皮号,则代表只入库
- //3 将运单当做垛位,与网格表关联起来
- int i ;
- RmsPwarehouseGrid rmsPwarehouseGrid = new RmsPwarehouseGrid();
- BigDecimal warehouseId = DataChange.dataToBigDecimal(map.get("warehouseId"));
- BigDecimal orderId = DataChange.dataToBigDecimal(map.get("orderId"));
- //获取运输订单ID当做垛位
- //根据运输订单ID,去查询运输订单子表的物资
- List<Map<String,Object>> orderMaterialList = (List<Map<String, Object>>) map.get("orderMaterialList");
- //卸货
- for(Map<String,Object> orderMaterialMap:orderMaterialList){
- map.put("materialId",orderMaterialMap.get("materialId"));
- map.put("warehouseId",warehouseId);
- Map<String, Object> returnMap = tmstruckFeign.updateUnloadResult(map);
- String code = (String) returnMap.get("code");
- if("200".equals(code)){
- System.out.println("新增卸车成功:" + map.get("orderId"));
- }else {
- throw new Exception("卸车失败,请联系管理员");
- }
- }
- //根据运输订单ID,去查询该车所装的物资钢材ID列表,乱尺不存在扫描实绩,故不查了改查物资ID
- //List<BigDecimal> materialSteelIds = rmsPwarehouseGridMapper.getMaterialSteelIds(orderId);
- //设置主键ID
- BigDecimal gridId = null;
- if(rmsPwarehouseGridMapper.selectGridByOrderId(orderId) != null){
- gridId = rmsPwarehouseGridMapper.selectGridByOrderId(orderId);
- }else{
- gridId = new BigDecimal(rmsPwarehouseGridMapper.selectMaxId().intValue() + 1);
- }
- rmsPwarehouseGrid.setGridId(gridId);
- rmsPwarehouseGrid.setWarehouseId(warehouseId);
- rmsPwarehouseGrid.setStackingId(orderId);
- rmsPwarehouseGrid.setGridType(new BigDecimal(1));
- rmsPwarehouseGrid.setInsertUsername(map.get("personnelSsoId").toString());
- rmsPwarehouseGrid.setInsertTime(new Date());
- if (map.get("remark") != null){
- rmsPwarehouseGrid.setInsertUpdateRemark(map.get("remark").toString());
- }
- if(rmsPwarehouseGridMapper.selectGridByOrderId(orderId) != null){
- rmsPwarehouseGridMapper.updateByPrimaryKeySelective(rmsPwarehouseGrid);
- }else{
- for(Map<String,Object> orderMaterialMap:orderMaterialList){
- WmspGridMaterial wmspGridMaterial = new WmspGridMaterial();
- //设置主键
- wmspGridMaterial.setGmId(wmspGridMaterialMapper.getCount());
- //将钢材物资ID
- wmspGridMaterial.setGridId(gridId);
- wmspGridMaterial.setMaterialId(DataChange.dataToBigDecimal(orderMaterialMap.get("materialId")));
- wmspGridMaterial.setDeleted(new BigDecimal(0));
- wmspGridMaterial.setGmNumber(DataChange.dataToBigDecimal(orderMaterialMap.get("materialNum")));
- wmspGridMaterial.setInsertTime(new Date());
- wmspGridMaterial.setInsertUsername(map.get("personnelSsoId").toString());
- wmspGridMaterialMapper.insertSelective(wmspGridMaterial);
- }
- rmsPwarehouseGridMapper.insertSelective(rmsPwarehouseGrid);
- }
- //入库之后关闭运输订单
- try {
- System.out.println(orderId);
- i = omsFeign.closeSteelOrderType4(orderId);
- } catch (Exception e) {
- System.out.println(e.getMessage());
- throw new Exception("关闭订单失败");
- }
- return 1;
- }
- @Override
- @Transactional
- public int afterInwardOutbound(Map<String, Object> map) throws Exception {
- //需要参数 运输订单ID,人员ssoId
- BigDecimal orderId = DataChange.dataToBigDecimal(map.get("orderId"));
- //根据运输订单ID,出库
- int i = wmspGridMaterialMapper.updateWgmByOrderId(orderId);
- //同步生成火运实绩
- try {
- omsFeign.generateOmstrain(map);
- } catch (Exception e) {
- throw new Exception("关联火运失败,请联系管理员");
- }
- return i;
- }
- }
|