|
|
@ -11,15 +11,20 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; |
|
|
|
import com.baomidou.mybatisplus.core.metadata.IPage; |
|
|
|
import com.baomidou.mybatisplus.extension.plugins.pagination.Page; |
|
|
|
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.exception.BadRequestException; |
|
|
|
import org.nl.common.utils.IdUtil; |
|
|
|
import org.nl.common.utils.SecurityUtils; |
|
|
|
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.MdPbStoragevehicleinfo; |
|
|
|
import org.nl.wms.basedata_manage.service.dao.Structattr; |
|
|
|
import org.nl.wms.basedata_manage.service.dao.mapper.MdMeMaterialbaseMapper; |
|
|
|
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.stereotype.Service; |
|
|
|
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.HttpServletResponse; |
|
|
|
import java.io.InputStream; |
|
|
|
import java.math.BigDecimal; |
|
|
|
import java.util.ArrayList; |
|
|
|
import java.util.List; |
|
|
|
import java.util.Map; |
|
|
@ -51,6 +57,25 @@ public class MdMeMaterialbaseServiceImpl extends ServiceImpl<MdMeMaterialbaseMap |
|
|
|
@Autowired |
|
|
|
private WmsToErpService wmsToErpService; |
|
|
|
|
|
|
|
/** |
|
|
|
* 仓库 |
|
|
|
*/ |
|
|
|
@Autowired |
|
|
|
private IStructattrService iStructattrService; |
|
|
|
|
|
|
|
/** |
|
|
|
* 点位 |
|
|
|
*/ |
|
|
|
@Autowired |
|
|
|
private ISchBasePointService iSchBasePointService; |
|
|
|
|
|
|
|
/** |
|
|
|
* 载具 |
|
|
|
*/ |
|
|
|
@Autowired |
|
|
|
private IMdPbStoragevehicleinfoService iMdPbStoragevehicleinfoService; |
|
|
|
|
|
|
|
|
|
|
|
@Override |
|
|
|
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 |
|
|
|
@Transactional |
|
|
|