| | |
| | | |
| | | import cn.hutool.core.util.ObjUtil; |
| | | import cn.hutool.core.util.StrUtil; |
| | | import cn.iocoder.yudao.module.erp.api.sale.ErpSaleOrderApi; |
| | | import cn.iocoder.yudao.framework.common.pojo.PageResult; |
| | | import cn.iocoder.yudao.framework.common.util.object.BeanUtils; |
| | | import cn.iocoder.yudao.module.mes.controller.admin.wm.salesnotice.vo.line.MesWmSalesNoticeLinePageReqVO; |
| | |
| | | private MesWmBatchService batchService; |
| | | @Resource |
| | | private MesMdmItemService mdmItemService; |
| | | @Resource |
| | | private ErpSaleOrderApi saleOrderApi; |
| | | |
| | | @Override |
| | | public Long createSalesNoticeLine(MesWmSalesNoticeLineSaveReqVO createReqVO) { |
| | |
| | | MesWmSalesNoticeLineDO line = validateSalesNoticeLineExists(updateReqVO.getId()); |
| | | // 校验数据 |
| | | updateReqVO.setNoticeId(line.getNoticeId()); |
| | | if (updateReqVO.getSaleOrderItemId() == null) { |
| | | updateReqVO.setSaleOrderItemId(line.getSaleOrderItemId()); |
| | | } |
| | | validateLineSaveData(updateReqVO); |
| | | |
| | | // 更新 |
| | |
| | | private void validateLineSaveData(MesWmSalesNoticeLineSaveReqVO reqVO) { |
| | | // 校验父单据存在且为草稿状态 |
| | | validateNoticeStatusDraft(reqVO.getNoticeId()); |
| | | MesWmSalesNoticeDO notice = salesNoticeService.getSalesNotice(reqVO.getNoticeId()); |
| | | if (notice.getSaleOrderId() != null && reqVO.getSaleOrderItemId() == null) { |
| | | throw exception(WM_SALES_NOTICE_LINE_SALE_ITEM_REQUIRED); |
| | | } |
| | | if (reqVO.getSaleOrderItemId() != null) { |
| | | var saleItem = saleOrderApi.getSaleOrderItem(reqVO.getSaleOrderItemId()).getCheckedData(); |
| | | if (saleItem == null || !ObjUtil.equal(notice.getSaleOrderId(), saleItem.getOrderId()) |
| | | || !ObjUtil.equal(reqVO.getItemId(), saleItem.getProductId())) { |
| | | throw exception(WM_SALES_NOTICE_LINE_SALE_ITEM_MISMATCH); |
| | | } |
| | | } |
| | | // 校验物料存在 |
| | | if (reqVO.getItemId() != null) { |
| | | mdmItemService.validateItemExistsAndEnable(reqVO.getItemId()); |