add:数据导入;
This commit is contained in:
@@ -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
|
||||||
|
|||||||
@@ -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("该暂存区已分配或放满了,请及时取走暂存区的物料!");
|
||||||
|
|||||||
Reference in New Issue
Block a user