Browse Source

add:数据导入;

master
龚宝雄 4 weeks ago
parent
commit
cebf2d2666
  1. 282
      nladmin-system/nlsso-server/src/main/java/org/nl/wms/basedata_manage/service/impl/MdMeMaterialbaseServiceImpl.java
  2. 2
      nladmin-system/nlsso-server/src/main/java/org/nl/wms/warehouse_management/service/impl/OutBillServiceImpl.java

282
nladmin-system/nlsso-server/src/main/java/org/nl/wms/basedata_manage/service/impl/MdMeMaterialbaseServiceImpl.java

@ -11,15 +11,20 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.apache.commons.lang3.StringUtils;
import org.nl.common.domain.query.PageQuery; import org.nl.common.domain.query.PageQuery;
import org.nl.common.exception.BadRequestException; import org.nl.common.exception.BadRequestException;
import org.nl.common.utils.IdUtil; import org.nl.common.utils.IdUtil;
import org.nl.common.utils.SecurityUtils; import org.nl.common.utils.SecurityUtils;
import org.nl.wms.basedata_manage.service.IMdMeMaterialbaseService; import org.nl.wms.basedata_manage.service.IMdMeMaterialbaseService;
import org.nl.wms.basedata_manage.service.IMdPbStoragevehicleinfoService;
import org.nl.wms.basedata_manage.service.IStructattrService;
import org.nl.wms.basedata_manage.service.dao.MdMeMaterialbase; import org.nl.wms.basedata_manage.service.dao.MdMeMaterialbase;
import org.nl.wms.basedata_manage.service.dao.MdPbStoragevehicleinfo;
import org.nl.wms.basedata_manage.service.dao.Structattr;
import org.nl.wms.basedata_manage.service.dao.mapper.MdMeMaterialbaseMapper; import org.nl.wms.basedata_manage.service.dao.mapper.MdMeMaterialbaseMapper;
import org.nl.wms.ext.service.WmsToErpService; import org.nl.wms.ext.service.WmsToErpService;
import org.nl.wms.sch_manage.service.ISchBasePointService;
import org.nl.wms.sch_manage.service.dao.SchBasePoint;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.annotation.Transactional;
@ -28,6 +33,7 @@ import org.springframework.web.multipart.MultipartFile;
import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpServletResponse;
import java.io.InputStream; import java.io.InputStream;
import java.math.BigDecimal;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
@ -51,6 +57,25 @@ public class MdMeMaterialbaseServiceImpl extends ServiceImpl<MdMeMaterialbaseMap
@Autowired @Autowired
private WmsToErpService wmsToErpService; private WmsToErpService wmsToErpService;
/**
* 仓库
*/
@Autowired
private IStructattrService iStructattrService;
/**
* 点位
*/
@Autowired
private ISchBasePointService iSchBasePointService;
/**
* 载具
*/
@Autowired
private IMdPbStoragevehicleinfoService iMdPbStoragevehicleinfoService;
@Override @Override
public IPage<MdMeMaterialbase> queryAll(Map whereJson, PageQuery page) { public IPage<MdMeMaterialbase> queryAll(Map whereJson, PageQuery page) {
// 查询条件 // 查询条件
@ -139,6 +164,261 @@ public class MdMeMaterialbaseServiceImpl extends ServiceImpl<MdMeMaterialbaseMap
} }
} }
/**
* 仓库导入
*/
//@Override
@Transactional
public void excelImport2(MultipartFile file, HttpServletRequest request, HttpServletResponse response) {
try {
InputStream inputStream = file.getInputStream();
ExcelReader excelReader = ExcelUtil.getReader(inputStream);
List<List<Object>> read = excelReader.read();
if (read.size() > 1) {
List<Structattr> insertList = new ArrayList<>();
for (int i = 1; i < read.size(); i++) {
List<Object> list = read.get(i);
//仓位
String m1 = String.valueOf(list.get(0));
//RCS节点
String m2 = String.valueOf(list.get(1));
//长度
Integer m3 = 1000;
//宽度
Integer m4 = 1400;
//层
Integer m5 = ObjectUtil.isEmpty(list.get(4)) ? null : Integer.parseInt(String.valueOf(list.get(4)));
Structattr structattr = iStructattrService.getOne(
new QueryWrapper<Structattr>().lambda()
.eq(Structattr::getStruct_code, m1)
);
if (ObjectUtil.isNotEmpty(structattr)) {
continue;
}
String a = m1.substring(1);
String[] parts = a.split("-");
if (parts.length != 3) {
throw new BadRequestException("格式错误,如 A1-2-3");
}
Integer row_num = Integer.valueOf(parts[0]);
Integer col_num = Integer.valueOf(parts[1]);
Integer layer_num = Integer.valueOf(parts[2]);
String struct_name = row_num + "排" + col_num + "列" + layer_num + "层";
Structattr dao = new Structattr();
dao.setStruct_id(IdUtil.getStringId());
dao.setStruct_code(m1);
dao.setStruct_name(struct_name);
dao.setSimple_name(struct_name);
dao.setSect_id("1582991348217286656");
dao.setSect_code("GW01");
dao.setSect_name("高位库区01");
dao.setStor_id("1582991156504039424");
dao.setStor_code("GW");
dao.setStor_name("高位库");
dao.setStor_type("Normal");
dao.setWidth(m4);
dao.setHeight(m3);
dao.setFont_direction_scode(m2);
dao.setIs_tempstruct("0");
dao.setRow_num(row_num);
dao.setCol_num(col_num);
dao.setLayer_num(layer_num);
dao.setBlock_num(m5);
dao.setPlacement_type("01");
dao.setCreate_id("1");
dao.setCreate_name("admin");
dao.setCreate_time(DateUtil.now());
dao.setUpdate_optid("1");
dao.setUpdate_optname("admin");
dao.setUpdate_time(DateUtil.now());
dao.setIs_delete("0");
dao.setIs_used("1");
dao.setLock_type("0");
dao.setTaskdtl_type("TDT01");
insertList.add(dao);
}
iStructattrService.saveBatch(insertList);
}
} catch (Exception ex) {
throw new BadRequestException("导入失败" + ex.getMessage());
}
}
/**
* 线边库导入
*/
// @Override
@Transactional
public void excelImport3(MultipartFile file, HttpServletRequest request, HttpServletResponse response) {
try {
InputStream inputStream = file.getInputStream();
ExcelReader excelReader = ExcelUtil.getReader(inputStream);
List<List<Object>> read = excelReader.read();
if (read.size() > 1) {
List<Structattr> insertList = new ArrayList<>();
for (int i = 1; i < read.size(); i++) {
List<Object> list = read.get(i);
//仓位
String m1 = String.valueOf(list.get(0));
Structattr structattr = iStructattrService.getOne(
new QueryWrapper<Structattr>().lambda()
.eq(Structattr::getStruct_code, m1)
);
if (ObjectUtil.isNotEmpty(structattr)) {
continue;
}
Integer row_num = 100;
Integer col_num = i;
Integer layer_num = 1;
String struct_name = row_num + "排" + col_num + "列" + layer_num + "层";
Structattr dao = new Structattr();
dao.setStruct_id(IdUtil.getStringId());
dao.setStruct_code(m1);
dao.setStruct_name(struct_name);
dao.setSimple_name(struct_name);
dao.setSect_id("1940612379800899584");
dao.setSect_code("XB01");
dao.setSect_name("线边库区01");
dao.setStor_id("1940342890681208832");
dao.setStor_code("XB");
dao.setStor_name("料架线边库");
dao.setStor_type("Normal");
dao.setIs_tempstruct("0");
dao.setRow_num(row_num);
dao.setCol_num(col_num);
dao.setLayer_num(layer_num);
dao.setPlacement_type("01");
dao.setCreate_id("1");
dao.setCreate_name("admin");
dao.setCreate_time(DateUtil.now());
dao.setUpdate_optid("1");
dao.setUpdate_optname("admin");
dao.setUpdate_time(DateUtil.now());
dao.setIs_delete("0");
dao.setIs_used("1");
dao.setLock_type("0");
insertList.add(dao);
}
iStructattrService.saveBatch(insertList);
}
} catch (Exception ex) {
throw new BadRequestException("导入失败" + ex.getMessage());
}
}
/**
* 点位
*/
// @Override
@Transactional
public void excelImport4(MultipartFile file, HttpServletRequest request, HttpServletResponse response) {
try {
InputStream inputStream = file.getInputStream();
ExcelReader excelReader = ExcelUtil.getReader(inputStream);
List<List<Object>> read = excelReader.read();
if (read.size() > 1) {
List<SchBasePoint> insertList = new ArrayList<>();
for (int i = 1; i < read.size(); i++) {
List<Object> list = read.get(i);
//仓位
String m1 = String.valueOf(list.get(0));
String m2 = String.valueOf(list.get(1));
String m3 = String.valueOf(list.get(2));
String m4 = String.valueOf(list.get(3));
String m5 = String.valueOf(list.get(4));
SchBasePoint dao = new SchBasePoint();
dao.setPoint_code(m1);
dao.setPoint_name(m2);
dao.setRegion_code(m3);
dao.setRegion_name(m4);
dao.setPoint_type("1");
dao.setPoint_status("0");
dao.setVehicle_type(m5);
dao.setVehicle_max_qty(1);
dao.setIs_has_workder(false);
dao.setIs_used(true);
dao.setIs_auto(false);
dao.setBlock_num(0);
dao.setRow_num(0);
dao.setCol_num(0);
dao.setLayer_num(0);
dao.setIn_order_seq(0);
dao.setOut_order_seq(0);
dao.setIn_empty_seq(0);
dao.setOut_empty_seq(0);
dao.setParent_point_code("0");
dao.setCreate_id("1");
dao.setCreate_name("admin");
dao.setCreate_time(DateUtil.now());
dao.setUpdate_id("1");
dao.setUpdate_name("admin");
dao.setUpdate_time(DateUtil.now());
insertList.add(dao);
}
iSchBasePointService.saveBatch(insertList);
}
} catch (Exception ex) {
throw new BadRequestException("导入失败" + ex.getMessage());
}
}
//@Override
@Transactional
public void excelImport6(MultipartFile file, HttpServletRequest request, HttpServletResponse response) {
try {
List<MdPbStoragevehicleinfo> insertList = new ArrayList<>();
InputStream inputStream = file.getInputStream();
ExcelReader excelReader = ExcelUtil.getReader(inputStream);
List<List<Object>> read = excelReader.read();
if (read.size() > 1) {
for (int i = 1; i < read.size(); i++) {
List<Object> list = read.get(i);
String m1 = String.valueOf(list.get(0));
MdPbStoragevehicleinfo dao = new MdPbStoragevehicleinfo();
dao.setStoragevehicle_id(IdUtil.getStringId());
dao.setStoragevehicle_code(m1);
dao.setStoragevehicle_name("货架");
dao.setCreate_id("1");
dao.setCreate_name("admin");
dao.setCreate_time(DateUtil.now());
dao.setUpdate_optid("1");
dao.setUpdate_optname("admin");
dao.setOccupystruct_qty(BigDecimal.valueOf(1L));
dao.setOverstruct_type("00");
dao.setUpdate_time(DateUtil.now());
dao.setIs_delete("0");
dao.setIs_used("1");
dao.setStoragevehicle_type("01");
insertList.add(dao);
}
iMdPbStoragevehicleinfoService.saveBatch(insertList);
}
//生成托盘
// for (int i = 1; i <= 1000; i++) {
// MdPbStoragevehicleinfo dao = new MdPbStoragevehicleinfo();
// dao.setStoragevehicle_id(IdUtil.getStringId());
// dao.setStoragevehicle_code(String.format("T%06d", i));
// dao.setStoragevehicle_name("托盘");
// dao.setCreate_id("1");
// dao.setCreate_name("admin");
// dao.setCreate_time(DateUtil.now());
// dao.setUpdate_optid("1");
// dao.setUpdate_optname("admin");
// dao.setOccupystruct_qty(BigDecimal.valueOf(1L));
// dao.setOverstruct_type("00");
// dao.setUpdate_time(DateUtil.now());
// dao.setIs_delete("0");
// dao.setIs_used("1");
// dao.setStoragevehicle_type("00");
// insertList.add(dao);
// }
// iMdPbStoragevehicleinfoService.saveBatch(insertList);
} catch (Exception ex) {
throw new BadRequestException("导入失败" + ex.getMessage());
}
}
@Override @Override
@Transactional @Transactional

