移动破调整

This commit is contained in:
jing's 2024-01-12 14:38:16 +08:00
parent 9cebd0f021
commit 5aef3c1fe5
9 changed files with 87 additions and 39 deletions

View File

@ -346,21 +346,16 @@ public class OptionalEbomApi extends BaseApi {
@PostMapping("publish") @PostMapping("publish")
@ApiOperation("发布生成") @ApiOperation("发布生成")
public ResultVO<String> publish(@RequestBody OptionalEbomPublishAddDTO dto) { public ResultVO<String> publish(@RequestBody OptionalEbomPublishAddDTO dto) {
if(StrUtil.isEmpty(dto.getGoodsDesc())){
return ResultVO.error("输入制作/发货包信息"); if(Objects.isNull(dto.getRowId())){
} return ResultVO.error("发布的数据rowId不能为空");
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(StrUtil.isEmpty(dto.getMachineNo())){
return ResultVO.error("输入机台号");
}
return publishMaterialService.publishWork(dto); return publishMaterialService.publishWork(dto);

View File

@ -18,7 +18,7 @@ public class OptionalEbomPublishAddDTO implements Serializable {
@ApiModelProperty(value = "发布数据id") @ApiModelProperty(value = "发布数据id")
private Long rowId; private Long rowId;
@ApiModelProperty(value = "制作/发货包") @ApiModelProperty(value = "整机制作/发货包")
private String goodsDesc; private String goodsDesc;
@ApiModelProperty(value = "机械部分") @ApiModelProperty(value = "机械部分")
@ -27,6 +27,10 @@ public class OptionalEbomPublishAddDTO implements Serializable {
@ApiModelProperty(value = "电控制作/发货") @ApiModelProperty(value = "电控制作/发货")
private String electricDesc; private String electricDesc;
@ApiModelProperty(value = "机台号")
private String machineNo;

View File

@ -112,4 +112,9 @@ public class OptionalEbomMainEntity implements Serializable {
@TableField(value = "real_name") @TableField(value = "real_name")
@ApiModelProperty(value = "创建人姓名") @ApiModelProperty(value = "创建人姓名")
private String realName; private String realName;
@TableField(value = "serial_no")
@ApiModelProperty(value = "序号")
private Integer serialNo;
} }

View File

@ -83,4 +83,7 @@ public class OptionalEbomMainVO implements Serializable {
@ApiModelProperty(value = "创建人姓名") @ApiModelProperty(value = "创建人姓名")
private String realName; private String realName;
@ApiModelProperty(value = "序号")
private Integer serialNo;
} }

View File

@ -71,12 +71,12 @@ public class MaterialService {
//测试用 生成编码 //测试用 生成编码
// try { // try {
// Thread.sleep(100); // Thread.sleep(100);
// }catch (Exception e){ // }catch (Exception e){
// //
// } // }
// String s=DateUtil.format(DateUtil.date(), "yyyyMMddHHmmssSSS"); // String s=DateUtil.format(DateUtil.date(), "yyyyMMddHHmmssSSS");
HttpUtils httpUtils = new HttpUtils(); HttpUtils httpUtils = new HttpUtils();
@ -89,6 +89,8 @@ public class MaterialService {
return result.getData().toString(); return result.getData().toString();
} }
VUtils.isTure(true).throwMessage("申请物料失败" + result.getMsg()); VUtils.isTure(true).throwMessage("申请物料失败" + result.getMsg());
return s; return s;
} }

View File

@ -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.entity.*;
import com.nflg.product.bomnew.pojo.vo.OptionalEbomImportChildVO; import com.nflg.product.bomnew.pojo.vo.OptionalEbomImportChildVO;
import com.nflg.product.bomnew.service.*; import com.nflg.product.bomnew.service.*;
import com.nflg.product.bomnew.util.OrderNoUtil;
import nflg.product.common.constant.STATE; import nflg.product.common.constant.STATE;
import nflg.product.common.vo.ResultVO; import nflg.product.common.vo.ResultVO;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
@ -82,15 +83,42 @@ public class PublishMaterialService {
return ResultVO.error("发布未查询到物料数据"); return ResultVO.error("发布未查询到物料数据");
} }
List<OptionalMbomMaterialEntity> 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<OptionalMbomMaterialEntity> materialList = new ArrayList<>();
try { try {
//第一层级 机型发货 和制作 //第一层级 机型发货 和制作
Long parentId = genVirtualPackLevel1(materialList, optionalEbomPublishAddDTO.getRowId(), optionalEbomPublishAddDTO.getGoodsDesc()); Long parentId = genVirtualPackLevel1(materialList, optionalEbomPublishAddDTO.getRowId(), optionalEbomPublishAddDTO.getGoodsDesc());
//电控部分 //电控部分
genVirtualPackElectricLevel2(materialList, optionalEbomPublishAddDTO.getRowId(), parentId, optionalEbomPublishAddDTO.getElectricDesc()); 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); boolean ok = optionalMbomMaterialService.saveBatch(materialList);
@ -133,7 +161,7 @@ public class PublishMaterialService {
String sendMaterialName = goodsDesc.concat("(发货)"); String sendMaterialName = goodsDesc.concat("(发货)");
sendPack.setRowId(IdWorker.getId()); sendPack.setRowId(IdWorker.getId());
sendPack.setCreatedBy(SessionUtil.getUserCode()); sendPack.setCreatedBy(SessionUtil.getUserCode());
sendPack.setCreatedTime(DateUtil.now()); sendPack.setCreatedTime(DateUtil.now());
sendPack.setMaterialName(sendMaterialName); sendPack.setMaterialName(sendMaterialName);
sendPack.setMaterialDesc(sendMaterialName); sendPack.setMaterialDesc(sendMaterialName);
sendPack.setRootRowId(rootRowId); sendPack.setRootRowId(rootRowId);
@ -214,10 +242,10 @@ public class PublishMaterialService {
* @param materialList * @param materialList
* @param rootRowId * @param rootRowId
* @param parentId * @param parentId
* @param desc
* @return * @return
*/ */
private void genVirtualPackMachineLevel2(List<OptionalMbomMaterialEntity> materialList, List<OptionalEbomImportChildVO> optionList, Long rootRowId, Long parentId, String desc) throws NflgBusinessException { private void genVirtualPackMachineLevel2(List<OptionalMbomMaterialEntity> materialList, List<OptionalEbomImportChildVO> optionList, Long rootRowId, Long parentId,Long deviceRowId) throws NflgBusinessException {
List<Long> materialNoList = optionList.stream().filter(u-> u.getPartType().equals(OptionalBomConstant.PartTypeEnum.PART_TYPE_RADIO.getValue()) ).map(OptionalEbomImportChildVO::getMaterialNo).map(Long::parseLong).collect(Collectors.toList()); List<Long> 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); Collections.sort(materialNoList);
@ -230,27 +258,25 @@ public class PublishMaterialService {
OptionalMbomMaterialEntity material; OptionalMbomMaterialEntity material;
if (optionalMbomCompareEntity == null) { if (optionalMbomCompareEntity == null) {
material = new OptionalMbomMaterialEntity(); material = new OptionalMbomMaterialEntity();
//第一个空格位置图号 OptionalEbomMainEntity desc= SpringUtil.getBean(OptionalEbomMainService.class).getById(deviceRowId);
String drawingNo = StrUtil.sub(desc, 0, desc.indexOf(" "));
//物料名称和物料描述=机型+流水号+NF(机械部分)
//图号=机型+流水号+NF
String drawingNo =StrUtil.format("{}{}",desc.getDeviceNo(), OrderNoUtil.orderNo2Str(desc.getSerialNo())).concat("NF");
String materialName=drawingNo.concat("(机械部分)");
material.setRowId(IdWorker.getId()); material.setRowId(IdWorker.getId());
material.setDrawingNo(drawingNo); material.setDrawingNo(drawingNo);
material.setParentRowId(parentId); material.setParentRowId(parentId);
material.setRootRowId(rootRowId); material.setRootRowId(rootRowId);
material.setCreatedBy(SessionUtil.getUserCode()); material.setCreatedBy(SessionUtil.getUserCode());
material.setCreatedTime(DateUtil.now()); material.setCreatedTime(DateUtil.now());
material.setMaterialName(desc); material.setMaterialName(materialName);
material.setMaterialDesc(desc); material.setMaterialDesc(materialName);
material.setMaterialNo("");//申请物料号 material.setMaterialNo("");//申请物料号
try { try {
String data = materialService.addMaterial(material.getDrawingNo(), material.getMaterialName(), OptionalBomConstant.PublishMaterialEnum.MACHINE.getCategory()); String data = materialService.addMaterial(material.getDrawingNo(), material.getMaterialName(), OptionalBomConstant.PublishMaterialEnum.MACHINE.getCategory());
// ResultVO<String> resultVO = JSON.parseObject(data, new com.alibaba.fastjson.TypeReference<ResultVO<String>>(){});
// 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); material.setMaterialNo(data);
} catch (Exception e) { } catch (Exception e) {
throw new NflgBusinessException(STATE.Error, "机械部分," + e.getMessage()); throw new NflgBusinessException(STATE.Error, "机械部分," + e.getMessage());
@ -267,12 +293,22 @@ public class PublishMaterialService {
optionalMbomCompareEntity.setCreatedTime(DateUtil.now()); optionalMbomCompareEntity.setCreatedTime(DateUtil.now());
optionalMbomCompareEntity.setChildRowIds(result); optionalMbomCompareEntity.setChildRowIds(result);
optionalMbomCompareService.save(optionalMbomCompareEntity); 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) { } catch (Exception e) {
e.printStackTrace(); e.printStackTrace();
} }
} else { //同物料号 } else { //同物料号
material = Convert.convert(new TypeReference<OptionalMbomMaterialEntity>() { material = Convert.convert(new TypeReference<OptionalMbomMaterialEntity>() {
}, optionalMbomCompareEntity); }, optionalMbomCompareEntity);
@ -291,6 +327,7 @@ public class PublishMaterialService {
materialList.add(material); materialList.add(material);
List<OptionalMbomMaterialEntity> optionConvertList = Convert.toList(OptionalMbomMaterialEntity.class, optionList); List<OptionalMbomMaterialEntity> optionConvertList = Convert.toList(OptionalMbomMaterialEntity.class, optionList);
optionConvertList.forEach(item -> { optionConvertList.forEach(item -> {
item.setRowId(null);
item.setCreatedBy(SessionUtil.getUserCode()); item.setCreatedBy(SessionUtil.getUserCode());
item.setCreatedTime(DateUtil.now()); item.setCreatedTime(DateUtil.now());
item.setRootRowId(rootRowId); item.setRootRowId(rootRowId);

View File

@ -94,7 +94,7 @@
</select> </select>
<!--and (t1.material_no!=null or t1.material_no!='')-->
<select id="getPreviewOptionList" resultType="com.nflg.product.bomnew.pojo.vo.OptionalEbomImportChildVO" > <select id="getPreviewOptionList" resultType="com.nflg.product.bomnew.pojo.vo.OptionalEbomImportChildVO" >
SELECT t1.row_id, SELECT t1.row_id,
t1.parent_row_id, t1.parent_row_id,
@ -114,7 +114,7 @@
t1.choose_status, t1.choose_status,
t2.choose_status as option_status from t2.choose_status as option_status from
t_optional_ebom_config_r as t2 LEFT JOIN t_optional_ebom_import_child as t1 on t2.option_row_id=t1.row_id t_optional_ebom_config_r as t2 LEFT JOIN t_optional_ebom_import_child as t1 on t2.option_row_id=t1.row_id
where t1.is_enable=1 and t2.choose_status =1 and t2.parent_row_id=#{rowId} and (t1.material_no!=null or t1.material_no!='') where t1.is_enable=1 and t2.choose_status =1 and t2.parent_row_id=#{rowId} and t1.material_name!='无'
</select> </select>

View File

@ -58,7 +58,8 @@ row_id,parent_row_id,root_row_id,material_no,material_name,material_desc,drawing
<if test="query.startDate != null and query.startDate != '' and query.endDate != null and query.endDate != ''"> <if test="query.startDate != null and query.startDate != '' and query.endDate != null and query.endDate != ''">
<![CDATA[ and created_time >= #{query.startDate} and created_time <= #{query.endDate}]]> <![CDATA[ and created_time >= #{query.startDate} and created_time <= #{query.endDate}]]>
</if> </if>
order by created_time asc
limit 0,1000
</select> </select>

View File

@ -16,12 +16,13 @@
<result property="realName" column="real_name" /> <result property="realName" column="real_name" />
<result property="createdTime" column="created_time" /> <result property="createdTime" column="created_time" />
<result property="updatedTime" column="updated_time" /> <result property="updatedTime" column="updated_time" />
<result property="serialNo" column="serial_no" />
</resultMap> </resultMap>
<sql id="Base_Column_List"> <sql id="Base_Column_List">
row_id 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
</sql> </sql>
<sql id="where_whr"> <sql id="where_whr">