From 5aef3c1fe567f6ec407632f39aa736e595d04efe Mon Sep 17 00:00:00 2001 From: jing's Date: Fri, 12 Jan 2024 14:38:16 +0800 Subject: [PATCH] =?UTF-8?q?=E7=A7=BB=E5=8A=A8=E7=A0=B4=E8=B0=83=E6=95=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../bomnew/api/user/OptionalEbomApi.java | 19 ++--- .../pojo/dto/OptionalEbomPublishAddDTO.java | 6 +- .../pojo/entity/OptionalEbomMainEntity.java | 5 ++ .../bomnew/pojo/vo/OptionalEbomMainVO.java | 3 + .../bomnew/service/MaterialService.java | 14 ++-- .../aggreg/PublishMaterialService.java | 69 ++++++++++++++----- .../master/OptionalEbomConfigMapper.xml | 4 +- .../master/OptionalEbomImportChildMapper.xml | 3 +- .../mapper/master/OptionalEbomMainMapper.xml | 3 +- 9 files changed, 87 insertions(+), 39 deletions(-) diff --git a/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/api/user/OptionalEbomApi.java b/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/api/user/OptionalEbomApi.java index 980786d5..11cad712 100644 --- a/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/api/user/OptionalEbomApi.java +++ b/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/api/user/OptionalEbomApi.java @@ -346,21 +346,16 @@ public class OptionalEbomApi extends BaseApi { @PostMapping("publish") @ApiOperation("发布生成") public ResultVO publish(@RequestBody OptionalEbomPublishAddDTO dto) { - if(StrUtil.isEmpty(dto.getGoodsDesc())){ - return ResultVO.error("输入制作/发货包信息"); - } - if(StrUtil.isEmpty(dto.getMachineDesc())){ - return ResultVO.error("输入机械部分信息"); - }else{ - if(!dto.getMachineDesc().contains(" ")){ - return ResultVO.error("机械部分格式错误"); - } - } - if(StrUtil.isEmpty(dto.getElectricDesc())){ - return ResultVO.error("输入电控制作/发货信息"); + + if(Objects.isNull(dto.getRowId())){ + return ResultVO.error("发布的数据rowId不能为空"); } + if(StrUtil.isEmpty(dto.getMachineNo())){ + return ResultVO.error("输入机台号"); + } + return publishMaterialService.publishWork(dto); diff --git a/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/pojo/dto/OptionalEbomPublishAddDTO.java b/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/pojo/dto/OptionalEbomPublishAddDTO.java index 6b628712..6d7fdc71 100644 --- a/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/pojo/dto/OptionalEbomPublishAddDTO.java +++ b/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/pojo/dto/OptionalEbomPublishAddDTO.java @@ -18,7 +18,7 @@ public class OptionalEbomPublishAddDTO implements Serializable { @ApiModelProperty(value = "发布数据id") private Long rowId; - @ApiModelProperty(value = "制作/发货包") + @ApiModelProperty(value = "整机制作/发货包") private String goodsDesc; @ApiModelProperty(value = "机械部分") @@ -27,6 +27,10 @@ public class OptionalEbomPublishAddDTO implements Serializable { @ApiModelProperty(value = "电控制作/发货") private String electricDesc; + @ApiModelProperty(value = "机台号") + private String machineNo; + + diff --git a/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/pojo/entity/OptionalEbomMainEntity.java b/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/pojo/entity/OptionalEbomMainEntity.java index e9106cc8..15fb71e9 100644 --- a/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/pojo/entity/OptionalEbomMainEntity.java +++ b/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/pojo/entity/OptionalEbomMainEntity.java @@ -112,4 +112,9 @@ public class OptionalEbomMainEntity implements Serializable { @TableField(value = "real_name") @ApiModelProperty(value = "创建人姓名") private String realName; + + @TableField(value = "serial_no") + @ApiModelProperty(value = "序号") + private Integer serialNo; + } diff --git a/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/pojo/vo/OptionalEbomMainVO.java b/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/pojo/vo/OptionalEbomMainVO.java index 83edcba7..5b79496b 100644 --- a/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/pojo/vo/OptionalEbomMainVO.java +++ b/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/pojo/vo/OptionalEbomMainVO.java @@ -83,4 +83,7 @@ public class OptionalEbomMainVO implements Serializable { @ApiModelProperty(value = "创建人姓名") private String realName; + @ApiModelProperty(value = "序号") + private Integer serialNo; + } diff --git a/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/MaterialService.java b/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/MaterialService.java index b45e38f2..6aee1a32 100644 --- a/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/MaterialService.java +++ b/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/MaterialService.java @@ -71,12 +71,12 @@ public class MaterialService { //测试用 生成编码 - // try { - // Thread.sleep(100); - // }catch (Exception e){ - // - // } - // String s=DateUtil.format(DateUtil.date(), "yyyyMMddHHmmssSSS"); +// try { +// Thread.sleep(100); +// }catch (Exception e){ +// +// } +// String s=DateUtil.format(DateUtil.date(), "yyyyMMddHHmmssSSS"); HttpUtils httpUtils = new HttpUtils(); @@ -89,6 +89,8 @@ public class MaterialService { return result.getData().toString(); } VUtils.isTure(true).throwMessage("申请物料失败" + result.getMsg()); + + return s; } diff --git a/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/aggreg/PublishMaterialService.java b/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/aggreg/PublishMaterialService.java index 401abf0f..51d78063 100644 --- a/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/aggreg/PublishMaterialService.java +++ b/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/aggreg/PublishMaterialService.java @@ -20,6 +20,7 @@ import com.nflg.product.bomnew.pojo.dto.OptionalEbomPublishAddDTO; import com.nflg.product.bomnew.pojo.entity.*; import com.nflg.product.bomnew.pojo.vo.OptionalEbomImportChildVO; import com.nflg.product.bomnew.service.*; +import com.nflg.product.bomnew.util.OrderNoUtil; import nflg.product.common.constant.STATE; import nflg.product.common.vo.ResultVO; import org.springframework.stereotype.Service; @@ -82,15 +83,42 @@ public class PublishMaterialService { return ResultVO.error("发布未查询到物料数据"); } - List materialList = new ArrayList<>(); + OptionalEbomConfigEntity configEntity=SpringUtil.getBean(OptionalEbomConfigService .class).getById(optionalEbomPublishAddDTO.getRowId()); + + if(configEntity ==null ){ + return ResultVO.error(StrUtil.format("{} 暂存数据查询到",optionalEbomPublishAddDTO.getRowId())); + } + OptionalEbomMainEntity mainEntity=SpringUtil.getBean(OptionalEbomMainService.class).getById(configEntity.getParentRowId()); + + if(mainEntity ==null ){ + return ResultVO.error(StrUtil.format("{} 设备数据未查询到",configEntity.getParentRowId())); + } + + //整机物料名称和物料描述=机型+机型名称+机台号+.0 + optionalEbomPublishAddDTO.setGoodsDesc(StrUtil.format("{}{}{}", + mainEntity.getDeviceNo(), + mainEntity.getDeviceName(), + optionalEbomPublishAddDTO.getMachineNo() + ).concat(".0")); + + //电控发货物料生成规则: 规则:物料名称和物料描述=(机型+机台号+.0) + optionalEbomPublishAddDTO.setElectricDesc(StrUtil.format("{}{}", + mainEntity.getDeviceNo(), + optionalEbomPublishAddDTO.getMachineNo() + ).concat(".0")); + + + List materialList = new ArrayList<>(); try { + + //第一层级 机型发货 和制作 Long parentId = genVirtualPackLevel1(materialList, optionalEbomPublishAddDTO.getRowId(), optionalEbomPublishAddDTO.getGoodsDesc()); //电控部分 genVirtualPackElectricLevel2(materialList, optionalEbomPublishAddDTO.getRowId(), parentId, optionalEbomPublishAddDTO.getElectricDesc()); //机械部分申请 - genVirtualPackMachineLevel2(materialList, optionList, optionalEbomPublishAddDTO.getRowId(), parentId, optionalEbomPublishAddDTO.getMachineDesc()); + genVirtualPackMachineLevel2(materialList, optionList, optionalEbomPublishAddDTO.getRowId(), parentId,mainEntity.getRowId() ); boolean ok = optionalMbomMaterialService.saveBatch(materialList); @@ -133,7 +161,7 @@ public class PublishMaterialService { String sendMaterialName = goodsDesc.concat("(发货)"); sendPack.setRowId(IdWorker.getId()); sendPack.setCreatedBy(SessionUtil.getUserCode()); - sendPack.setCreatedTime(DateUtil.now()); + sendPack.setCreatedTime(DateUtil.now()); sendPack.setMaterialName(sendMaterialName); sendPack.setMaterialDesc(sendMaterialName); sendPack.setRootRowId(rootRowId); @@ -214,10 +242,10 @@ public class PublishMaterialService { * @param materialList * @param rootRowId * @param parentId - * @param desc + * @return */ - private void genVirtualPackMachineLevel2(List materialList, List optionList, Long rootRowId, Long parentId, String desc) throws NflgBusinessException { + private void genVirtualPackMachineLevel2(List materialList, List optionList, Long rootRowId, Long parentId,Long deviceRowId) throws NflgBusinessException { List materialNoList = optionList.stream().filter(u-> u.getPartType().equals(OptionalBomConstant.PartTypeEnum.PART_TYPE_RADIO.getValue()) ).map(OptionalEbomImportChildVO::getMaterialNo).map(Long::parseLong).collect(Collectors.toList()); Collections.sort(materialNoList); @@ -230,27 +258,25 @@ public class PublishMaterialService { OptionalMbomMaterialEntity material; if (optionalMbomCompareEntity == null) { material = new OptionalMbomMaterialEntity(); - //第一个空格位置图号 - String drawingNo = StrUtil.sub(desc, 0, desc.indexOf(" ")); + OptionalEbomMainEntity desc= SpringUtil.getBean(OptionalEbomMainService.class).getById(deviceRowId); + + //物料名称和物料描述=机型+流水号+NF(机械部分) + //图号=机型+流水号+NF + String drawingNo =StrUtil.format("{}{}",desc.getDeviceNo(), OrderNoUtil.orderNo2Str(desc.getSerialNo())).concat("NF"); + String materialName=drawingNo.concat("(机械部分)"); material.setRowId(IdWorker.getId()); material.setDrawingNo(drawingNo); material.setParentRowId(parentId); material.setRootRowId(rootRowId); material.setCreatedBy(SessionUtil.getUserCode()); material.setCreatedTime(DateUtil.now()); - material.setMaterialName(desc); - material.setMaterialDesc(desc); + material.setMaterialName(materialName); + material.setMaterialDesc(materialName); material.setMaterialNo("");//申请物料号 try { String data = materialService.addMaterial(material.getDrawingNo(), material.getMaterialName(), OptionalBomConstant.PublishMaterialEnum.MACHINE.getCategory()); -// ResultVO resultVO = JSON.parseObject(data, new com.alibaba.fastjson.TypeReference>(){}); -// if (resultVO == null) { -// throw new NflgBusinessException(STATE.Error, "机械部分物料编码申请失败,联系管理员," + data); -// } -// if (!Objects.equal(resultVO.getState(), STATE.Success.getState())) { -// throw new NflgBusinessException(STATE.Error, resultVO.getMsg()); -// } + material.setMaterialNo(data); } catch (Exception e) { throw new NflgBusinessException(STATE.Error, "机械部分," + e.getMessage()); @@ -267,12 +293,22 @@ public class PublishMaterialService { optionalMbomCompareEntity.setCreatedTime(DateUtil.now()); optionalMbomCompareEntity.setChildRowIds(result); optionalMbomCompareService.save(optionalMbomCompareEntity); + + //更新序列号 + OptionalEbomMainEntity updateDevice=new OptionalEbomMainEntity(); + updateDevice.setRowId(desc.getRowId()); + updateDevice.setSerialNo(desc.getSerialNo()+1); + SpringUtil.getBean(OptionalEbomMainService.class).updateById(updateDevice); + } + } catch (Exception e) { e.printStackTrace(); } + + } else { //同物料号 material = Convert.convert(new TypeReference() { }, optionalMbomCompareEntity); @@ -291,6 +327,7 @@ public class PublishMaterialService { materialList.add(material); List optionConvertList = Convert.toList(OptionalMbomMaterialEntity.class, optionList); optionConvertList.forEach(item -> { + item.setRowId(null); item.setCreatedBy(SessionUtil.getUserCode()); item.setCreatedTime(DateUtil.now()); item.setRootRowId(rootRowId); diff --git a/nflg_project_dev/nflg-bom-new/src/main/resources/mapper/master/OptionalEbomConfigMapper.xml b/nflg_project_dev/nflg-bom-new/src/main/resources/mapper/master/OptionalEbomConfigMapper.xml index 7e0b61b6..ce0b4cd0 100644 --- a/nflg_project_dev/nflg-bom-new/src/main/resources/mapper/master/OptionalEbomConfigMapper.xml +++ b/nflg_project_dev/nflg-bom-new/src/main/resources/mapper/master/OptionalEbomConfigMapper.xml @@ -94,7 +94,7 @@ - + diff --git a/nflg_project_dev/nflg-bom-new/src/main/resources/mapper/master/OptionalEbomImportChildMapper.xml b/nflg_project_dev/nflg-bom-new/src/main/resources/mapper/master/OptionalEbomImportChildMapper.xml index d6bd7653..96d44d46 100644 --- a/nflg_project_dev/nflg-bom-new/src/main/resources/mapper/master/OptionalEbomImportChildMapper.xml +++ b/nflg_project_dev/nflg-bom-new/src/main/resources/mapper/master/OptionalEbomImportChildMapper.xml @@ -58,7 +58,8 @@ row_id,parent_row_id,root_row_id,material_no,material_name,material_desc,drawing = #{query.startDate} and created_time <= #{query.endDate}]]> - + order by created_time asc + limit 0,1000 diff --git a/nflg_project_dev/nflg-bom-new/src/main/resources/mapper/master/OptionalEbomMainMapper.xml b/nflg_project_dev/nflg-bom-new/src/main/resources/mapper/master/OptionalEbomMainMapper.xml index 60e4a0a7..e08c702d 100644 --- a/nflg_project_dev/nflg-bom-new/src/main/resources/mapper/master/OptionalEbomMainMapper.xml +++ b/nflg_project_dev/nflg-bom-new/src/main/resources/mapper/master/OptionalEbomMainMapper.xml @@ -16,12 +16,13 @@ + row_id - ,device_no,device_name,remark,is_enable,dept_row_id,dept_name,created_by,created_time,updated_time,updated_by,real_name,is_del + ,device_no,device_name,remark,is_enable,dept_row_id,dept_name,created_by,created_time,updated_time,updated_by,real_name,is_del,serial_no