| | |
| | | package com.ruoyi.production.service.impl; |
| | | |
| | | import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; |
| | | import com.baomidou.mybatisplus.core.toolkit.CollectionUtils; |
| | | import com.baomidou.mybatisplus.core.toolkit.Wrappers; |
| | | import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; |
| | | import com.ruoyi.framework.web.domain.R; |
| | | import com.ruoyi.production.mapper.ProductionOperationTaskMapper; |
| | | import com.ruoyi.production.mapper.ProductionOrderRoutingOperationMapper; |
| | | import com.ruoyi.production.mapper.ProductionOrderRoutingOperationParamMapper; |
| | | import com.ruoyi.production.mapper.ProductionProductMainMapper; |
| | | import com.ruoyi.production.pojo.ProductionOperationTask; |
| | | import com.ruoyi.production.pojo.ProductionOrderRoutingOperation; |
| | | import com.ruoyi.production.pojo.ProductionOrderRoutingOperationParam; |
| | | import com.ruoyi.production.pojo.ProductionProductMain; |
| | | import com.ruoyi.production.service.ProductionOrderRoutingOperationService; |
| | | import com.ruoyi.production.service.ProductionProductMainService; |
| | | import com.ruoyi.technology.mapper.TechnologyOperationParamMapper; |
| | | import com.ruoyi.technology.mapper.TechnologyParamMapper; |
| | | import com.ruoyi.technology.pojo.TechnologyOperationParam; |
| | | import com.ruoyi.technology.pojo.TechnologyParam; |
| | | import lombok.RequiredArgsConstructor; |
| | | import org.springframework.stereotype.Service; |
| | | import org.springframework.transaction.annotation.Transactional; |
| | |
| | | import java.math.BigDecimal; |
| | | import java.time.LocalDate; |
| | | import java.time.format.DateTimeFormatter; |
| | | import java.util.ArrayList; |
| | | import java.util.List; |
| | | |
| | | @Service |
| | |
| | | private final ProductionOperationTaskMapper productionOperationTaskMapper; |
| | | private final ProductionProductMainMapper productionProductMainMapper; |
| | | private final ProductionProductMainService productionProductMainService; |
| | | private final TechnologyOperationParamMapper technologyOperationParamMapper; |
| | | private final TechnologyParamMapper technologyParamMapper; |
| | | private final ProductionOrderRoutingOperationParamMapper productionOrderRoutingOperationParamMapper; |
| | | |
| | | @Override |
| | | public R addRouteItem(ProductionOrderRoutingOperation productionOrderRoutingOperation) { |
| | | int insert = productionOrderRoutingOperationMapper.insert(productionOrderRoutingOperation); |
| | | //工序关联的参数需要同步新增 |
| | | List<TechnologyOperationParam> technologyOperationParams = technologyOperationParamMapper.selectList(Wrappers.<TechnologyOperationParam>lambdaQuery() |
| | | .eq(TechnologyOperationParam::getTechnologyOperationId, productionOrderRoutingOperation.getTechnologyOperationId())); |
| | | if (CollectionUtils.isNotEmpty(technologyOperationParams)){ |
| | | ArrayList<ProductionOrderRoutingOperationParam> productionOrderRoutingOperationParams = new ArrayList<>(); |
| | | for (TechnologyOperationParam technologyOperationParam : technologyOperationParams) { |
| | | TechnologyParam technologyParam = technologyParamMapper.selectById(technologyOperationParam.getTechnologyParamId()); |
| | | ProductionOrderRoutingOperationParam productionOrderRoutingOperationParam = new ProductionOrderRoutingOperationParam(); |
| | | productionOrderRoutingOperationParam.setProductionOrderId(productionOrderRoutingOperation.getProductionOrderId()); |
| | | productionOrderRoutingOperationParam.setProductionOrderRoutingOperationId(productionOrderRoutingOperation.getId()); |
| | | productionOrderRoutingOperationParam.setParamCode(technologyParam.getParamCode()); |
| | | productionOrderRoutingOperationParam.setParamName(technologyParam.getParamName()); |
| | | productionOrderRoutingOperationParam.setParamType(technologyParam.getParamType()); |
| | | productionOrderRoutingOperationParam.setParamFormat(technologyParam.getParamFormat()); |
| | | productionOrderRoutingOperationParam.setUnit(technologyParam.getUnit()); |
| | | productionOrderRoutingOperationParam.setIsRequired(technologyParam.getIsRequired()); |
| | | productionOrderRoutingOperationParam.setRemark(technologyParam.getRemark()); |
| | | productionOrderRoutingOperationParam.setParamId(technologyParam.getId()); |
| | | productionOrderRoutingOperationParam.setTechnologyOperationId(productionOrderRoutingOperation.getTechnologyOperationId()); |
| | | productionOrderRoutingOperationParams.add(productionOrderRoutingOperationParam); |
| | | } |
| | | productionOrderRoutingOperationParamMapper.insert(productionOrderRoutingOperationParams); |
| | | } |
| | | String datePrefix = LocalDate.now().format(DateTimeFormatter.ofPattern("yyyyMMdd")); |
| | | if (insert > 0) { |
| | | ProductionOperationTask lastTask = productionOperationTaskMapper.selectOne( |
| | |
| | | } |
| | | String workOrderNoStr = "GD" + String.format("%s%03d", datePrefix, sequenceNumber); |
| | | ProductionOperationTask productionOperationTask = new ProductionOperationTask(); |
| | | productionOperationTask.setTechnologyRoutingOperationId(productionOrderRoutingOperation.getId()); |
| | | productionOperationTask.setProductionOrderRoutingOperationId(productionOrderRoutingOperation.getId()); |
| | | productionOperationTask.setProductionOrderId(productionOrderRoutingOperation.getProductionOrderId()); |
| | | productionOperationTask.setPlanQuantity(BigDecimal.ZERO); |
| | | productionOperationTask.setCompleteQuantity(BigDecimal.ZERO); |
| | |
| | | try { |
| | | ProductionOperationTask productionOperationTask = productionOperationTaskMapper.selectOne( |
| | | new LambdaQueryWrapper<ProductionOperationTask>() |
| | | .eq(ProductionOperationTask::getTechnologyRoutingOperationId, id) |
| | | .eq(ProductionOperationTask::getProductionOrderRoutingOperationId, id) |
| | | .last("limit 1")); |
| | | if (productionOperationTask == null) { |
| | | throw new RuntimeException("删除失败:未找到关联的生产工单"); |
| | |
| | | routingId = deleteItem.getOrderRoutingId(); |
| | | } |
| | | productionOperationTaskMapper.delete(new LambdaQueryWrapper<ProductionOperationTask>() |
| | | .eq(ProductionOperationTask::getTechnologyRoutingOperationId, id)); |
| | | .eq(ProductionOperationTask::getProductionOrderRoutingOperationId, id)); |
| | | productionOrderRoutingOperationMapper.deleteById(id); |
| | | if (routingId != null) { |
| | | List<ProductionOrderRoutingOperation> operationList = productionOrderRoutingOperationMapper.selectList( |