diff --git a/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/api/user/MBomApi.java b/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/api/user/MBomApi.java index cfc508d7..9109a6ae 100644 --- a/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/api/user/MBomApi.java +++ b/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/api/user/MBomApi.java @@ -1,5 +1,7 @@ package com.nflg.product.bomnew.api.user; +import cn.hutool.core.collection.CollUtil; +import cn.hutool.core.collection.CollectionUtil; import cn.hutool.core.util.StrUtil; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; @@ -9,13 +11,18 @@ import com.nflg.product.bomnew.constant.FactoryCodeEnum; import com.nflg.product.bomnew.constant.MBomConstantEnum; import com.nflg.product.bomnew.constant.ValueEnum; import com.nflg.product.bomnew.pojo.dto.BomNewMBomChildDTO; +import com.nflg.product.bomnew.pojo.dto.BomNewMbomApplyBackMaterialDTO; +import com.nflg.product.bomnew.pojo.query.BomNewMbomBackMaterialQuery; import com.nflg.product.bomnew.pojo.query.BomNewMbomParentQuery; +import com.nflg.product.bomnew.pojo.vo.BomNewMbomBackMaterialVO; import com.nflg.product.bomnew.pojo.vo.BomNewMbomDetailVO; import com.nflg.product.bomnew.pojo.vo.BomNewMbomMiddleVO; import com.nflg.product.bomnew.pojo.vo.BomNewMbomParentVO; +import com.nflg.product.bomnew.service.BomNewMbomBackMaterialService; import com.nflg.product.bomnew.service.BomNewMbomDetailService; import com.nflg.product.bomnew.service.BomNewMbomParentService; import com.nflg.product.bomnew.util.EnumUtils; +import com.nflg.product.bomnew.util.VUtils; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiParam; @@ -47,6 +54,9 @@ public class MBomApi extends BaseApi { @Resource private BomNewMbomDetailService bomNewMbomDetailService; + @Resource + private BomNewMbomBackMaterialService bomNewMbomBackMaterialService; + /** * 分页查询所有数据 @@ -91,7 +101,7 @@ public class MBomApi extends BaseApi { @PostMapping("superSaterialList") @ApiOperation("设置超级物料列表") - public ResultVO> superSaterialList(@RequestParam(value = "rowId") Long rowId) { + public ResultVO> superSaterialList(@RequestParam(value = "rowId") Long rowId) { if (Objects.isNull(rowId)) { throw new NflgBusinessException(STATE.ParamErr, "选择行后操作"); } @@ -116,6 +126,42 @@ public class MBomApi extends BaseApi { bomNewMbomDetailService.superSaterialStatusTag(rowId, status); return ResultVO.success(true); } + @PostMapping("backListPage") + @ApiOperation("退回列表") + public ResultVO> backListPage(@RequestBody BomNewMbomBackMaterialQuery query){ + return ResultVO.success(bomNewMbomBackMaterialService.backListPage(query)); + } + + + + @PostMapping("applyBack") + @ApiOperation("申请退回") + public ResultVO applyBack(@RequestBody BomNewMbomApplyBackMaterialDTO dto){ + VUtils.isTure(CollectionUtil.isEmpty(dto.getRowIds())).throwMessage("选择申请退回数据"); + bomNewMbomBackMaterialService.applyBack(dto); + return ResultVO.success(true); + } + + @PostMapping("rejectBack") + @ApiOperation("申请驳回") + public ResultVO rejectBack(@RequestBody List rowIds){ + + VUtils.isTure(CollectionUtil.isEmpty(rowIds)).throwMessage("选择驳回的数据"); + bomNewMbomBackMaterialService.rejectBack(rowIds); + return ResultVO.success(true); + } + + @PostMapping("confirmBack") + @ApiOperation("确认退回") + public ResultVO confirmBack(@RequestBody List rowIds){ + + VUtils.isTure(CollectionUtil.isEmpty(rowIds)).throwMessage("选择确认的数据"); + bomNewMbomBackMaterialService.confirmBack(rowIds); + return ResultVO.success(true); + } + + + } diff --git a/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/constant/MBomConstantEnum.java b/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/constant/MBomConstantEnum.java index a7cbe8c5..64873319 100644 --- a/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/constant/MBomConstantEnum.java +++ b/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/constant/MBomConstantEnum.java @@ -31,7 +31,18 @@ public class MBomConstantEnum { } + @AllArgsConstructor + @Getter + public enum MBomBackStatusEnum implements ValueEnum { + //状态 0-待处理 1-已处理 2- 驳回 + APPLY_0(0, "待处理"), + DEAL_1 (1, "已处理"), + REJECT_2 (2, "驳回"), + ; + private final Integer value; + private final String description; + } } diff --git a/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/mapper/master/BomNewMbomBackMaterialMapper.java b/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/mapper/master/BomNewMbomBackMaterialMapper.java index b537eddc..0b9dfc9a 100644 --- a/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/mapper/master/BomNewMbomBackMaterialMapper.java +++ b/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/mapper/master/BomNewMbomBackMaterialMapper.java @@ -1,7 +1,13 @@ package com.nflg.product.bomnew.mapper.master; import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.nflg.product.bomnew.pojo.entity.BomNewMbomBackMaterialEntity; +import com.nflg.product.bomnew.pojo.query.BomNewEbomParentQuery; +import com.nflg.product.bomnew.pojo.query.BomNewMbomBackMaterialQuery; +import com.nflg.product.bomnew.pojo.vo.BomNewEbomParentVO; +import com.nflg.product.bomnew.pojo.vo.BomNewMbomBackMaterialVO; +import org.apache.ibatis.annotations.Param; /** * t_bom_new_mbom_back_material 表数据库访问层 @@ -11,4 +17,11 @@ import com.nflg.product.bomnew.pojo.entity.BomNewMbomBackMaterialEntity; * @since 2024-01-01 10:53:12 */ public interface BomNewMbomBackMaterialMapper extends BaseMapper { + + + + + Page getListPage(Page page, @Param("query") BomNewMbomBackMaterialQuery query ); + + } diff --git a/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/pojo/dto/BomNewMbomApplyBackMaterialDTO.java b/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/pojo/dto/BomNewMbomApplyBackMaterialDTO.java new file mode 100644 index 00000000..ff05dfa5 --- /dev/null +++ b/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/pojo/dto/BomNewMbomApplyBackMaterialDTO.java @@ -0,0 +1,34 @@ +package com.nflg.product.bomnew.pojo.dto; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; +import lombok.experimental.Accessors; + +import java.io.Serializable; +import java.util.List; + +/** + * t_bom_new_mbom_back_material + * ebom-退回物料列表 + * + * @author makejava + * @since 2024-01-01 10:53:15 + */ +@Data +@Accessors(chain = true) +@ApiModel(value="com-nflg-product-bomnew-pojo-new-dto-BomNewMbomApplyBackMaterialDTO") +public class BomNewMbomApplyBackMaterialDTO implements Serializable { + + + /** + * + */ + @ApiModelProperty(value = "退回对象") + private List rowIds; + + @ApiModelProperty(value = "退回原因") + private String reasonMsg; + + +} diff --git a/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/pojo/dto/BomNewMbomBackMaterialDTO.java b/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/pojo/dto/BomNewMbomBackMaterialDTO.java index 16bb7434..26466b96 100644 --- a/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/pojo/dto/BomNewMbomBackMaterialDTO.java +++ b/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/pojo/dto/BomNewMbomBackMaterialDTO.java @@ -28,52 +28,34 @@ public class BomNewMbomBackMaterialDTO implements Serializable { private Long rowId; /** - * 退回的row_id(和ebom表row_id 关联) + * */ - @ApiModelProperty(value = "退回的row_id(和ebom表row_id 关联)") - private Long sourceId; + @ApiModelProperty(value = "bomRowId") + private Long bomRowId; /** * 退回人名称 */ - @ApiModelProperty(value = "退回人名称") - private String backUserName; - - /** - * 退回人工号 - */ - @ApiModelProperty(value = "退回人工号") - private String backUserCode; - - /** - * 状态 0-待处理 1-已处理 - */ - @ApiModelProperty(value = "状态 0-待处理 1-已处理") - private Integer status; - - /** - * 确认人工号 - */ - @ApiModelProperty(value = "确认人工号") - private String confirmUserCode; - - /** - * 确认人名称 - */ - @ApiModelProperty(value = "确认人名称") - private String confirmUserName; - - /** - * 确认时间 - */ - @ApiModelProperty(value = "确认时间") - private LocalDateTime confirmTime; - - /** - * 创建时间 - */ - @ApiModelProperty(value = "创建时间") - private LocalDateTime createdTime; - - private static final long serialVersionUID = 1L; +// @ApiModelProperty(value = "退回人名称") +// private String backUserName; +// +// /** +// * 退回人工号 +// */ +// @ApiModelProperty(value = "退回人工号") +// private String backUserCode; +// +// +// /** +// * 确认人工号 +// */ +// @ApiModelProperty(value = "确认人工号") +// private String confirmUserCode; +// +// /** +// * 确认人名称 +// */ +// @ApiModelProperty(value = "确认人名称") +// private String confirmUserName; + } diff --git a/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/pojo/entity/BomNewMbomBackMaterialEntity.java b/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/pojo/entity/BomNewMbomBackMaterialEntity.java index 922f799c..69af3bf7 100644 --- a/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/pojo/entity/BomNewMbomBackMaterialEntity.java +++ b/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/pojo/entity/BomNewMbomBackMaterialEntity.java @@ -1,17 +1,21 @@ package com.nflg.product.bomnew.pojo.entity; import java.time.LocalDateTime; + import com.baomidou.mybatisplus.annotation.*; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; + import java.io.Serializable; + import lombok.Data; import lombok.experimental.Accessors; + import java.time.LocalDateTime; import java.time.LocalDate; /** - * t_bom_new_mbom_back_material + * t_bom_new_mbom_back_material * ebom-退回物料列表 * * @author makejava @@ -19,22 +23,22 @@ import java.time.LocalDate; */ @Data @Accessors(chain = true) -@ApiModel(value="com-nflg-product-bomnew-pojo-new-entity-BomNewMbomBackMaterialEntity") +@ApiModel(value = "com-nflg-product-bomnew-pojo-new-entity-BomNewMbomBackMaterialEntity") @TableName(value = "t_bom_new_mbom_back_material") public class BomNewMbomBackMaterialEntity implements Serializable { - + /** * 主键行ID */ @TableId(value = "row_id", type = IdType.ASSIGN_ID) @ApiModelProperty(value = "主键行ID") private Long rowId; - + /** * 退回的row_id(和ebom表row_id 关联) */ - @TableField(value = "source_row_id") - @ApiModelProperty(value = "退回的row_id pbom表") + @TableField(value = "source_row_id") + @ApiModelProperty(value = "退回的row_id pbom表") private Long sourceRowId; @TableField(value = "detail_row_id") @@ -49,52 +53,57 @@ public class BomNewMbomBackMaterialEntity implements Serializable { /** * 退回人名称 */ - @TableField(value = "back_user_name") - @ApiModelProperty(value = "退回人名称") + @TableField(value = "back_user_name") + @ApiModelProperty(value = "退回人名称") private String backUserName; - + /** * 退回人工号 */ - @TableField(value = "back_user_code") - @ApiModelProperty(value = "退回人工号") + @TableField(value = "back_user_code") + @ApiModelProperty(value = "退回人工号") private String backUserCode; - + /** * 状态 0-待处理 1-已处理 */ - @TableField(value = "status") - @ApiModelProperty(value = "状态 0-待处理 1-已处理") - private Integer status; - + @TableField(value = "back_status") + @ApiModelProperty(value = "状态 0-待处理 1-已处理 2- 驳回") + private Integer backStatus; + /** * 确认人工号 */ - @TableField(value = "confirm_user_code") - @ApiModelProperty(value = "确认人工号") + @TableField(value = "confirm_user_code") + @ApiModelProperty(value = "确认人工号") private String confirmUserCode; - + /** * 确认人名称 */ - @TableField(value = "confirm_user_name") - @ApiModelProperty(value = "确认人名称") + @TableField(value = "confirm_user_name") + @ApiModelProperty(value = "确认人名称") private String confirmUserName; - + /** * 确认时间 */ - @TableField(value = "confirm_time") - @ApiModelProperty(value = "确认时间") + @TableField(value = "confirm_time") + @ApiModelProperty(value = "确认时间") private LocalDateTime confirmTime; - + /** * 创建时间 */ - @TableField(value = "created_time") - @ApiModelProperty(value = "创建时间") + @TableField(value = "created_time") + @ApiModelProperty(value = "创建时间") private LocalDateTime createdTime; - + + @TableField(value = "reason_msg") + @ApiModelProperty(value = "退回原因") + private String reasonMsg; + + private static final long serialVersionUID = -35414988190486329L; - + } diff --git a/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/pojo/query/BomNewMbomBackMaterialQuery.java b/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/pojo/query/BomNewMbomBackMaterialQuery.java index d7db4525..abffc852 100644 --- a/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/pojo/query/BomNewMbomBackMaterialQuery.java +++ b/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/pojo/query/BomNewMbomBackMaterialQuery.java @@ -19,97 +19,46 @@ import java.time.LocalDate; @Data @Accessors(chain = true) @ApiModel(value="com-nflg-product-bomnew-pojo-new-query-BomNewMbomBackMaterialEntityQuery") -public class BomNewMbomBackMaterialQuery implements Serializable { - +public class BomNewMbomBackMaterialQuery extends BasePageQuery implements Serializable { + /** - * 主键行ID + * 图号 */ - @ApiModelProperty(value = "主键行ID") - private Long rowId; - + @ApiModelProperty(value = "图号") + private String drawingNo; + + + /** - * 退回的row_id(和ebom表row_id 关联) - */ - @ApiModelProperty(value = "退回的row_id(和ebom表row_id 关联)") - private Long sourceId; - - /** - * 退回人名称 - */ - @ApiModelProperty(value = "退回人名称") - private String backUserName; - - /** - * 退回人工号 - */ - @ApiModelProperty(value = "退回人工号") - private String backUserCode; - - /** - * 状态 0-待处理 1-已处理 - */ - @ApiModelProperty(value = "状态 0-待处理 1-已处理") - private Integer status; - - /** - * 确认人工号 - */ - @ApiModelProperty(value = "确认人工号") - private String confirmUserCode; - - /** - * 确认人名称 - */ - @ApiModelProperty(value = "确认人名称") - private String confirmUserName; - - /** - * 确认时间 - */ - @ApiModelProperty(value = "确认时间") - private LocalDateTime confirmTime; - - /** - * 开始确认时间 - */ - @ApiModelProperty(value = "确认时间开始时间") - private LocalDateTime confirmTimeStart; - - /** - * 结束确认时间 - */ - @ApiModelProperty(value = "确认时间结束时间") - private LocalDateTime confirmTimeEnd; - - /** - * 创建时间 - */ - @ApiModelProperty(value = "创建时间") - private LocalDateTime createdTime; - - /** - * 开始创建时间 - */ - @ApiModelProperty(value = "创建时间开始时间") - private LocalDateTime createdTimeStart; - - /** - * 结束创建时间 - */ - @ApiModelProperty(value = "创建时间结束时间") - private LocalDateTime createdTimeEnd; - - /** - * 设置每页显示条数 + * 物料编码 */ - @ApiModelProperty(value = "设置每页显示条数") - private Long pageSize = 20L; - + @ApiModelProperty(value = "物料编码") + private String materialNo; + + /** - * 当前页 + * 订单号 */ - @ApiModelProperty(value = "当前页") - private Long page = 1L; - - private static final long serialVersionUID = 1L; + @ApiModelProperty(value = "订单号") + private String orderNo; + + + + @ApiModelProperty(value = "开始时间") + private String startDate; + + /** + * + */ + @ApiModelProperty(value = "结束时间") + private String endDate; + + + + + + + + + } diff --git a/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/pojo/vo/BomNewMbomBackMaterialVO.java b/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/pojo/vo/BomNewMbomBackMaterialVO.java index ea41b4b7..df112502 100644 --- a/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/pojo/vo/BomNewMbomBackMaterialVO.java +++ b/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/pojo/vo/BomNewMbomBackMaterialVO.java @@ -19,19 +19,11 @@ import java.time.LocalDate; @Data @Accessors(chain = true) @ApiModel(value="com-nflg-product-bomnew-pojo-new-vo-BomNewMbomBackMaterialEntityVO") -public class BomNewMbomBackMaterialVO implements Serializable { +public class BomNewMbomBackMaterialVO extends BomNewMbomMiddleVO { - /** - * 主键行ID - */ - @ApiModelProperty(value = "主键行ID") - private Long rowId; + - /** - * 退回的row_id(和ebom表row_id 关联) - */ - @ApiModelProperty(value = "退回的row_id(和ebom表row_id 关联)") - private Long sourceId; + /** * 退回人名称 @@ -45,11 +37,11 @@ public class BomNewMbomBackMaterialVO implements Serializable { @ApiModelProperty(value = "退回人工号") private String backUserCode; - /** - * 状态 0-待处理 1-已处理 - */ - @ApiModelProperty(value = "状态 0-待处理 1-已处理") - private Integer status; +// /** +// * 状态 0-待处理 1-已处理 +// */ +// @ApiModelProperty(value = "状态 0-待处理 1-已处理") +// private Integer status; /** * 确认人工号 @@ -69,11 +61,7 @@ public class BomNewMbomBackMaterialVO implements Serializable { @ApiModelProperty(value = "确认时间") private LocalDateTime confirmTime; - /** - * 创建时间 - */ - @ApiModelProperty(value = "创建时间") - private LocalDateTime createdTime; + private static final long serialVersionUID = 1L; } diff --git a/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/pojo/vo/BomNewMbomDetailVO.java b/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/pojo/vo/BomNewMbomDetailVO.java index e4798cb2..3a4f003c 100644 --- a/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/pojo/vo/BomNewMbomDetailVO.java +++ b/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/pojo/vo/BomNewMbomDetailVO.java @@ -20,7 +20,7 @@ import java.time.LocalDate; @Data @Accessors(chain = true) @ApiModel(value="com-nflg-product-bomnew-pojo-new-vo-BomNewMbomDetailEntityVO") -public class BomNewMbomDetailVO implements Serializable { +public class BomNewMbomDetailVO implements Serializable { /** * 主键行ID-雪花 diff --git a/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/pojo/vo/BomNewMbomMiddleVO.java b/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/pojo/vo/BomNewMbomMiddleVO.java index e1ee162f..7be75fe2 100644 --- a/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/pojo/vo/BomNewMbomMiddleVO.java +++ b/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/pojo/vo/BomNewMbomMiddleVO.java @@ -1,5 +1,8 @@ package com.nflg.product.bomnew.pojo.vo; +import cn.hutool.core.util.StrUtil; +import com.nflg.product.bomnew.constant.FactoryCodeEnum; +import com.nflg.product.bomnew.util.EnumUtils; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Data; @@ -58,7 +61,17 @@ public class BomNewMbomMiddleVO extends BaseMaterialVO implements Serializable { */ @ApiModelProperty(value = "工厂编码") private String facCode; - + + @ApiModelProperty(value = "工厂名") + private String facName; + + public String getFacName(){ + if(StrUtil.isNotBlank(facCode)){ + return EnumUtils.getEnumDescription(FactoryCodeEnum.class,facCode); + } + return ""; + } + /** @@ -214,6 +227,8 @@ public class BomNewMbomMiddleVO extends BaseMaterialVO implements Serializable { return 0; } + @ApiModelProperty(value = "状态 0-待处理 1-已处理 2- 驳回") + private Integer backStatus; private List childNodes = Collections.emptyList(); diff --git a/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/BomNewMbomBackMaterialService.java b/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/BomNewMbomBackMaterialService.java index 94268f23..c2d17e16 100644 --- a/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/BomNewMbomBackMaterialService.java +++ b/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/BomNewMbomBackMaterialService.java @@ -1,11 +1,31 @@ package com.nflg.product.bomnew.service; +import cn.hutool.core.collection.CollectionUtil; +import cn.hutool.extra.spring.SpringUtil; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.nflg.product.base.core.conmon.util.SessionUtil; +import com.nflg.product.base.core.exception.NflgBusinessException; +import com.nflg.product.bomnew.constant.MBomConstantEnum; import com.nflg.product.bomnew.mapper.master.BomNewMbomBackMaterialMapper; +import com.nflg.product.bomnew.pojo.dto.BomNewMbomApplyBackMaterialDTO; +import com.nflg.product.bomnew.pojo.dto.BomNewMbomBackMaterialDTO; import com.nflg.product.bomnew.pojo.entity.BomNewMbomBackMaterialEntity; +import com.nflg.product.bomnew.pojo.entity.BomNewMbomDetailEntity; +import com.nflg.product.bomnew.pojo.query.BomNewMbomBackMaterialQuery; +import com.nflg.product.bomnew.pojo.query.BomNewMbomParentQuery; +import com.nflg.product.bomnew.pojo.vo.BomNewMbomBackMaterialVO; +import nflg.product.common.constant.STATE; import org.springframework.stereotype.Service; +import java.time.LocalDateTime; +import java.util.ArrayList; +import java.util.List; +import java.util.Map; +import java.util.stream.Collectors; + /** * t_bom_new_mbom_back_material 表服务实现类 @@ -17,4 +37,128 @@ import org.springframework.stereotype.Service; @Service public class BomNewMbomBackMaterialService extends ServiceImpl { + + + public Page backListPage(BomNewMbomBackMaterialQuery query) { + + Page page = this.getBaseMapper().getListPage(new Page<>(query.getPage(), query.getPageSize()), query); + return page; + + } + + + /** + * 驳回 + * @param rowIds + */ + public void rejectBack(List rowIds ){ + + QueryWrapper queryWrapper=new QueryWrapper<>(); + queryWrapper.lambda().in(BomNewMbomBackMaterialEntity::getRowId,rowIds); + queryWrapper.lambda().eq(BomNewMbomBackMaterialEntity::getBackStatus, MBomConstantEnum.MBomBackStatusEnum.REJECT_2.getValue()); + + List backList=getBaseMapper().selectList(queryWrapper); + if(CollectionUtil.isNotEmpty(backList)){ + throw new NflgBusinessException(STATE.BusinessError,"选择数据存在已驳回不能重复驳回"); + } + + List updateList=new ArrayList<>(); + rowIds.forEach(id->{ + BomNewMbomBackMaterialEntity bean=new BomNewMbomBackMaterialEntity(); + bean.setRowId(id); + bean.setBackStatus(MBomConstantEnum.MBomBackStatusEnum.REJECT_2.getValue()); + bean.setConfirmTime(LocalDateTime.now()); + bean.setConfirmUserCode(SessionUtil.getUserCode()); + bean.setConfirmUserName(SessionUtil.getUserName()); + updateList.add(bean); + }); + if(CollectionUtil.isNotEmpty(updateList)){ + this.updateBatchById(updateList); + } + + + } + + + /** + * 退回 + * + */ + public void applyBack(BomNewMbomApplyBackMaterialDTO dto ){ + List rowIds=dto.getRowIds(); + //是否存在退回 + List backRowId=rowIds.stream().map(BomNewMbomBackMaterialDTO::getRowId).collect(Collectors.toList()); + QueryWrapper queryWrapper=new QueryWrapper<>(); + queryWrapper.lambda().in(BomNewMbomBackMaterialEntity::getDetailRowId,backRowId); + + List backList=getBaseMapper().selectList(queryWrapper); + if(CollectionUtil.isNotEmpty(backList)){ + throw new NflgBusinessException(STATE.BusinessError,"选择数据已申请退回"); + } + + QueryWrapper queryWrapper2=new QueryWrapper<>(); + queryWrapper2.lambda().in(BomNewMbomDetailEntity::getRowId,backRowId); + List list= SpringUtil.getBean(BomNewMbomDetailService.class).list(queryWrapper2); + + if(CollectionUtil.isNotEmpty(list)){ + List saveBackList=new ArrayList<>(); + list.forEach(item->{ + BomNewMbomBackMaterialEntity beanBack=new BomNewMbomBackMaterialEntity(); + beanBack.setBomRowId(item.getBomRowId()); + beanBack.setDetailRowId(item.getRowId()); + beanBack.setSourceRowId(item.getSourceRowId()); + beanBack.setBackStatus(MBomConstantEnum.MBomBackStatusEnum.APPLY_0.getValue()); + beanBack.setBackUserName(SessionUtil.getRealName()); + beanBack.setBackUserCode(SessionUtil.getUserCode()); + beanBack.setCreatedTime(LocalDateTime.now()); + beanBack.setReasonMsg(dto.getReasonMsg()); + saveBackList.add(beanBack); + }); + this.saveBatch(saveBackList); + + } + + + + } + + /** + * 确认退回 + * @param rowIds + */ + public void confirmBack(List rowIds ){ + + QueryWrapper queryWrapper=new QueryWrapper<>(); + queryWrapper.lambda().in(BomNewMbomBackMaterialEntity::getRowId,rowIds); + List backList=getBaseMapper().selectList(queryWrapper); + Map> groupBackMap=backList.stream().collect(Collectors.groupingBy(BomNewMbomBackMaterialEntity::getBackStatus)); + + if(CollectionUtil.isNotEmpty(groupBackMap.get(MBomConstantEnum.MBomBackStatusEnum.DEAL_1.getValue()))){ + throw new NflgBusinessException(STATE.BusinessError,"选择数据存在已确认退回"); + } + + if(CollectionUtil.isNotEmpty(groupBackMap.get(MBomConstantEnum.MBomBackStatusEnum.REJECT_2.getValue()))){ + throw new NflgBusinessException(STATE.BusinessError,"选择数据存在已驳回"); + } + + List updateList=new ArrayList<>(); + rowIds.forEach(id->{ + BomNewMbomBackMaterialEntity bean=new BomNewMbomBackMaterialEntity(); + bean.setRowId(id); + bean.setBackStatus(MBomConstantEnum.MBomBackStatusEnum.DEAL_1.getValue()); + bean.setConfirmTime(LocalDateTime.now()); + bean.setConfirmUserCode(SessionUtil.getUserCode()); + bean.setConfirmUserName(SessionUtil.getUserName()); + updateList.add(bean); + }); + if(CollectionUtil.isNotEmpty(updateList)){ + this.updateBatchById(updateList); + } + + + } + + + + } diff --git a/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/BomNewMbomDetailService.java b/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/BomNewMbomDetailService.java index 76caa043..d6a3c28c 100644 --- a/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/BomNewMbomDetailService.java +++ b/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/BomNewMbomDetailService.java @@ -15,6 +15,7 @@ import com.nflg.product.bomnew.mapper.master.BomNewMbomDetailMapper; import com.nflg.product.bomnew.pojo.entity.BomNewMbomDetailEntity; import com.nflg.product.bomnew.pojo.entity.BomNewMbomParentEntity; import com.nflg.product.bomnew.pojo.vo.BomNewMbomDetailVO; +import com.nflg.product.bomnew.pojo.vo.BomNewMbomMiddleVO; import nflg.product.common.constant.STATE; import org.springframework.stereotype.Service; @@ -33,33 +34,25 @@ import java.util.Objects; public class BomNewMbomDetailService extends ServiceImpl { - /** - * 退回 - * @param rowId - */ - public void back(List rowId){ + public List superSaterialList(Long rowId) { + BomNewMbomParentEntity parent = SpringUtil.getBean(BomNewMbomParentService.class).getById(rowId); + QueryWrapper queryWrapper = new QueryWrapper<>(); + if (parent != null) { + queryWrapper.lambda().eq(BomNewMbomDetailEntity::getBomRowId, rowId); + queryWrapper.lambda().eq(BomNewMbomDetailEntity::getParentRowId, 0l); + } else { + queryWrapper.lambda().eq(BomNewMbomDetailEntity::getParentRowId, rowId); + } + List list = this.list(queryWrapper); + List voList = Convert.convert(new TypeReference>() { + }, list); + return voList; } - - -public List superSaterialList(Long rowId){ - QueryWrapper queryWrapper = new QueryWrapper<>(); - queryWrapper.lambda().eq(BomNewMbomDetailEntity::getParentRowId,rowId); - List list= this.list(queryWrapper); - List voList= Convert.convert(new TypeReference>() { - } ,list); - - return voList; -} - - - - - /** * 超级物料标签 *

@@ -77,7 +70,7 @@ public List superSaterialList(Long rowId){ } BomNewMbomParentEntity parentEntity = SpringUtil.getBean(BomNewMbomParentService.class).getById(entity.getBomRowId()); if (parentEntity == null) { - throw new NflgBusinessException(STATE.Error, "根数据不存在"); + throw new NflgBusinessException(STATE.Error, "顶层数据不存在"); } if (Objects.equals(MBomConstantEnum.MBomStatusEnum.PUB_SAP.getValue(), parentEntity.getStatus())) { @@ -96,13 +89,13 @@ public List superSaterialList(Long rowId){ //当前数据已是超级物料 if (Objects.equals(MBomConstantEnum.MBomSuperMaterialStatusEnum.SUPER.getValue(), entity.getSuperMaterialStatus())) { - throw new NflgBusinessException(STATE.Error, StrUtil.format("物料{}已为超级物料", entity.getMaterialNo())); + throw new NflgBusinessException(STATE.Error, StrUtil.format("选择行物料{}已为超级物料", entity.getMaterialNo())); } //parentRowId 空情况 - if (entity.getParentRowId() == null) { + if (Objects.isNull(entity.getParentRowId()) || entity.getParentRowId().longValue() == 0) { QueryWrapper queryWrapper = new QueryWrapper<>(); - queryWrapper.lambda().isNull(BomNewMbomDetailEntity::getParentRowId) + queryWrapper.lambda().eq(BomNewMbomDetailEntity::getParentRowId, 0l) .eq(BomNewMbomDetailEntity::getSuperMaterialStatus, MBomConstantEnum.MBomSuperMaterialStatusEnum.SUPER.getValue()); List list = this.list(queryWrapper); if (CollectionUtil.isNotEmpty(list)) { @@ -117,7 +110,7 @@ public List superSaterialList(Long rowId){ throw new NflgBusinessException(STATE.Error, "数据异常联系管理员"); } if (!Objects.equals(MBomConstantEnum.MBomSuperMaterialStatusEnum.SUPER.getValue(), parentDetail.getSuperMaterialStatus())) { - throw new NflgBusinessException(STATE.Error, "父级不为超级物料,不能设置子级为超级物料"); + throw new NflgBusinessException(STATE.Error, "父级不为超级物料,子级不能设置为超级物料"); } //check 同级不能多个超级物料 QueryWrapper queryWrapper = new QueryWrapper<>(); diff --git a/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/BomNewMbomParentService.java b/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/BomNewMbomParentService.java index 991e142d..b5ab30e9 100644 --- a/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/BomNewMbomParentService.java +++ b/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/BomNewMbomParentService.java @@ -2,6 +2,7 @@ package com.nflg.product.bomnew.service; import cn.hutool.core.collection.CollectionUtil; import cn.hutool.core.util.StrUtil; +import cn.hutool.extra.spring.SpringUtil; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.nflg.product.bomnew.constant.MBomConstantEnum; @@ -37,6 +38,7 @@ public class BomNewMbomParentService extends ServiceImpl workListPage(BomNewMbomParentQuery query) { query.setStatus(MBomConstantEnum.MBomStatusEnum.UNPUB_SAP.getValue()); + query.setFacCode(SpringUtil.getBean(UserRoleService.class).getUserFactory()); return listPage(query); } @@ -48,7 +50,7 @@ public class BomNewMbomParentService extends ServiceImpl(query.getPage(), query.getPageSize()), query); if (CollectionUtil.isNotEmpty(page.getRecords())) { List indexList = page.getRecords().stream().collect(Collectors.toList()); - ; + page.getRecords().clear(); for (BomNewMbomMiddleVO item : indexList) { @@ -68,12 +70,16 @@ public class BomNewMbomParentService extends ServiceImpl(query.getPage(), query.getPageSize()), query); + + + return page; } public Page formalListPage(BomNewMbomParentQuery query) { query.setStatus(MBomConstantEnum.MBomStatusEnum.PUB_SAP.getValue()); + query.setFacCode(SpringUtil.getBean(UserRoleService.class).getUserFactory()); return listPage(query); } @@ -86,6 +92,8 @@ public class BomNewMbomParentService extends ServiceImpl - - + + + row_id, source_id, back_user_name, back_user_code, status, confirm_user_code, confirm_user_name, confirm_time, created_time - + + + + + + + + + + + + + diff --git a/nflg_project_dev/nflg-bom-new/src/main/resources/mapper/master/BomNewMbomParentMapper.xml b/nflg_project_dev/nflg-bom-new/src/main/resources/mapper/master/BomNewMbomParentMapper.xml index 62126583..69354c1e 100644 --- a/nflg_project_dev/nflg-bom-new/src/main/resources/mapper/master/BomNewMbomParentMapper.xml +++ b/nflg_project_dev/nflg-bom-new/src/main/resources/mapper/master/BomNewMbomParentMapper.xml @@ -81,8 +81,8 @@ - SELECT max(row_id) row_id ,bom_row_id from t_bom_new_mbom_detail GROUP BY bom_row_id - where `status`=#{query.status} + SELECT max(t1.row_id) as row_id ,t1.bom_row_id from t_bom_new_mbom_detail t1 left JOIN + t_bom_new_mbom_parent t2 + on t1.bom_row_id=t2.row_id + where t1.bom_row_id=t2.row_id and t2.last_version_is=1 + + + + and t1.fac_code=#{query.facCode} + - and drawing_no=#{query.drawingNo} + and t1.drawing_no like concat ('',#{query.drawingNo},'%') - and material_no=#{query.materialNo} + and t1.material_no=#{query.materialNo} + GROUP BY t1.bom_row_id