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
|
||||
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()
|
||||
.setParentId(0L)
|
||||
.setNo(dto.getMaterialNo())
|
||||
.setDescribe(dto.getMaterialDesc())
|
||||
.setDrawingNo(dto.getDrawingNo())
|
||||
.setWeight(dto.getMaterialWeight())
|
||||
.setNum(dto.getNum())
|
||||
.setWeight(totalWight)
|
||||
.setNum(new BigDecimal(1))
|
||||
.setCreateBy(UserUtil.getUserName())
|
||||
.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())
|
||||
.setDescribe(it.getMaterialDesc())
|
||||
.setDrawingNo(it.getDrawingNo())
|
||||
|
|
@ -86,7 +92,7 @@ public class BomControllerService {
|
|||
.setDrawingNo(it.getDrawingNo())
|
||||
.setWeight(it.getMaterialWeight())
|
||||
.setNum(it.getNum());
|
||||
if (Objects.isNull(wmsBom.getId())){
|
||||
if (Objects.isNull(wmsBom.getId())) {
|
||||
wmsBom.setParentId(request.getId());
|
||||
wmsBom.setCreateBy(UserUtil.getUserName());
|
||||
wmsBom.setCreateTime(LocalDateTime.now());
|
||||
|
|
@ -108,14 +114,14 @@ public class BomControllerService {
|
|||
} else {
|
||||
response.setContentType(MediaType.APPLICATION_OCTET_STREAM_VALUE);
|
||||
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()
|
||||
.addSheet(new ListSheet<>(data))
|
||||
.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"));
|
||||
}
|
||||
}catch (Exception e){
|
||||
} catch (Exception e) {
|
||||
return ApiResult.error(STATE.BusinessError, "保存文件出错");
|
||||
}
|
||||
}
|
||||
|
|
@ -135,7 +141,7 @@ public class BomControllerService {
|
|||
if (Objects.isNull(pm)) {
|
||||
sb.append("父级物料编号无效");
|
||||
} 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)) {
|
||||
pb = new WmsBom()
|
||||
.setId(IdUtil.getSnowflakeNextId())
|
||||
|
|
@ -152,12 +158,12 @@ public class BomControllerService {
|
|||
}
|
||||
if (StrUtil.isBlank(dto.getChildNo())) {
|
||||
sb.append("子级物料编号不能为空;");
|
||||
}else {
|
||||
} else {
|
||||
BomMaterialDTO cm = bomMaterialService.getMaterialInfo(dto.getChildNo());
|
||||
if (Objects.isNull(cm)) {
|
||||
sb.append("子级物料编号无效;");
|
||||
}else if (bom.getParentId()!=0L){
|
||||
WmsBom cb=bomService.lambdaQuery().eq(WmsBom::getParentId, bom.getParentId()).eq(WmsBom::getNo, dto.getChildNo()).one();
|
||||
} else if (bom.getParentId() != 0L) {
|
||||
WmsBom cb = bomService.lambdaQuery().eq(WmsBom::getParentId, bom.getParentId()).eq(WmsBom::getNo, dto.getChildNo()).one();
|
||||
if (Objects.isNull(cb)) {
|
||||
bom.setNo(dto.getChildNo())
|
||||
.setDrawingNo(cm.getDrawingNo())
|
||||
|
|
@ -175,18 +181,18 @@ public class BomControllerService {
|
|||
}
|
||||
if (StrUtil.isBlank(dto.getNum())) {
|
||||
sb.append("数量不能为空;");
|
||||
} else if (!NumberUtils.isCreatable(dto.getNum())){
|
||||
} else if (!NumberUtils.isCreatable(dto.getNum())) {
|
||||
sb.append("数量格式错误;");
|
||||
}else {
|
||||
} else {
|
||||
bom.setNum(new BigDecimal(dto.getNum()));
|
||||
}
|
||||
dto.setError(sb.toString());
|
||||
}
|
||||
if (data.stream().noneMatch(it -> StrUtil.isNotBlank(it.getError()))) {
|
||||
if (CollectionUtil.isNotEmpty(bomForSave)){
|
||||
if (CollectionUtil.isNotEmpty(bomForSave)) {
|
||||
bomService.saveBatch(bomForSave);
|
||||
}
|
||||
if (CollectionUtil.isNotEmpty(bomForUpdate)){
|
||||
if (CollectionUtil.isNotEmpty(bomForUpdate)) {
|
||||
bomService.updateBatchById(bomForUpdate);
|
||||
}
|
||||
return true;
|
||||
|
|
@ -194,25 +200,25 @@ public class BomControllerService {
|
|||
return false;
|
||||
}
|
||||
|
||||
private String getResultName(String name){
|
||||
int index=name.lastIndexOf(".");
|
||||
return name.substring(0,index)+"_结果"+"."+name.substring(index+1);
|
||||
private String getResultName(String name) {
|
||||
int index = name.lastIndexOf(".");
|
||||
return name.substring(0, index) + "_结果" + "." + name.substring(index + 1);
|
||||
}
|
||||
|
||||
public void exportSelect(HttpServletResponse response, List<Long> ids) throws IOException {
|
||||
if (CollectionUtil.isEmpty(ids)){
|
||||
if (CollectionUtil.isEmpty(ids)) {
|
||||
exportTemplate(response);
|
||||
}else {
|
||||
} else {
|
||||
List<WmsBom> parents = bomService.lambdaQuery().eq(WmsBom::getParentId, 0L).in(WmsBom::getId, ids).list();
|
||||
if (CollectionUtil.isEmpty(parents)){
|
||||
if (CollectionUtil.isEmpty(parents)) {
|
||||
exportTemplate(response);
|
||||
return;
|
||||
}
|
||||
List<BomExportExcelDTO> datas=new ArrayList<>();
|
||||
parents.forEach(p->{
|
||||
List<WmsBom> children=bomService.lambdaQuery().eq(WmsBom::getParentId, p.getId()).list();
|
||||
if (CollectionUtil.isNotEmpty(children)){
|
||||
datas.addAll(children.stream().map(c->new BomExportExcelDTO()
|
||||
List<BomExportExcelDTO> datas = new ArrayList<>();
|
||||
parents.forEach(p -> {
|
||||
List<WmsBom> children = bomService.lambdaQuery().eq(WmsBom::getParentId, p.getId()).list();
|
||||
if (CollectionUtil.isNotEmpty(children)) {
|
||||
datas.addAll(children.stream().map(c -> new BomExportExcelDTO()
|
||||
.setParentNo(p.getNo())
|
||||
.setParentDrawingNo(p.getDrawingNo())
|
||||
.setParentDesc(p.getDescribe())
|
||||
|
|
@ -222,7 +228,7 @@ public class BomControllerService {
|
|||
.setNum(String.valueOf(c.getNum()))).toList());
|
||||
}
|
||||
});
|
||||
if (CollectionUtil.isEmpty(datas)){
|
||||
if (CollectionUtil.isEmpty(datas)) {
|
||||
exportTemplate(response);
|
||||
return;
|
||||
}
|
||||
|
|
@ -237,7 +243,7 @@ public class BomControllerService {
|
|||
private void exportTemplate(HttpServletResponse response) throws IOException {
|
||||
response.setContentType(MediaType.APPLICATION_OCTET_STREAM_VALUE);
|
||||
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()
|
||||
.setParentNo("父级物料编号")
|
||||
.setParentDrawingNo("父级物料图号")
|
||||
|
|
@ -252,11 +258,11 @@ public class BomControllerService {
|
|||
}
|
||||
|
||||
public void exportSearch(HttpServletResponse response, @Valid BomSearchQO request) throws IOException {
|
||||
List<BomMaterialVO> list=bomService.searchNonPage(request);
|
||||
List<BomExportExcelDTO> datas=new ArrayList<>();
|
||||
list.forEach(p->{
|
||||
if (CollectionUtil.isNotEmpty(p.getChildren())){
|
||||
datas.addAll(p.getChildren().stream().map(c->new BomExportExcelDTO()
|
||||
List<BomMaterialVO> list = bomService.searchNonPage(request);
|
||||
List<BomExportExcelDTO> datas = new ArrayList<>();
|
||||
list.forEach(p -> {
|
||||
if (CollectionUtil.isNotEmpty(p.getChildren())) {
|
||||
datas.addAll(p.getChildren().stream().map(c -> new BomExportExcelDTO()
|
||||
.setParentNo(p.getMaterialNo())
|
||||
.setParentDrawingNo(p.getDrawingNo())
|
||||
.setParentDesc(p.getMaterialDesc())
|
||||
|
|
@ -266,7 +272,7 @@ public class BomControllerService {
|
|||
.setNum(String.valueOf(c.getNum()))).toList());
|
||||
}
|
||||
});
|
||||
if (CollectionUtil.isEmpty(datas)){
|
||||
if (CollectionUtil.isEmpty(datas)) {
|
||||
datas.add(new BomExportExcelDTO());
|
||||
}
|
||||
response.setContentType(MediaType.APPLICATION_OCTET_STREAM_VALUE);
|
||||
|
|
|
|||
Loading…
Reference in New Issue