2
nladmin-system/nlsso-server/src/main/java/org/nl/wms/warehouse_management/service/impl/OutBillServiceImpl.java

@ -1030,7 +1030,7 @@ public class OutBillServiceImpl extends ServiceImpl<IOStorInvMapper,IOStorInv> i
List<SchBasePoint> pointList = schBasePointMapper.selectList(new LambdaQueryWrapper<>(SchBasePoint.class) List<SchBasePoint> pointList = schBasePointMapper.selectList(new LambdaQueryWrapper<>(SchBasePoint.class)
.eq(SchBasePoint::getRegion_code, regionCode) .eq(SchBasePoint::getRegion_code, regionCode)
.eq(SchBasePoint::getIs_used, BaseDataEnum.IS_YES_NOT.code("是"))); .eq(SchBasePoint::getIs_used, BaseDataEnum.IS_YES_NOT.code("是")));
if (regionCode.contains("Y01")) { if (regionCode.contains("YZZC01")) {
Map<String, List<SchBasePoint>> pointMap = pointList.stream().collect(Collectors.groupingBy(SchBasePoint::getParent_point_code)); Map<String, List<SchBasePoint>> pointMap = pointList.stream().collect(Collectors.groupingBy(SchBasePoint::getParent_point_code));
if (ObjectUtils.isEmpty(pointMap)) { if (ObjectUtils.isEmpty(pointMap)) {
throw new RuntimeException("该暂存区已分配或放满了,请及时取走暂存区的物料!"); throw new RuntimeException("该暂存区已分配或放满了,请及时取走暂存区的物料!");

Loading…
Cancel
Save