doc/20260113-product_model.sql
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,6 @@ alter table product_model add product_code varchar(255) null comment '产åç¼ç '; alter table process_route add process_route_code varchar(255) null comment 'å·¥èºè·¯çº¿ç¼ç '; src/main/java/com/ruoyi/basic/mapper/ProductModelMapper.java
@@ -16,4 +16,7 @@ public interface ProductModelMapper extends BaseMapper<ProductModel> { IPage<ProductModel> listPageProductModel(Page<ProductModel> page, @Param("c") ProductModel productModel); ProductModel selectLatestRecord(); } src/main/java/com/ruoyi/basic/pojo/ProductModel.java
@@ -27,6 +27,9 @@ @Excel(name = "产ååç§°") private String productName; @Excel(name = "产åç¼ç ") private String productCode; /** * è§æ ¼åå· */ src/main/java/com/ruoyi/basic/service/impl/ProductModelServiceImpl.java
@@ -14,12 +14,15 @@ import com.ruoyi.basic.service.IProductModelService; import com.ruoyi.common.utils.bean.BeanUtils; import com.ruoyi.common.utils.poi.ExcelUtil; import com.ruoyi.common.utils.uuid.IdUtils; import com.ruoyi.sales.mapper.SalesLedgerProductMapper; import com.ruoyi.sales.pojo.SalesLedgerProduct; import lombok.AllArgsConstructor; import org.springframework.stereotype.Service; import org.springframework.web.multipart.MultipartFile; import java.time.LocalDate; import java.time.format.DateTimeFormatter; import java.util.Arrays; import java.util.List; import java.util.Map; @@ -45,12 +48,21 @@ if (productModelDto.getId() == null) { ProductModel productModel = new ProductModel(); BeanUtils.copyProperties(productModelDto,productModel); return productModelMapper.insert(productModel); productModelMapper.insert(productModel); String dateStr = LocalDate.now().format(DateTimeFormatter.ofPattern("yyyyMMdd")); String idStr = String.format("%06d", productModel.getId()); // å ä½è¡¥0 String newProductCode = "BM" + dateStr + idStr; // æ´æ°æ°æ®åºä¸çproductCode productModel.setProductCode(newProductCode); return productModelMapper.updateById(productModel); } else { return productModelMapper.updateById(productModelDto); } } @Override public int delProductModel(Long[] ids) { List<SalesLedgerProduct> salesLedgerProducts = salesLedgerProductMapper.selectList(new QueryWrapper<SalesLedgerProduct>() src/main/java/com/ruoyi/production/controller/ProcessRouteController.java
@@ -29,7 +29,7 @@ @ApiOperation("æ°å¢å·¥èºè·¯çº¿") @PostMapping () public R add(@RequestBody ProcessRoute processRoute) { return R.ok(processRouteService.save(processRoute)); return R.ok(processRouteService.saveProcessRoute(processRoute)); } @ApiOperation("ä¿®æ¹å·¥èºè·¯çº¿") @PutMapping () src/main/java/com/ruoyi/production/pojo/ProcessRoute.java
@@ -32,4 +32,7 @@ @ApiModelProperty(value = "æ´æ°æ¶é´") @TableField(fill = FieldFill.UPDATE) private LocalDateTime updateTime; @ApiModelProperty(value = "å·¥èºè·¯çº¿ç¼ç ") private String processRouteCode; } src/main/java/com/ruoyi/production/service/ProcessRouteService.java
@@ -5,8 +5,11 @@ import com.baomidou.mybatisplus.extension.service.IService; import com.ruoyi.production.dto.ProcessRouteDto; import com.ruoyi.production.pojo.ProcessRoute; import io.swagger.models.auth.In; public interface ProcessRouteService extends IService<ProcessRoute> { IPage<ProcessRouteDto> pageProcessRouteDto(Page<ProcessRouteDto> page, ProcessRouteDto processRouteDto); Integer saveProcessRoute(ProcessRoute processRoute); } src/main/java/com/ruoyi/production/service/impl/ProcessRouteServiceImpl.java
@@ -13,6 +13,9 @@ import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import java.time.LocalDate; import java.time.format.DateTimeFormatter; @Service @AllArgsConstructor @Slf4j @@ -26,4 +29,15 @@ return processRouteMapper.pageProcessRouteDto(page, processRouteDto); } @Override public Integer saveProcessRoute(ProcessRoute processRoute) { this.save(processRoute); String dateStr = LocalDate.now().format(DateTimeFormatter.ofPattern("yyyyMMdd")); String idStr = String.format("%06d", processRoute.getId()); String newProductCode = "GY" + dateStr + idStr; // æ´æ°æ°æ®åºä¸çproductCode processRoute.setProcessRouteCode(newProductCode); return processRouteMapper.updateById(processRoute); } } src/main/java/com/ruoyi/sales/service/impl/InvoiceRegistrationServiceImpl.java
@@ -78,6 +78,8 @@ invoiceRegistrationProduct.setSalesLedgerProductId(productDatum.getId().intValue()); invoiceRegistrationProductMapper.insert(invoiceRegistrationProduct); productDatum.setInvoiceNum(currentInvoiceNum); productDatum.setInvoiceAmount(productDatum.getCurrentInvoiceAmount()); salesLedgerProductMapper.updateById(productDatum); // æ°å¢ä¸æ¡å¼ç¥¨å°è´¦æ°æ® InvoiceLedger invoiceLedger = new InvoiceLedger(); src/main/java/com/ruoyi/sales/service/impl/SalesLedgerProductServiceImpl.java
@@ -70,6 +70,7 @@ // .eq(SalesLedgerProduct::getType, salesLedgerProduct.getType()); List<SalesLedgerProduct> salesLedgerProducts = salesLedgerProductMapper.selectSalesLedgerProductList(salesLedgerProduct); if(!CollectionUtils.isEmpty(salesLedgerProducts)){ // å¼ç¥¨ InvoiceRegistrationProductDto invoiceRegistrationProductDto = new InvoiceRegistrationProductDto(); invoiceRegistrationProductDto.setSalesLedgerId(salesLedgerProduct.getSalesLedgerId().intValue()); List<InvoiceRegistrationProductDto> invoiceRegistrationProductDtoList = invoiceRegistrationProductMapper.invoiceRegistrationProductList(invoiceRegistrationProductDto); @@ -78,14 +79,20 @@ for (SalesLedgerProduct ledgerProduct : salesLedgerProducts) { BigDecimal invoiceNum = BigDecimal.ZERO; BigDecimal invoiceAmount = BigDecimal.ZERO; BigDecimal noInvoiceNum = BigDecimal.ZERO; BigDecimal noInvoiceAmount = BigDecimal.ZERO; for (InvoiceRegistrationProductDto registrationProductDto : invoiceRegistrationProductDtoList) { if(ledgerProduct.getId().intValue() == registrationProductDto.getSalesLedgerProductId()){ invoiceNum = invoiceNum.add(registrationProductDto.getInvoiceNum()); invoiceAmount = invoiceAmount.add(registrationProductDto.getInvoiceAmount()); noInvoiceNum = ledgerProduct.getQuantity().subtract(invoiceNum); noInvoiceAmount = ledgerProduct.getTaxInclusiveTotalPrice().subtract(invoiceAmount); } } ledgerProduct.setInvoiceNum(invoiceNum); ledgerProduct.setInvoiceAmount(invoiceAmount); ledgerProduct.setNoInvoiceNum(noInvoiceNum); ledgerProduct.setNoInvoiceAmount(noInvoiceAmount); } } src/main/resources/mapper/basic/ProductModelMapper.xml
@@ -13,6 +13,7 @@ <result column="tenant_id" property="tenantId" /> <result column="product_name" property="productName" /> <result column="product_id" property="productId" /> <result column="product_code" property="productCode" /> </resultMap> <select id="listPageProductModel" resultType="com.ruoyi.basic.pojo.ProductModel"> select pm.*,p.product_name @@ -28,6 +29,11 @@ </where> order by pm.id </select> <select id="selectLatestRecord" resultType="com.ruoyi.basic.pojo.ProductModel"> SELECT * FROM product_model ORDER BY create_time DESC, id DESC LIMIT 1 </select> </mapper>