diff --git a/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/controller/ProdPlanInfoController.java b/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/controller/ProdPlanInfoController.java index ef7f2ecc..5da868dd 100644 --- a/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/controller/ProdPlanInfoController.java +++ b/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/controller/ProdPlanInfoController.java @@ -7,6 +7,7 @@ import jakarta.servlet.http.HttpServletResponse; import jakarta.validation.constraints.*; import cn.dev33.satoken.annotation.SaCheckPermission; import org.dromara.mes.domain.ProdBaseRouteProcess; +import org.dromara.mes.domain.vo.MesProductPlanEditVo; import org.dromara.mes.service.IProdBaseRouteProcessService; import org.springframework.web.bind.annotation.*; import org.springframework.validation.annotation.Validated; @@ -152,4 +153,12 @@ public class ProdPlanInfoController extends BaseController { return R.ok(list); } + /** + * 生产工单新增生产派工List + */ + @PostMapping("/orderAddProductPlanList") + public R orderAddProductPlanList(@RequestBody MesProductPlanEditVo productPlanEditVo) { + return toAjax(prodPlanInfoService.orderAddMesProductPlanList(productPlanEditVo)); + } + } diff --git a/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/domain/vo/MesProductPlanEditVo.java b/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/domain/vo/MesProductPlanEditVo.java new file mode 100644 index 00000000..110646fb --- /dev/null +++ b/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/domain/vo/MesProductPlanEditVo.java @@ -0,0 +1,25 @@ +package org.dromara.mes.domain.vo; + +import jakarta.validation.constraints.NotBlank; +import lombok.Data; +import org.dromara.mes.domain.ProdPlanInfo; +import org.dromara.mes.domain.bo.ProdPlanInfoBo; + +import java.util.List; + +@Data +public class MesProductPlanEditVo { + //生产工单ID + @NotBlank(message = "生产工单Id必须输入") + private Long productOrderId; + + //此次生产派工数量 + private int dispatchAmount; + + //保存的生产计划 + @NotBlank(message = "没有修改的生产派工提交") + private List mesProductPlanList; + + //待删除的生产计划ID + private Long[] toDeletedPlanIds; +} diff --git a/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/service/IProdPlanInfoService.java b/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/service/IProdPlanInfoService.java index e7758d0d..74ae0f10 100644 --- a/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/service/IProdPlanInfoService.java +++ b/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/service/IProdPlanInfoService.java @@ -1,6 +1,7 @@ package org.dromara.mes.service; import org.dromara.mes.domain.ProdPlanInfo; +import org.dromara.mes.domain.vo.MesProductPlanEditVo; import org.dromara.mes.domain.vo.ProdPlanInfoVo; import org.dromara.mes.domain.bo.ProdPlanInfoBo; import org.dromara.common.mybatis.core.page.TableDataInfo; @@ -75,6 +76,22 @@ public interface IProdPlanInfoService { */ public String getDispatchCode(); - + /** + * 查询生产派工列表,join process + * + * @param bo 生产派工 + * @return 生产派工 + */ public List selectProdPlanInfoJoinProcessList(ProdPlanInfoBo bo); + + + /** + * 批量新增生产工单信息 + * + * @param boList 生产工单信息列表 + * @return 是否新增成功 + */ +/* public Boolean insertBatchList(List boList);*/ + + public int orderAddMesProductPlanList(MesProductPlanEditVo mesProductPlanEditVo); } diff --git a/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/service/impl/ProdPlanInfoServiceImpl.java b/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/service/impl/ProdPlanInfoServiceImpl.java index e2491eae..64df864b 100644 --- a/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/service/impl/ProdPlanInfoServiceImpl.java +++ b/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/service/impl/ProdPlanInfoServiceImpl.java @@ -1,6 +1,8 @@ package org.dromara.mes.service.impl; import org.dromara.common.constant.DatabaseConstants; +import org.dromara.common.core.exception.ServiceException; +import org.dromara.common.core.utils.DateUtils; import org.dromara.common.core.utils.MapstructUtils; import org.dromara.common.core.utils.StringUtils; import org.dromara.common.core.utils.uuid.Seq; @@ -11,16 +13,19 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.github.yulichang.toolkit.JoinWrappers; import com.github.yulichang.wrapper.MPJLambdaWrapper; import lombok.RequiredArgsConstructor; +import org.dromara.common.satoken.utils.LoginHelper; +import org.dromara.mes.domain.vo.MesProductPlanEditVo; import org.springframework.stereotype.Service; import org.dromara.mes.domain.bo.ProdPlanInfoBo; import org.dromara.mes.domain.vo.ProdPlanInfoVo; import org.dromara.mes.domain.ProdPlanInfo; import org.dromara.mes.mapper.ProdPlanInfoMapper; import org.dromara.mes.service.IProdPlanInfoService; +import org.springframework.transaction.annotation.Transactional; +import org.springframework.util.ObjectUtils; -import java.util.List; -import java.util.Map; -import java.util.Collection; +import java.util.*; +import java.util.stream.Collectors; /** * 生产工单信息Service业务层处理 @@ -198,4 +203,53 @@ public class ProdPlanInfoServiceImpl implements IProdPlanInfoService { } + /** + * 生产工单新增生产派工List + * + * @param mesProductPlanEditVo 生产派工VO对象 + * @return + */ + @Override + @Transactional(rollbackFor = Exception.class) + public int orderAddMesProductPlanList(MesProductPlanEditVo mesProductPlanEditVo) { + List prodPlanInfoList = new ArrayList<>(); +/* Long userId = LoginHelper.getUserId(); // 获取当前用户ID + Long deptId = LoginHelper.getDeptId(); // 获取当前部门ID*/ + + List mesProductPlanList = mesProductPlanEditVo.getMesProductPlanList(); + if (!ObjectUtils.isEmpty(mesProductPlanList)) { + for (ProdPlanInfoBo mesProductPlanBo : mesProductPlanList) { +/* mesProductPlanBo.setCreateBy(userId);*/ +// mesProductPlanBo.setCreateTime(DateUtils.getNowDate()); + mesProductPlanBo.setPlanCode(Seq.getId(Seq.mesPlanCodeSeqType, Seq.mesPlanCodeCode)); + + + prodPlanInfoList.add(mesProductPlanBo); + } + } + + if (prodPlanInfoList.isEmpty()) { + throw new ServiceException("无有效的派工数据提交"); + } + + int successCount = 0; + for (ProdPlanInfoBo mesProductPlanBo : prodPlanInfoList) { + String planCode = Seq.getId(Seq.mesPlanCodeSeqType, Seq.mesPlanCodeCode); + mesProductPlanBo.setPlanCode(planCode); + ProdPlanInfo add = MapstructUtils.convert(mesProductPlanBo, ProdPlanInfo.class); + validEntityBeforeSave(add); + //TODO:后期需调用insertByBo,会分表插入 + boolean flag = baseMapper.insert(add) > 0; + if (flag) { + mesProductPlanBo.setPlanId(add.getPlanId()); + successCount++; + } + } + if (successCount == 0) { + throw new ServiceException("派工数据保存失败"); + } + return successCount; + } + + }