package com.chinaztt.mes.plan.service; import com.alibaba.fastjson.JSONArray; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.IService; import com.chinaztt.mes.plan.dto.ManufacturingOrderDTO; import com.chinaztt.mes.plan.dto.MoStructureComponentDTO; import com.chinaztt.mes.plan.dto.UploadRefreshIfsOrderNoResultDTO; import com.chinaztt.mes.plan.entity.*; import com.chinaztt.mes.plan.excel.ManufacturingOderUploadData; import com.chinaztt.mes.technology.dto.RoutingOperationDTO; import com.chinaztt.mes.technology.entity.RoutingOperation; import com.chinaztt.ztt.common.core.util.R; import javax.servlet.http.HttpServletResponse; import java.io.IOException; import java.math.BigDecimal; import java.util.List; /** * 制造订单表 * * @author cxf * @date 2020-09-24 14:26:01 */ public interface ManufacturingOrderService extends IService { /** * 分页查询 * * @param page * @param query * @param list * @return */ IPage> getManufacturingOrderPage(Page page, QueryWrapper query, List list); /** * 导出 * * @param response * @throws IOException */ void export(HttpServletResponse response, QueryWrapper wrapper, List list) throws IOException; /** * 通过id查询制造订单 * * @param id * @return */ ManufacturingOrderDTO selectById(Long id); /** * 保存 * * @param manufacturingOrderDTO * @return */ R saveDto(ManufacturingOrderDTO manufacturingOrderDTO); /** * 生产计划创建车间订单 * * @param manufacturingOrderDTO * @return */ R fullSave(ManufacturingOrderDTO manufacturingOrderDTO); /** * 修改 * * @param manufacturingOrderDTO * @return */ R updateDtoById(ManufacturingOrderDTO manufacturingOrderDTO); /** * 根据零件判断是否存在工艺路线/工艺结构 * * @param partId * @return */ ManufacturingOrderDTO checkPart(Long partId, String workshopTypeCode); /** * Description: 改变状态 * * @param ids * @param event * @return * @date: 2020/11/19 11:06 */ boolean changeState(List ids, String event); /** * 根据制造订单id和工艺id校验该制造订单对应的工艺是否一致 * * @param manufacturingOrderDTO * @return */ Object checkoutManufacturingOrder(ManufacturingOrderDTO manufacturingOrderDTO); /** * 根据工艺id和工序id获取复制的工序模板 * * @param manufacturingOrderDTO * @return */ List getOperationTemplate(ManufacturingOrderDTO manufacturingOrderDTO); /** * 根据复制工序模板的id删除工序模板 * * @param id * @return */ boolean deleteRoutingTemplate(Long id); /** * 根据工艺工序id关联添加工序模板 * * @param manufacturingOrderDTO * @return */ List addOperationTemplate(ManufacturingOrderDTO manufacturingOrderDTO); /** * 根据工艺工序id和工序模板id获取工序参数 * * @param manufacturingOrderDTO * @return */ List getOperationTemplateParam(ManufacturingOrderDTO manufacturingOrderDTO); /** * 根据复制工序参数的id删除工序参数 * * @param id * @return */ boolean deleteRoutingTemplateParam(Long id); /** * 根据工艺工序id和工序模板id关联添加工序参数 * * @param manufacturingOrderDTO * @return */ List addOperationTemplateParam(ManufacturingOrderDTO manufacturingOrderDTO); /** * 工序参数的参数值的修改 * * @param manufacturingOrderDTO * @return */ boolean updateRoutingTemplateParamById(ManufacturingOrderDTO manufacturingOrderDTO); /** * 修改制造订单模板 * * @param manufacturingOrderOperationTemplate * @return */ ManufacturingOrderOperationTemplate updateTemplate(ManufacturingOrderOperationTemplate manufacturingOrderOperationTemplate); /** * 根据bomid 查询结构 * * @param bomId * @return */ MoStructureComponentDTO bomSelectChange(Long bomId); /** * 通过制造订单id查询客户订单 * * @param id * @return */ List getCustomer(Long id); /** * 分页查询制造订单报表 * * @param page * @param gen * @return */ IPage getStatementPage(Page page, QueryWrapper gen); /** * 通过订单id和零件id查找所需数量和盘数 * * @param id * @param partId * @return */ List getQpaNumber(Long id, Long partId); /** * ifs 车间订单计划查询接口 * * @param manufacturingOrderDTO * @return */ R queryShopOrderReqStd(ManufacturingOrderDTO manufacturingOrderDTO); /** * ifs 车间订单创建更新接口 * * @param * @return */ R importShopOrderStd(List ids); /** * ifs车间订单物料更新 * * @param ids * @return */ R modifyShopMaterialAllocStd(List ids); /** * 处理对接IFS车间订单更新新增接口后的回写处理 * * @param jsonArray */ void moIfsResult(JSONArray jsonArray); /** * ifs车间订单工序更新 * * @param ids * @return */ R modifyShopOperationStd(List ids); /** * 根据生产计划id 快速创建车间订单 * * @param manufacturingOrderDTOS * @return */ R addBatch(List manufacturingOrderDTOS); /** * 车间订单新增 * * @param manufacturingOrderDTOS * @return * @throws Exception */ List addAll(List manufacturingOrderDTOS) throws Exception; /** * 段长任务,根据生产计划id 快速创建车间订单 * * @param manufacturingOrderDTOS * @return */ void addBatchForMerge(List manufacturingOrderDTOS, List routingOperations, Boolean isGenerateSn); /** * 车间订单BOM修改 * * @param moStructureComponentDTO * @return */ boolean updateMoBom(MoStructureComponentDTO moStructureComponentDTO); /** * 根据车间订单BOM的id删除节点 * * @param id * @return */ boolean delMoBom(Long id); /** * 新增车间订单bom节点 * * @param moStructureComponentDTO bom节点 * @return */ MoStructureComponentDTO addMoBomCompont(MoStructureComponentDTO moStructureComponentDTO); /** * 判断车间订单是否可以合并 * * @param ids * @return */ boolean mergeCheck(List ids); /** * 后台拼接合并车间订单 * * @param id 被合并 * @param ids 合并的list * @return */ ManufacturingOrder mergeOrder(Long id, List ids); /** * 车间订单合并保存 * * @param manufacturingOrderDTO * @return */ boolean mergeUpdate(ManufacturingOrderDTO manufacturingOrderDTO); /** * 车间订单状态修改 * * @param manufacturingOrder * @param state * @return */ R changeState(ManufacturingOrder manufacturingOrder, String state); /** * 车间订单预处理 * * @param manufacturingOrder * @param b true 预关闭 false 取消预关闭 * @return */ R changeState(ManufacturingOrder manufacturingOrder, Boolean b); /** * 更新月结拆单后IFS订单号 */ void refreshIfsOrderNo(); /** * 更新未执行缓存中ifs订单号参数 */ void refreshIfsLogOrderNo(); /** * 根据上传文件更新ifs车间订单号 */ void refreshUploadIfsOrderNo(List list, List resultDTOList); }