fix item nedd

plp
chenshuichuan 2 years ago
parent 8a3eec1373
commit f8edb0cb1c

@ -0,0 +1,86 @@
package cn.iocoder.yudao.module.mes.controller.admin.task;
import cn.iocoder.yudao.framework.apilog.core.annotation.ApiAccessLog;
import cn.iocoder.yudao.framework.common.pojo.CommonResult;
import cn.iocoder.yudao.framework.common.pojo.PageParam;
import cn.iocoder.yudao.framework.common.pojo.PageResult;
import cn.iocoder.yudao.framework.common.util.object.BeanUtils;
import cn.iocoder.yudao.framework.excel.core.util.ExcelUtils;
import cn.iocoder.yudao.module.erp.service.product.ErpProductService;
import cn.iocoder.yudao.module.mes.controller.admin.task.vo.*;
import cn.iocoder.yudao.module.mes.dal.dataobject.plan.PlanDO;
import cn.iocoder.yudao.module.mes.dal.dataobject.task.TaskDO;
import cn.iocoder.yudao.module.mes.dal.dataobject.task.TaskDetailDO;
import cn.iocoder.yudao.module.mes.dal.dataobject.task.ViewTaskProductSummary;
import cn.iocoder.yudao.module.mes.service.bom.BomService;
import cn.iocoder.yudao.module.mes.service.itemrequisition.ItemAnalysisService;
import cn.iocoder.yudao.module.mes.service.itemrequisition.entity.ItemRequisitionAndStock;
import cn.iocoder.yudao.module.mes.service.plan.PlanService;
import cn.iocoder.yudao.module.mes.service.task.TaskService;
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.Parameter;
import io.swagger.v3.oas.annotations.tags.Tag;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource;
import javax.servlet.http.HttpServletResponse;
import javax.validation.Valid;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
import static cn.iocoder.yudao.framework.apilog.core.enums.OperateTypeEnum.EXPORT;
import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success;
@Tag(name = "管理后台 - 生产任务单")
@RestController
@RequestMapping("/mes/task")
@Validated
public class TaskItemNeedController {
@Resource
private TaskService taskService;
@Resource
private PlanService planService;
@Resource
private ErpProductService productService;
@Resource
private BomService bomService;
@Resource
private ItemAnalysisService itemAnalysisService;
@GetMapping("/item-need/order")
@Operation(summary = "获得某订单所需物料数量")
@Parameter(name = "orderId", description = "订单编号", required = true)
public CommonResult<List<ItemRequisitionAndStock>> getProductItemNeed(@RequestParam("orderId") Long orderId) {
List<ItemRequisitionAndStock> list = itemAnalysisService.getItemAnalysis(orderId);
return success(list);
}
@GetMapping("/item-need/task")
@Operation(summary = "获得生产任务单所需物料")
@Parameter(name = "taskId", description = "任务编号", required = true)
public CommonResult<List<ItemRequisitionAndStock>> getTaskItemNeed(@RequestParam("taskId") Long taskId) {
TaskDO task = taskService.getTask(taskId);
List<ItemRequisitionAndStock> list = itemAnalysisService.getItemAnalysis(task);
return success(list);
}
@GetMapping("/item-need/plan")
@Operation(summary = "获得生产计划所需物料")
@Parameter(name = "planId", description = "计划编号", required = true)
public CommonResult< List<ItemRequisitionAndStock>> getPlanItemNeed(@RequestParam("planId") Long planId) {
PlanDO plan = planService.getPlan(planId);
List<ItemRequisitionAndStock> list = itemAnalysisService.getItemAnalysis(plan);
return success(list);
}
@GetMapping("/item-need/product")
@Operation(summary = "获得某产品数量所需物料数量")
@Parameter(name = "productId", description = "任务编号", required = true)
public CommonResult<List<ItemRequisitionAndStock>> getProductItemNeed(@RequestParam("productId") Long productId,
@RequestParam("number") Long number) {
List<ItemRequisitionAndStock> list = itemAnalysisService.getItemAnalysis(productId,number);
return success(list);
}
}

@ -35,12 +35,13 @@ public interface ItemAnalysisService {
* @return
*/
public List<ItemRequisitionAndStock> getItemAnalysis(PlanDO plan);
List<ItemRequisitionAndStock> getItemAnalysis(Long productId, Long number);
/**
*
*
* @param saleOrderDO
* @param orderId
* @return
*/
public List<ItemRequisitionAndStock> getItemAnalysis(ErpSaleOrderDO saleOrderDO);
public List<ItemRequisitionAndStock> getItemAnalysis(Long orderId);
}

@ -96,9 +96,16 @@ public class ItemAnalysisServiceImpl implements ItemAnalysisService {
//分析计划的物料需求
@Override
public List<ItemRequisitionAndStock> getItemAnalysis(PlanDO plan) {
List<ItemRequisitionAndStock> list = getItemAnalysis(plan.getProductId(), plan.getPlanNumber());
return list;
}
//分析计划的物料需求
@Override
public List<ItemRequisitionAndStock> getItemAnalysis(Long productId, Long number) {
List<ItemRequisitionAndStock> list = new ArrayList<>();
if(productId ==null || number==null )return list;
List<BomDetailDO> bomDetailDOList =
bomService.getBomDetailListByProductId(plan.getProductId(), plan.getPlanNumber());
bomService.getBomDetailListByProductId(productId, number);
for (BomDetailDO bomDetail : bomDetailDOList) {
Long itemId = bomDetail.getProductId();
ItemRequisitionAndStock temp = new ItemRequisitionAndStock()
@ -111,12 +118,13 @@ public class ItemAnalysisServiceImpl implements ItemAnalysisService {
temp.setStockWorkshopNumber(stockWorkshopCount);
list.add(temp);
}
list = buildDetailVOList(list);
return list;
}
@Override
public List<ItemRequisitionAndStock> getItemAnalysis(ErpSaleOrderDO saleOrderDO) {
List<ErpSaleOrderItemDO> detailDOList = saleOrderService.getSaleOrderItemListByOrderId(saleOrderDO.getId());
public List<ItemRequisitionAndStock> getItemAnalysis(Long orderId) {
List<ErpSaleOrderItemDO> detailDOList = saleOrderService.getSaleOrderItemListByOrderId(orderId);
if(orderId ==null)return new ArrayList<>();
Map<Long, ItemRequisitionAndStock> itemMap = new HashMap<>();
//算物料需求
for (ErpSaleOrderItemDO detail :detailDOList) {

@ -167,10 +167,10 @@ public class TaskServiceImpl implements TaskService {
// List<TaskDetailSumResult> resultList = taskDetailMapper.selectSumListByTaskId(taskId);
// System.out.println(Arrays.toString(resultList.toArray()));
List<ViewTaskProductSummary> summaryList = summaryMapper.selectListByTaskId(taskId);
for (ViewTaskProductSummary summary:summaryList) {
Long planTotalNumber = planMapper.selectSum(summary.getTaskId(),summary.getProductId(),null);
summary.setPlanNumber(planTotalNumber);
}
// for (ViewTaskProductSummary summary:summaryList) {
// Long planTotalNumber = planMapper.selectSum(summary.getTaskId(),summary.getProductId(),null);
// summary.setPlanNumber(planTotalNumber);
// }
return summaryList;
}
private List<TaskDetailRespVO> buildDetailVOList(List<TaskDetailDO> list) {

Loading…
Cancel
Save