src/main/java/com/ruoyi/production/controller/ProductionProductMainController.java
@@ -3,21 +3,17 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.ruoyi.common.utils.poi.ExcelUtil; import com.ruoyi.framework.web.domain.R; import com.ruoyi.production.dto.ProductProcessRouteItemDto; import com.ruoyi.production.dto.ProductionProductMainDto; import com.ruoyi.production.dto.SalesLedgerProductionAccountingDto; import com.ruoyi.production.service.ProductionProductMainService; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.transaction.annotation.Transactional; import org.springframework.web.bind.annotation.*; import javax.servlet.http.HttpServletResponse; import java.util.Arrays; import java.util.List; @RequestMapping("productionProductMain") @RequestMapping("/productionProductMain") @RestController @Api(value = "生产报工") public class ProductionProductMainController { @@ -41,7 +37,7 @@ * @param productionProductMainDto * @return */ @PostMapping("addProductMain") @PostMapping("/addProductMain") public R addProductMain(@RequestBody ProductionProductMainDto productionProductMainDto) { return R.ok(productionProductMainService.addProductMain(productionProductMainDto)); } src/main/java/com/ruoyi/production/dto/ProductionProductMainDto.java
@@ -10,7 +10,6 @@ import java.math.BigDecimal; import java.time.LocalDate; import java.time.LocalDateTime; @Data @ExcelIgnoreUnannotated @@ -61,5 +60,7 @@ private BigDecimal workHours; private BigDecimal wages; @ApiModelProperty(value = "投入总量(kg)") private BigDecimal totalInvestment; } src/main/java/com/ruoyi/production/pojo/ProductOrder.java
@@ -109,11 +109,11 @@ * 制造班组 */ private String manufacturingTeam; /** * 批号 */ @ApiModelProperty(value = "批号") @Excel(name = "批号") private String batchNo; } src/main/java/com/ruoyi/production/pojo/ProductWorkOrder.java
@@ -2,7 +2,6 @@ import com.baomidou.mybatisplus.annotation.*; import com.fasterxml.jackson.annotation.JsonFormat; import com.ruoyi.framework.aspectj.lang.annotation.Excel; import io.swagger.annotations.ApiModelProperty; import lombok.Data; import org.springframework.format.annotation.DateTimeFormat; @@ -121,5 +120,11 @@ @ApiModelProperty(value = "完成数量") private BigDecimal completeQuantity; /** * 投入总量 */ @ApiModelProperty(value = "投入总量(kg)") private BigDecimal totalInvestment; } src/main/java/com/ruoyi/production/service/impl/ProductionProductMainServiceImpl.java
@@ -141,7 +141,7 @@ productionProductMainMapper.insert(productionProductMain); /*新增报工投入表*/ List<ProductStructureDto> productStructureDtos = productStructureMapper.listBybomAndProcess(productProcessRoute.getBomId(), productProcess.getId()); if (productStructureDtos.size() == 0) { if (productStructureDtos.isEmpty()) { //如果该工序没有产品结构的投入品,那这个投入品和产出品是同一个 ProductStructureDto productStructureDto = new ProductStructureDto(); productStructureDto.setProductModelId(productProcessRouteItem.getProductModelId()); @@ -155,8 +155,6 @@ productionProductInput.setQuantity(productStructureDto.getUnitQuantity().multiply(dto.getQuantity())); productionProductInput.setProductMainId(productionProductMain.getId()); productionProductInputMapper.insert(productionProductInput); stockUtils.substractStock(productStructureDto.getProductModelId(), productionProductInput.getQuantity(), StockOutQualifiedRecordTypeEnum.PRODUCTION_REPORT_STOCK_OUT.getCode(), productionProductMain.getId()); } /*新增报工产出表*/ ProductionProductOutput productionProductOutput = new ProductionProductOutput(); @@ -165,8 +163,8 @@ productionProductOutput.setQuantity(dto.getQuantity() != null ? dto.getQuantity() : BigDecimal.ZERO); productionProductOutput.setScrapQty(dto.getScrapQty() != null ? dto.getScrapQty() : BigDecimal.ZERO); productionProductOutputMapper.insert(productionProductOutput); //合格数量=报工数量-报废数量 BigDecimal productQty = productionProductOutput.getQuantity().subtract(productionProductOutput.getScrapQty()); //合格数量=报工数量 BigDecimal productQty = productionProductOutput.getQuantity(); //只有合格数量>0才能增加相应数据 if (productQty.compareTo(BigDecimal.ZERO) > 0) { /*新增质检*/ @@ -220,6 +218,7 @@ if (productWorkOrder.getCompleteQuantity().compareTo(productWorkOrder.getPlanQuantity()) == 0) { productWorkOrder.setActualEndTime(LocalDate.now());//实际结束时间 } productWorkOrder.setTotalInvestment(dto.getTotalInvestment()); productWorkOrderMapper.updateById(productWorkOrder); //生产订单 ProductOrder productOrder = productOrderMapper.selectById(productWorkOrder.getProductOrderId()); src/main/java/com/ruoyi/sales/service/impl/SalesLedgerServiceImpl.java
@@ -9,7 +9,6 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.ruoyi.account.service.AccountIncomeService; import com.ruoyi.aftersalesservice.pojo.AfterSalesService; import com.ruoyi.basic.mapper.CustomerMapper; import com.ruoyi.basic.mapper.ProductMapper; import com.ruoyi.basic.mapper.ProductModelMapper; @@ -27,19 +26,15 @@ import com.ruoyi.other.mapper.TempFileMapper; import com.ruoyi.other.pojo.TempFile; import com.ruoyi.production.mapper.*; import com.ruoyi.production.pojo.*; import com.ruoyi.production.service.ProductionProductMainService; import com.ruoyi.production.service.impl.ProductionProductMainServiceImpl; import com.ruoyi.project.system.domain.SysDept; import com.ruoyi.project.system.domain.SysUser; import com.ruoyi.project.system.mapper.SysDeptMapper; import com.ruoyi.project.system.mapper.SysUserMapper; import com.ruoyi.quality.mapper.QualityInspectMapper; import com.ruoyi.quality.pojo.QualityInspect; import com.ruoyi.sales.dto.*; import com.ruoyi.sales.mapper.*; import com.ruoyi.sales.pojo.*; import com.ruoyi.sales.service.ISalesLedgerProductService; import com.ruoyi.sales.service.ISalesLedgerService; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; @@ -770,7 +765,7 @@ salesLedgerProduct.setPendingInvoiceTotal(salesLedgerProduct.getTaxInclusiveTotalPrice()); salesLedgerProductMapper.insert(salesLedgerProduct); // 添加生产数据 salesLedgerProductServiceImpl.addProductionData(salesLedgerProduct); // salesLedgerProductServiceImpl.addProductionData(salesLedgerProduct); } } } src/main/resources/mapper/production/ProductionProductMainMapper.xml
@@ -16,6 +16,7 @@ select ppm.*, pwo.work_order_no as workOrderNo, pwo.status as workOrderStatus, pwo.total_investment as totalInvestment, u.nick_name as nickName, p.product_name as productName, pp.name as process,