src/main/java/com/ruoyi/procurementrecord/dto/ProcurementPageDto.java
@@ -54,7 +54,7 @@ @Excel(name = "客户名称") private String customerName; private String salesLedgerProductId; private Long salesLedgerProductId; /** * 出入库数量 @@ -120,6 +120,11 @@ */ @Excel(name = "产品大类") private String productCategory; /** * 产品id */ @Excel(name = "产品id") private Long productId; /** * 规格型号 src/main/java/com/ruoyi/procurementrecord/dto/ProcurementPageDtoCopy.java
@@ -131,6 +131,11 @@ */ @Excel(name = "产品大类") private String productCategory; /** * 产品id */ @Excel(name = "产品id") private Long productId; /** * 规格型号 src/main/java/com/ruoyi/production/service/impl/ProductionProductMainServiceImpl.java
@@ -185,7 +185,7 @@ for (ProductStructureDto productStructureDto : productStructureDtos) { ProductionProductInput productionProductInput = new ProductionProductInput(); productionProductInput.setProductModelId(productStructureDto.getProductModelId()); productionProductInput.setQuantity(productStructureDto.getUnitQuantity()); productionProductInput.setQuantity(productStructureDto.getUnitQuantity().multiply(dto.getQuantity())); productionProductInput.setProductMainId(productionProductMain.getId()); productionProductInputMapper.insert(productionProductInput); } src/main/java/com/ruoyi/quality/pojo/QualityInspect.java
@@ -144,6 +144,7 @@ * 报工id */ private Long productMainId; //不合格现象 private String defectivePhenomena; } src/main/java/com/ruoyi/sales/controller/SalesLedgerProductController.java
@@ -2,7 +2,12 @@ import javax.servlet.http.HttpServletResponse; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.ruoyi.common.utils.poi.ExcelUtil; import com.ruoyi.procurementrecord.dto.ProcurementPageDto; import com.ruoyi.procurementrecord.dto.ProcurementPageDtoCopy; import com.ruoyi.procurementrecord.service.ProcurementRecordService; import com.ruoyi.sales.pojo.SalesLedgerProduct; import com.ruoyi.sales.service.ISalesLedgerProductService; import org.springframework.beans.factory.annotation.Autowired; @@ -33,7 +38,8 @@ { @Autowired private ISalesLedgerProductService salesLedgerProductService; @Autowired private ProcurementRecordService procurementRecordService; /** * 查询产品信息列表 */ @@ -41,6 +47,17 @@ public AjaxResult list(SalesLedgerProduct salesLedgerProduct) { List<SalesLedgerProduct> list = salesLedgerProductService.selectSalesLedgerProductList(salesLedgerProduct); list.forEach(item -> { ProcurementPageDto procurementDto = new ProcurementPageDto(); procurementDto.setSalesLedgerProductId(item.getId()); procurementDto.setProductCategory(item.getProductCategory()); IPage<ProcurementPageDtoCopy> result = procurementRecordService.listPageCopyByProduction(new Page<>(1,-1), procurementDto); ProcurementPageDtoCopy procurementDtoCopy = result.getRecords().get(0); if(item.getQuantity().compareTo(procurementDtoCopy.getInboundNum0())>=0){ item.setApproveStatus(1); salesLedgerProductService.addOrUpdateSalesLedgerProduct(item); } }); return AjaxResult.success(list); } src/main/java/com/ruoyi/sales/controller/ShipmentApprovalController.java
@@ -6,6 +6,10 @@ import com.ruoyi.common.utils.poi.ExcelUtil; import com.ruoyi.framework.web.controller.BaseController; import com.ruoyi.framework.web.domain.AjaxResult; import com.ruoyi.procurementrecord.dto.ProcurementAddDto; import com.ruoyi.procurementrecord.dto.ProcurementRecordOutAdd; import com.ruoyi.procurementrecord.pojo.ProcurementRecordOut; import com.ruoyi.procurementrecord.service.ProcurementRecordOutService; import com.ruoyi.sales.mapper.ShipmentApprovalMapper; import com.ruoyi.sales.mapper.ShippingInfoMapper; import com.ruoyi.sales.pojo.SalesLedgerProduct; @@ -21,6 +25,8 @@ import org.springframework.web.bind.annotation.*; import javax.servlet.http.HttpServletResponse; import java.math.BigDecimal; import java.time.LocalDateTime; import java.util.List; @RestController @@ -35,6 +41,8 @@ @Autowired private ISalesLedgerProductService salesLedgerProductService; @Autowired private ProcurementRecordOutService procurementRecordOutService; @GetMapping("/listPage") @ApiOperation("发货审批列表") @@ -58,6 +66,18 @@ SalesLedgerProduct salesLedgerProduct = salesLedgerProductService.getById(shipmentApproval.getSalesLedgerProductId()); salesLedgerProduct.setApproveStatus(req.getApproveStatus()); salesLedgerProductService.updateById(salesLedgerProduct); if(req.getApproveStatus()==3){ //发货审批通过,生产该订单出库记录 ProcurementRecordOutAdd procurementRecordOutAdd = new ProcurementRecordOutAdd(); procurementRecordOutAdd.setSalesLedgerProductId(Math.toIntExact(salesLedgerProduct.getId())); procurementRecordOutAdd.setType(2); procurementRecordOutAdd.setUserId(Math.toIntExact(getUserId())); procurementRecordOutAdd.setQuantity(String.valueOf(salesLedgerProduct.getQuantity())); //获取当前时间 LocalDateTime now = LocalDateTime.now(); procurementRecordOutAdd.setTime(now.toString()); procurementRecordOutService.stockout(procurementRecordOutAdd); } } return update ? AjaxResult.success() : AjaxResult.error(); } src/main/java/com/ruoyi/sales/pojo/SalesLedgerProduct.java
@@ -200,13 +200,13 @@ @JsonFormat(pattern = "yyyy-MM-dd") private Date shippingDate; @TableField(exist = false) @ApiModelProperty(value = "生产状态") private String productionStatus = "未开始"; // @TableField(exist = false) // @ApiModelProperty(value = "生产状态") // private String productionStatus = "未开始"; /** * 发货审批状态 */ // @TableField(exist = false) @ApiModelProperty(value = "审批状态") @ApiModelProperty(value = "审批状态:0未生产,1已生产,2待审核(审核中),3审核完成,4审核失败") private Integer approveStatus; } src/main/java/com/ruoyi/sales/service/impl/SalesLedgerServiceImpl.java
@@ -24,6 +24,7 @@ import com.ruoyi.project.system.domain.SysDept; import com.ruoyi.project.system.mapper.SysDeptMapper; import com.ruoyi.quality.mapper.QualityInspectMapper; import com.ruoyi.quality.pojo.QualityInspect; import com.ruoyi.sales.dto.MonthlyAmountDto; import com.ruoyi.sales.dto.SalesLedgerDto; import com.ruoyi.sales.mapper.*; @@ -431,6 +432,16 @@ if (!CollectionUtils.isEmpty(productMainIds)) { productionProductOutputMapper.deleteByProductMainIds(productMainIds); productionProductInputMapper.deleteByProductMainIds(productMainIds); List<QualityInspect> qualityInspects = qualityInspectMapper.selectList( new LambdaQueryWrapper<QualityInspect>() .in(QualityInspect::getProductMainId, productMainIds) ); qualityInspects.forEach(qualityInspect -> { //inspectState=1 已提交 不能删除 if(qualityInspect.getInspectState() == 1){ throw new RuntimeException("已提交的检验单不能删除"); } }); qualityInspectMapper.deleteByProductMainIds(productMainIds); } src/main/resources/mapper/procurementrecord/ProcurementRecordMapper.xml
@@ -255,7 +255,8 @@ t1.create_time, t1.update_time, t1.create_by, t2.warn_num t2.warn_num, t2.product_id from procurement_record_storage t1 left join sales_ledger_product t2 on t2.id = t1.sales_ledger_product_id and t2.type = 1 left join sales_ledger t3 on t3.id = t2.sales_ledger_id @@ -297,7 +298,8 @@ t1.create_time, t1.update_time, t1.create_by, t2.warn_num t2.warn_num, t2.product_id from procurement_record_storage t1 left join sales_ledger_product t2 on t2.id = t1.sales_ledger_product_id and t2.type = 1 left join sales_ledger t3 on t3.id = t2.sales_ledger_id @@ -312,6 +314,9 @@ <if test="req.timeStr != null and req.timeStr != ''"> and t1.create_time like concat('%',#{req.timeStr},'%') </if> <if test="req.salesLedgerProductId != null and req.salesLedgerProductId != ''"> and t1.sales_ledger_product_id = #{req.salesLedgerProductId} </if> <if test="req.reportDate != null"> and t1.create_time >= #{req.reportDate} and t1.create_time < DATE_ADD(#{req.reportDate}, INTERVAL 1 DAY) </if>