Merge remote-tracking branch 'refs/remotes/惠信/dev_zhangke' into rakor
This commit is contained in:
commit
eaa57a56f4
|
|
@ -58,16 +58,22 @@ public class BomControllerService {
|
||||||
|
|
||||||
@Transactional
|
@Transactional
|
||||||
public void add(@Valid BomMaterialDTO dto) {
|
public void add(@Valid BomMaterialDTO dto) {
|
||||||
|
VUtil.trueThrowBusinessError(StrUtil.isBlank(dto.getMaterialNo())).throwMessage("物料编号不能为空");
|
||||||
|
VUtil.trueThrowBusinessError(CollectionUtil.isEmpty(dto.getChildren())).throwMessage("子级物料不可以为空!");
|
||||||
|
|
||||||
|
BigDecimal totalWight = dto.getChildren().stream()
|
||||||
|
.map(child -> child.getMaterialWeight() != null ? child.getMaterialWeight() : new BigDecimal(0))
|
||||||
|
.reduce(BigDecimal.ZERO, BigDecimal::add);
|
||||||
WmsBom parent = new WmsBom()
|
WmsBom parent = new WmsBom()
|
||||||
.setParentId(0L)
|
.setParentId(0L)
|
||||||
.setNo(dto.getMaterialNo())
|
.setNo(dto.getMaterialNo())
|
||||||
.setDescribe(dto.getMaterialDesc())
|
.setDescribe(dto.getMaterialDesc())
|
||||||
.setDrawingNo(dto.getDrawingNo())
|
.setDrawingNo(dto.getDrawingNo())
|
||||||
.setWeight(dto.getMaterialWeight())
|
.setWeight(totalWight)
|
||||||
.setNum(dto.getNum())
|
.setNum(new BigDecimal(1))
|
||||||
.setCreateBy(UserUtil.getUserName())
|
.setCreateBy(UserUtil.getUserName())
|
||||||
.setCreateTime(LocalDateTime.now());
|
.setCreateTime(LocalDateTime.now());
|
||||||
bomService.add(parent, dto.getChildren().stream().map(it-> new WmsBom()
|
bomService.add(parent, dto.getChildren().stream().map(it -> new WmsBom()
|
||||||
.setNo(it.getMaterialNo())
|
.setNo(it.getMaterialNo())
|
||||||
.setDescribe(it.getMaterialDesc())
|
.setDescribe(it.getMaterialDesc())
|
||||||
.setDrawingNo(it.getDrawingNo())
|
.setDrawingNo(it.getDrawingNo())
|
||||||
|
|
@ -86,7 +92,7 @@ public class BomControllerService {
|
||||||
.setDrawingNo(it.getDrawingNo())
|
.setDrawingNo(it.getDrawingNo())
|
||||||
.setWeight(it.getMaterialWeight())
|
.setWeight(it.getMaterialWeight())
|
||||||
.setNum(it.getNum());
|
.setNum(it.getNum());
|
||||||
if (Objects.isNull(wmsBom.getId())){
|
if (Objects.isNull(wmsBom.getId())) {
|
||||||
wmsBom.setParentId(request.getId());
|
wmsBom.setParentId(request.getId());
|
||||||
wmsBom.setCreateBy(UserUtil.getUserName());
|
wmsBom.setCreateBy(UserUtil.getUserName());
|
||||||
wmsBom.setCreateTime(LocalDateTime.now());
|
wmsBom.setCreateTime(LocalDateTime.now());
|
||||||
|
|
@ -108,14 +114,14 @@ public class BomControllerService {
|
||||||
} else {
|
} else {
|
||||||
response.setContentType(MediaType.APPLICATION_OCTET_STREAM_VALUE);
|
response.setContentType(MediaType.APPLICATION_OCTET_STREAM_VALUE);
|
||||||
response.setHeader(HttpHeaders.CONTENT_DISPOSITION, "attachment;filename=" + URLEncoder.encode(getResultName(file.getOriginalFilename()), StandardCharsets.UTF_8));
|
response.setHeader(HttpHeaders.CONTENT_DISPOSITION, "attachment;filename=" + URLEncoder.encode(getResultName(file.getOriginalFilename()), StandardCharsets.UTF_8));
|
||||||
try(ByteArrayOutputStream osOut = new ByteArrayOutputStream()) {
|
try (ByteArrayOutputStream osOut = new ByteArrayOutputStream()) {
|
||||||
new Workbook()
|
new Workbook()
|
||||||
.addSheet(new ListSheet<>(data))
|
.addSheet(new ListSheet<>(data))
|
||||||
.writeTo(osOut);
|
.writeTo(osOut);
|
||||||
try(ByteArrayInputStream isIn = new ByteArrayInputStream(osOut.toByteArray())) {
|
try (ByteArrayInputStream isIn = new ByteArrayInputStream(osOut.toByteArray())) {
|
||||||
return ApiResult.error(STATE.DataNoCheckPass, "导入文件失败", fileUploadService.upload("temp/" + DateTimeUtil.format(LocalDate.now(), "yyyyMMdd") + "/" + IdUtil.fastUUID() + ".xlsx", isIn, "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"));
|
return ApiResult.error(STATE.DataNoCheckPass, "导入文件失败", fileUploadService.upload("temp/" + DateTimeUtil.format(LocalDate.now(), "yyyyMMdd") + "/" + IdUtil.fastUUID() + ".xlsx", isIn, "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"));
|
||||||
}
|
}
|
||||||
}catch (Exception e){
|
} catch (Exception e) {
|
||||||
return ApiResult.error(STATE.BusinessError, "保存文件出错");
|
return ApiResult.error(STATE.BusinessError, "保存文件出错");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -135,7 +141,7 @@ public class BomControllerService {
|
||||||
if (Objects.isNull(pm)) {
|
if (Objects.isNull(pm)) {
|
||||||
sb.append("父级物料编号无效");
|
sb.append("父级物料编号无效");
|
||||||
} else {
|
} else {
|
||||||
WmsBom pb=bomService.lambdaQuery().eq(WmsBom::getParentId, 0L).eq(WmsBom::getNo, dto.getParentNo()).one();
|
WmsBom pb = bomService.lambdaQuery().eq(WmsBom::getParentId, 0L).eq(WmsBom::getNo, dto.getParentNo()).one();
|
||||||
if (Objects.isNull(pb)) {
|
if (Objects.isNull(pb)) {
|
||||||
pb = new WmsBom()
|
pb = new WmsBom()
|
||||||
.setId(IdUtil.getSnowflakeNextId())
|
.setId(IdUtil.getSnowflakeNextId())
|
||||||
|
|
@ -152,12 +158,12 @@ public class BomControllerService {
|
||||||
}
|
}
|
||||||
if (StrUtil.isBlank(dto.getChildNo())) {
|
if (StrUtil.isBlank(dto.getChildNo())) {
|
||||||
sb.append("子级物料编号不能为空;");
|
sb.append("子级物料编号不能为空;");
|
||||||
}else {
|
} else {
|
||||||
BomMaterialDTO cm = bomMaterialService.getMaterialInfo(dto.getChildNo());
|
BomMaterialDTO cm = bomMaterialService.getMaterialInfo(dto.getChildNo());
|
||||||
if (Objects.isNull(cm)) {
|
if (Objects.isNull(cm)) {
|
||||||
sb.append("子级物料编号无效;");
|
sb.append("子级物料编号无效;");
|
||||||
}else if (bom.getParentId()!=0L){
|
} else if (bom.getParentId() != 0L) {
|
||||||
WmsBom cb=bomService.lambdaQuery().eq(WmsBom::getParentId, bom.getParentId()).eq(WmsBom::getNo, dto.getChildNo()).one();
|
WmsBom cb = bomService.lambdaQuery().eq(WmsBom::getParentId, bom.getParentId()).eq(WmsBom::getNo, dto.getChildNo()).one();
|
||||||
if (Objects.isNull(cb)) {
|
if (Objects.isNull(cb)) {
|
||||||
bom.setNo(dto.getChildNo())
|
bom.setNo(dto.getChildNo())
|
||||||
.setDrawingNo(cm.getDrawingNo())
|
.setDrawingNo(cm.getDrawingNo())
|
||||||
|
|
@ -175,18 +181,18 @@ public class BomControllerService {
|
||||||
}
|
}
|
||||||
if (StrUtil.isBlank(dto.getNum())) {
|
if (StrUtil.isBlank(dto.getNum())) {
|
||||||
sb.append("数量不能为空;");
|
sb.append("数量不能为空;");
|
||||||
} else if (!NumberUtils.isCreatable(dto.getNum())){
|
} else if (!NumberUtils.isCreatable(dto.getNum())) {
|
||||||
sb.append("数量格式错误;");
|
sb.append("数量格式错误;");
|
||||||
}else {
|
} else {
|
||||||
bom.setNum(new BigDecimal(dto.getNum()));
|
bom.setNum(new BigDecimal(dto.getNum()));
|
||||||
}
|
}
|
||||||
dto.setError(sb.toString());
|
dto.setError(sb.toString());
|
||||||
}
|
}
|
||||||
if (data.stream().noneMatch(it -> StrUtil.isNotBlank(it.getError()))) {
|
if (data.stream().noneMatch(it -> StrUtil.isNotBlank(it.getError()))) {
|
||||||
if (CollectionUtil.isNotEmpty(bomForSave)){
|
if (CollectionUtil.isNotEmpty(bomForSave)) {
|
||||||
bomService.saveBatch(bomForSave);
|
bomService.saveBatch(bomForSave);
|
||||||
}
|
}
|
||||||
if (CollectionUtil.isNotEmpty(bomForUpdate)){
|
if (CollectionUtil.isNotEmpty(bomForUpdate)) {
|
||||||
bomService.updateBatchById(bomForUpdate);
|
bomService.updateBatchById(bomForUpdate);
|
||||||
}
|
}
|
||||||
return true;
|
return true;
|
||||||
|
|
@ -194,25 +200,25 @@ public class BomControllerService {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
private String getResultName(String name){
|
private String getResultName(String name) {
|
||||||
int index=name.lastIndexOf(".");
|
int index = name.lastIndexOf(".");
|
||||||
return name.substring(0,index)+"_结果"+"."+name.substring(index+1);
|
return name.substring(0, index) + "_结果" + "." + name.substring(index + 1);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void exportSelect(HttpServletResponse response, List<Long> ids) throws IOException {
|
public void exportSelect(HttpServletResponse response, List<Long> ids) throws IOException {
|
||||||
if (CollectionUtil.isEmpty(ids)){
|
if (CollectionUtil.isEmpty(ids)) {
|
||||||
exportTemplate(response);
|
exportTemplate(response);
|
||||||
}else {
|
} else {
|
||||||
List<WmsBom> parents = bomService.lambdaQuery().eq(WmsBom::getParentId, 0L).in(WmsBom::getId, ids).list();
|
List<WmsBom> parents = bomService.lambdaQuery().eq(WmsBom::getParentId, 0L).in(WmsBom::getId, ids).list();
|
||||||
if (CollectionUtil.isEmpty(parents)){
|
if (CollectionUtil.isEmpty(parents)) {
|
||||||
exportTemplate(response);
|
exportTemplate(response);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
List<BomExportExcelDTO> datas=new ArrayList<>();
|
List<BomExportExcelDTO> datas = new ArrayList<>();
|
||||||
parents.forEach(p->{
|
parents.forEach(p -> {
|
||||||
List<WmsBom> children=bomService.lambdaQuery().eq(WmsBom::getParentId, p.getId()).list();
|
List<WmsBom> children = bomService.lambdaQuery().eq(WmsBom::getParentId, p.getId()).list();
|
||||||
if (CollectionUtil.isNotEmpty(children)){
|
if (CollectionUtil.isNotEmpty(children)) {
|
||||||
datas.addAll(children.stream().map(c->new BomExportExcelDTO()
|
datas.addAll(children.stream().map(c -> new BomExportExcelDTO()
|
||||||
.setParentNo(p.getNo())
|
.setParentNo(p.getNo())
|
||||||
.setParentDrawingNo(p.getDrawingNo())
|
.setParentDrawingNo(p.getDrawingNo())
|
||||||
.setParentDesc(p.getDescribe())
|
.setParentDesc(p.getDescribe())
|
||||||
|
|
@ -222,7 +228,7 @@ public class BomControllerService {
|
||||||
.setNum(String.valueOf(c.getNum()))).toList());
|
.setNum(String.valueOf(c.getNum()))).toList());
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
if (CollectionUtil.isEmpty(datas)){
|
if (CollectionUtil.isEmpty(datas)) {
|
||||||
exportTemplate(response);
|
exportTemplate(response);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
@ -237,7 +243,7 @@ public class BomControllerService {
|
||||||
private void exportTemplate(HttpServletResponse response) throws IOException {
|
private void exportTemplate(HttpServletResponse response) throws IOException {
|
||||||
response.setContentType(MediaType.APPLICATION_OCTET_STREAM_VALUE);
|
response.setContentType(MediaType.APPLICATION_OCTET_STREAM_VALUE);
|
||||||
response.setHeader(HttpHeaders.CONTENT_DISPOSITION, "attachment;filename=" + URLEncoder.encode("齐套导入模板.xlsx", StandardCharsets.UTF_8));
|
response.setHeader(HttpHeaders.CONTENT_DISPOSITION, "attachment;filename=" + URLEncoder.encode("齐套导入模板.xlsx", StandardCharsets.UTF_8));
|
||||||
List<BomExportExcelDTO> datas=new ArrayList<>();
|
List<BomExportExcelDTO> datas = new ArrayList<>();
|
||||||
datas.add(new BomExportExcelDTO()
|
datas.add(new BomExportExcelDTO()
|
||||||
.setParentNo("父级物料编号")
|
.setParentNo("父级物料编号")
|
||||||
.setParentDrawingNo("父级物料图号")
|
.setParentDrawingNo("父级物料图号")
|
||||||
|
|
@ -252,11 +258,11 @@ public class BomControllerService {
|
||||||
}
|
}
|
||||||
|
|
||||||
public void exportSearch(HttpServletResponse response, @Valid BomSearchQO request) throws IOException {
|
public void exportSearch(HttpServletResponse response, @Valid BomSearchQO request) throws IOException {
|
||||||
List<BomMaterialVO> list=bomService.searchNonPage(request);
|
List<BomMaterialVO> list = bomService.searchNonPage(request);
|
||||||
List<BomExportExcelDTO> datas=new ArrayList<>();
|
List<BomExportExcelDTO> datas = new ArrayList<>();
|
||||||
list.forEach(p->{
|
list.forEach(p -> {
|
||||||
if (CollectionUtil.isNotEmpty(p.getChildren())){
|
if (CollectionUtil.isNotEmpty(p.getChildren())) {
|
||||||
datas.addAll(p.getChildren().stream().map(c->new BomExportExcelDTO()
|
datas.addAll(p.getChildren().stream().map(c -> new BomExportExcelDTO()
|
||||||
.setParentNo(p.getMaterialNo())
|
.setParentNo(p.getMaterialNo())
|
||||||
.setParentDrawingNo(p.getDrawingNo())
|
.setParentDrawingNo(p.getDrawingNo())
|
||||||
.setParentDesc(p.getMaterialDesc())
|
.setParentDesc(p.getMaterialDesc())
|
||||||
|
|
@ -266,7 +272,7 @@ public class BomControllerService {
|
||||||
.setNum(String.valueOf(c.getNum()))).toList());
|
.setNum(String.valueOf(c.getNum()))).toList());
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
if (CollectionUtil.isEmpty(datas)){
|
if (CollectionUtil.isEmpty(datas)) {
|
||||||
datas.add(new BomExportExcelDTO());
|
datas.add(new BomExportExcelDTO());
|
||||||
}
|
}
|
||||||
response.setContentType(MediaType.APPLICATION_OCTET_STREAM_VALUE);
|
response.setContentType(MediaType.APPLICATION_OCTET_STREAM_VALUE);
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue