| 2026-03-25 | gongchunyi | ![]() |
| 2026-03-25 | gongchunyi | ![]() |
doc/ºÓÄϺױÚÌìãå¸Ö»¯²£Á§³§.sql
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,41 @@ CREATE TABLE sales_ledger_product_process ( id INT PRIMARY KEY AUTO_INCREMENT, sales_product_id INT NOT NULL COMMENT 'éå®äº§åID(å ³èsales_ledger_product.id)', process_name VARCHAR(100) NOT NULL COMMENT 'å·¥èºåç§°', quantity DECIMAL(12, 3) DEFAULT NULL COMMENT 'æ°é', unit_price DECIMAL(10, 2) DEFAULT NULL COMMENT 'åä»·', remark VARCHAR(255) DEFAULT NULL, create_time DATETIME DEFAULT CURRENT_TIMESTAMP ) COMMENT ='éå®äº§åå å·¥æç»'; DROP TABLE IF EXISTS `sales_ledger_product_process_bind`; CREATE TABLE `sales_ledger_product_process_bind` ( `id` int NOT NULL AUTO_INCREMENT COMMENT '主é®', `sales_ledger_product_id` int NULL DEFAULT NULL COMMENT 'éå®å°è´¦äº§åä¿¡æ¯ID', `sales_ledger_product_process_id` int NULL DEFAULT NULL COMMENT 'éå®äº§åå å·¥æç»ID', `quantity` int NULL DEFAULT NULL COMMENT 'å å·¥æ°é', PRIMARY KEY (`id`) USING BTREE ) ENGINE = InnoDB AUTO_INCREMENT = 2 CHARACTER SET = utf8mb3 COLLATE = utf8mb3_general_ci COMMENT = 'éå®äº§åé¢å¤å å·¥æ°é' ROW_FORMAT = Dynamic; SET FOREIGN_KEY_CHECKS = 1; ALTER TABLE sales_ledger_product ADD COLUMN actual_piece_area DECIMAL(18, 6) DEFAULT NULL COMMENT 'å®é åçé¢ç§¯(ã¡)', ADD COLUMN actual_total_area DECIMAL(18, 6) DEFAULT NULL COMMENT 'å®é æ»é¢ç§¯(ã¡)', ADD COLUMN settle_piece_area DECIMAL(18, 6) DEFAULT NULL COMMENT 'ç»ç®åçé¢ç§¯(ã¡)', ADD COLUMN settle_total_area DECIMAL(18, 6) DEFAULT NULL COMMENT 'ç»ç®æ»é¢ç§¯(ã¡)'; ALTER TABLE sales_ledger_product ADD COLUMN process_requirement VARCHAR(500) DEFAULT NULL COMMENT 'å å·¥è¦æ±'; ALTER TABLE sales_ledger_product ADD COLUMN remark VARCHAR(500) DEFAULT NULL COMMENT '夿³¨'; ALTER TABLE sales_ledger_product_process CHANGE COLUMN remark code VARCHAR(255) COMMENT 'ç¼ç '; src/main/java/com/ruoyi/sales/controller/SalesLedgerProductProcessBindController.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,26 @@ package com.ruoyi.sales.controller; import com.ruoyi.sales.service.ISalesLedgerProductProcessBindService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; /** * <p> * éå®äº§åé¢å¤å å·¥æ°é å端æ§å¶å¨ * </p> * * @author deslrey * @since 2026-03-25 */ @RestController @RequestMapping("/salesLedgerProductProcessBind") public class SalesLedgerProductProcessBindController { @Autowired private ISalesLedgerProductProcessBindService salesLedgerProductProcessBindService; } src/main/java/com/ruoyi/sales/controller/SalesLedgerProductProcessController.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,55 @@ package com.ruoyi.sales.controller; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.ruoyi.framework.web.domain.AjaxResult; import com.ruoyi.sales.pojo.SalesLedgerProductProcess; import com.ruoyi.sales.service.ISalesLedgerProductProcessService; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiOperation; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; /** * <p> * éå®äº§åå å·¥æç» å端æ§å¶å¨ * </p> * * @author deslrey * @since 2026-03-25 */ @RestController @RequestMapping("/salesLedgerProductProcess") @ApiModel(value = "SalesLedgerProductProcessController", description = "éå®äº§åå å·¥æç»") public class SalesLedgerProductProcessController { @Autowired private ISalesLedgerProductProcessService salesLedgerProductProcessService; @ApiOperation("å页æ¥è¯¢å å·¥æç»") @GetMapping("/list") public AjaxResult list(Page<SalesLedgerProductProcess> page, String name) { return AjaxResult.success(salesLedgerProductProcessService.salesLedgerProductProcessList(page, name)); } @ApiOperation("æ°å¢å å·¥æç»") @PostMapping("/add") public AjaxResult add(@RequestBody SalesLedgerProductProcess process) { salesLedgerProductProcessService.addProcess(process); return AjaxResult.success(); } @ApiOperation("ä¿®æ¹å å·¥æç»") @PutMapping("/update") public AjaxResult update(@RequestBody SalesLedgerProductProcess process) { salesLedgerProductProcessService.updateProcess(process); return AjaxResult.success(); } @ApiOperation("å é¤å å·¥æç»") @DeleteMapping("/delete/{id}") public AjaxResult delete(@PathVariable Integer id) { salesLedgerProductProcessService.deleteProcess(id); return AjaxResult.success(); } } src/main/java/com/ruoyi/sales/dto/SalesLedgerProductDto.java
@@ -3,6 +3,7 @@ import com.fasterxml.jackson.annotation.JsonFormat; import com.ruoyi.framework.aspectj.lang.annotation.Excel; import com.ruoyi.sales.pojo.SalesLedgerProduct; import com.ruoyi.sales.pojo.SalesLedgerProductProcess; import io.swagger.annotations.ApiModelProperty; import lombok.Data; @@ -11,6 +12,7 @@ import java.math.BigDecimal; import java.time.LocalDate; import java.util.List; @Data public class SalesLedgerProductDto extends SalesLedgerProduct { @@ -65,4 +67,7 @@ @ApiModelProperty(value = "éè´§æ»æ°") private BigDecimal totalReturnNum; @ApiModelProperty("éå®äº§åé¢å¤å å·¥") private List<SalesLedgerProductProcess> salesProductProcessList; } src/main/java/com/ruoyi/sales/mapper/SalesLedgerProductProcessBindMapper.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,16 @@ package com.ruoyi.sales.mapper; import com.ruoyi.sales.pojo.SalesLedgerProductProcessBind; import com.baomidou.mybatisplus.core.mapper.BaseMapper; /** * <p> * éå®äº§åé¢å¤å å·¥æ°é Mapper æ¥å£ * </p> * * @author deslrey * @since 2026-03-25 */ public interface SalesLedgerProductProcessBindMapper extends BaseMapper<SalesLedgerProductProcessBind> { } src/main/java/com/ruoyi/sales/mapper/SalesLedgerProductProcessMapper.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,16 @@ package com.ruoyi.sales.mapper; import com.ruoyi.sales.pojo.SalesLedgerProductProcess; import com.baomidou.mybatisplus.core.mapper.BaseMapper; /** * <p> * éå®äº§åå å·¥æç» Mapper æ¥å£ * </p> * * @author deslrey * @since 2026-03-25 */ public interface SalesLedgerProductProcessMapper extends BaseMapper<SalesLedgerProductProcess> { } src/main/java/com/ruoyi/sales/pojo/SalesLedgerProduct.java
@@ -13,6 +13,7 @@ import java.math.BigDecimal; import java.time.LocalDateTime; import java.util.Date; import java.util.List; /** * 产åä¿¡æ¯å¯¹è±¡ sales_ledger_product @@ -111,22 +112,22 @@ /** * æ¬æ¬¡æ¥ç¥¨æ° */ private BigDecimal ticketsNum=BigDecimal.ZERO; private BigDecimal ticketsNum = BigDecimal.ZERO; /** * æ¬æ¬¡æ¥ç¥¨éé¢(å ) */ private BigDecimal ticketsAmount=BigDecimal.ZERO; private BigDecimal ticketsAmount = BigDecimal.ZERO; /** * æªæ¥ç¥¨æ° */ private BigDecimal futureTickets=BigDecimal.ZERO; private BigDecimal futureTickets = BigDecimal.ZERO; /** * æªæ¥ç¥¨éé¢(å ) */ private BigDecimal futureTicketsAmount=BigDecimal.ZERO; private BigDecimal futureTicketsAmount = BigDecimal.ZERO; @ApiModelProperty(value = "å¼ç¥¨æ°") private BigDecimal invoiceNum = BigDecimal.ZERO; @@ -149,7 +150,7 @@ private BigDecimal currentInvoiceAmount; /** * 产åid * 产åid */ private Long productId; @@ -233,6 +234,46 @@ @ApiModelProperty(value = "æ¯å¦è´¨æ£") private Boolean isChecked; @ApiModelProperty("宽") private BigDecimal width; @ApiModelProperty("é«") private BigDecimal height; @ApiModelProperty("å å·¥è¦æ±") private String processRequirement; @ApiModelProperty("夿³¨") private String remark; /** * å®é åçé¢ç§¯(ã¡) */ @ApiModelProperty("å®é åçé¢ç§¯(ã¡)") private BigDecimal actualPieceArea; /** * å®é æ»é¢ç§¯(ã¡) */ @ApiModelProperty("å®é æ»é¢ç§¯(ã¡)") private BigDecimal actualTotalArea; /** * ç»ç®åçé¢ç§¯(ã¡) */ @ApiModelProperty("ç»ç®åçé¢ç§¯(ã¡)") private BigDecimal settlePieceArea; /** * ç»ç®æ»é¢ç§¯(ã¡) */ @ApiModelProperty("ç»ç®æ»é¢ç§¯(ã¡)") private BigDecimal settleTotalArea; @TableField(exist = false) @ApiModelProperty("éå®äº§åé¢å¤å å·¥") private List<SalesLedgerProductProcess> salesProductProcessList; @TableField(exist = false) private Integer hasSufficientStock; src/main/java/com/ruoyi/sales/pojo/SalesLedgerProductProcess.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,53 @@ package com.ruoyi.sales.pojo; import java.math.BigDecimal; import com.baomidou.mybatisplus.annotation.TableName; import com.baomidou.mybatisplus.annotation.IdType; import com.baomidou.mybatisplus.annotation.TableId; import java.time.LocalDateTime; import java.io.Serializable; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Data; import lombok.EqualsAndHashCode; import lombok.experimental.Accessors; /** * <p> * éå®äº§åå å·¥æç» * </p> * * @author deslrey * @since 2026-03-25 */ @Data @EqualsAndHashCode(callSuper = false) @Accessors(chain = true) @TableName("sales_ledger_product_process") @ApiModel(value = "SalesLedgerProductProcess对象", description = "éå®äº§åå å·¥æç»") public class SalesLedgerProductProcess implements Serializable { private static final long serialVersionUID = 1L; @TableId(value = "id", type = IdType.AUTO) private Integer id; @ApiModelProperty(value = "å·¥èºåç§°") private String processName; @ApiModelProperty(value = "æ°é") private Integer quantity; @ApiModelProperty(value = "åä»·") private BigDecimal unitPrice; @ApiModelProperty(value = "ç¼ç ") private String code; private LocalDateTime createTime; } src/main/java/com/ruoyi/sales/pojo/SalesLedgerProductProcessBind.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,44 @@ package com.ruoyi.sales.pojo; import com.baomidou.mybatisplus.annotation.TableName; import com.baomidou.mybatisplus.annotation.IdType; import com.baomidou.mybatisplus.annotation.TableId; import java.io.Serializable; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Data; import lombok.EqualsAndHashCode; import lombok.experimental.Accessors; /** * <p> * éå®äº§åé¢å¤å å·¥æ°é * </p> * * @author deslrey * @since 2026-03-25 */ @Data @EqualsAndHashCode(callSuper = false) @Accessors(chain = true) @TableName("sales_ledger_product_process_bind") @ApiModel(value="SalesLedgerProductProcessBind对象", description="éå®äº§åé¢å¤å å·¥æ°é") public class SalesLedgerProductProcessBind implements Serializable { private static final long serialVersionUID = 1L; @ApiModelProperty(value = "主é®") @TableId(value = "id", type = IdType.AUTO) private Integer id; @ApiModelProperty(value = "éå®å°è´¦äº§åä¿¡æ¯ID") private Integer salesLedgerProductId; @ApiModelProperty(value = "éå®äº§åå å·¥æç»ID") private Integer salesLedgerProductProcessId; @ApiModelProperty(value = "å å·¥æ°é") private Integer quantity; } src/main/java/com/ruoyi/sales/service/ISalesLedgerProductProcessBindService.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,16 @@ package com.ruoyi.sales.service; import com.ruoyi.sales.pojo.SalesLedgerProductProcessBind; import com.baomidou.mybatisplus.extension.service.IService; /** * <p> * éå®äº§åé¢å¤å å·¥æ°é æå¡ç±» * </p> * * @author deslrey * @since 2026-03-25 */ public interface ISalesLedgerProductProcessBindService extends IService<SalesLedgerProductProcessBind> { } src/main/java/com/ruoyi/sales/service/ISalesLedgerProductProcessService.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,24 @@ package com.ruoyi.sales.service; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.ruoyi.sales.pojo.SalesLedgerProductProcess; import com.baomidou.mybatisplus.extension.service.IService; /** * <p> * éå®äº§åå å·¥æç» æå¡ç±» * </p> * * @author deslrey * @since 2026-03-25 */ public interface ISalesLedgerProductProcessService extends IService<SalesLedgerProductProcess> { Page<SalesLedgerProductProcess> salesLedgerProductProcessList(Page<SalesLedgerProductProcess> page, String name); void addProcess(SalesLedgerProductProcess process); void updateProcess(SalesLedgerProductProcess process); void deleteProcess(Integer id); } src/main/java/com/ruoyi/sales/service/impl/SalesLedgerProductProcessBindServiceImpl.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,20 @@ package com.ruoyi.sales.service.impl; import com.ruoyi.sales.pojo.SalesLedgerProductProcessBind; import com.ruoyi.sales.mapper.SalesLedgerProductProcessBindMapper; import com.ruoyi.sales.service.ISalesLedgerProductProcessBindService; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import org.springframework.stereotype.Service; /** * <p> * éå®äº§åé¢å¤å å·¥æ°é æå¡å®ç°ç±» * </p> * * @author deslrey * @since 2026-03-25 */ @Service public class SalesLedgerProductProcessBindServiceImpl extends ServiceImpl<SalesLedgerProductProcessBindMapper, SalesLedgerProductProcessBind> implements ISalesLedgerProductProcessBindService { } src/main/java/com/ruoyi/sales/service/impl/SalesLedgerProductProcessServiceImpl.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,65 @@ package com.ruoyi.sales.service.impl; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.ruoyi.sales.pojo.SalesLedgerProductProcess; import com.ruoyi.sales.mapper.SalesLedgerProductProcessMapper; import com.ruoyi.sales.service.ISalesLedgerProductProcessService; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import org.springframework.stereotype.Service; import org.springframework.util.StringUtils; /** * <p> * éå®äº§åå å·¥æç» æå¡å®ç°ç±» * </p> * * @author deslrey * @since 2026-03-25 */ @Service public class SalesLedgerProductProcessServiceImpl extends ServiceImpl<SalesLedgerProductProcessMapper, SalesLedgerProductProcess> implements ISalesLedgerProductProcessService { @Override public Page<SalesLedgerProductProcess> salesLedgerProductProcessList(Page<SalesLedgerProductProcess> page, String name) { LambdaQueryWrapper<SalesLedgerProductProcess> wrapper = new LambdaQueryWrapper<>(); if (StringUtils.hasText(name)) { wrapper.like(SalesLedgerProductProcess::getProcessName, name); } return this.page(page, wrapper); } @Override public void addProcess(SalesLedgerProductProcess process) { checkDuplicate(process.getProcessName(), null, process.getProcessName()); this.save(process); } @Override public void updateProcess(SalesLedgerProductProcess process) { checkDuplicate(process.getProcessName(), process.getId(), process.getProcessName()); this.updateById(process); } @Override public void deleteProcess(Integer id) { this.removeById(id); } private void checkDuplicate(String processName, Integer excludeId, String code) { LambdaQueryWrapper<SalesLedgerProductProcess> wrapper = new LambdaQueryWrapper<>(); wrapper.and(w -> w .eq(SalesLedgerProductProcess::getProcessName, processName) .or() .eq(SalesLedgerProductProcess::getCode, code)); if (excludeId != null) { wrapper.ne(SalesLedgerProductProcess::getId, excludeId); } if (this.count(wrapper) > 0) { throw new RuntimeException("å·¥åºåç§°æç¼ç å·²åå¨"); } } } src/main/java/com/ruoyi/sales/service/impl/SalesLedgerServiceImpl.java
@@ -37,6 +37,8 @@ import com.ruoyi.sales.dto.*; import com.ruoyi.sales.mapper.*; import com.ruoyi.sales.pojo.*; import com.ruoyi.sales.service.ISalesLedgerProductProcessBindService; import com.ruoyi.sales.service.ISalesLedgerProductProcessService; import com.ruoyi.sales.service.ISalesLedgerService; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; @@ -110,6 +112,11 @@ private final ProductionProductInputMapper productionProductInputMapper; private final QualityInspectMapper qualityInspectMapper; private final RedisTemplate<String, String> redisTemplate; private final ISalesLedgerProductProcessService salesLedgerProductProcessService; private final ISalesLedgerProductProcessBindService salesLedgerProductProcessBindService; @Autowired private SysDeptMapper sysDeptMapper; @Value("${file.upload-dir}") @@ -154,7 +161,7 @@ // æ¥è¯¢éè´§ä¿¡æ¯ List<Long> productIds = salesLedgerProducts.stream().map(SalesLedgerProduct::getId).collect(Collectors.toList()); List<SimpleReturnOrderGroupDto> groupListByProductIds = new ArrayList<>(); if(CollectionUtils.isNotEmpty(productIds)){ if (CollectionUtils.isNotEmpty(productIds)) { groupListByProductIds = purchaseReturnOrderProductsMapper.getReturnOrderGroupListByProductIds(productIds); } Map<Long, BigDecimal> returnOrderGroupDtoMap = groupListByProductIds.stream().collect(Collectors.toMap(SimpleReturnOrderGroupDto::getSalesLedgerProductId, SimpleReturnOrderGroupDto::getSumReturnQuantity)); @@ -194,6 +201,23 @@ .last("limit 1")); if (shippingInfo != null) { product.setShippingStatus(shippingInfo.getStatus()); } // å å·¥æç»ï¼å æ¥bind表è·å该产åå ³èçå·¥åºåæ°é List<SalesLedgerProductProcessBind> bindList = salesLedgerProductProcessBindService.list( new LambdaQueryWrapper<SalesLedgerProductProcessBind>() .eq(SalesLedgerProductProcessBind::getSalesLedgerProductId, product.getId())); if (!bindList.isEmpty()) { List<Integer> processIds = bindList.stream() .map(SalesLedgerProductProcessBind::getSalesLedgerProductProcessId) .collect(Collectors.toList()); Map<Integer, Integer> processQuantityMap = bindList.stream() .collect(Collectors.toMap( SalesLedgerProductProcessBind::getSalesLedgerProductProcessId, SalesLedgerProductProcessBind::getQuantity, (a, b) -> a)); List<SalesLedgerProductProcess> processList = salesLedgerProductProcessService.listByIds(processIds); processList.forEach(p -> p.setQuantity(processQuantityMap.get(p.getId()))); product.setSalesProductProcessList(processList); } } @@ -545,6 +569,9 @@ salesLedgerProductMapper.deleteBatchIds(productIds); } // æ¸ é¤äº§åçå å·¥ salesLedgerProductProcessBindService.remove(new LambdaQueryWrapper<SalesLedgerProductProcessBind>().in(SalesLedgerProductProcessBind::getSalesLedgerProductId, productIds)); LambdaQueryWrapper<InvoiceRegistrationProduct> wrapper = new LambdaQueryWrapper<>(); wrapper.in(InvoiceRegistrationProduct::getSalesLedgerId, idList); List<InvoiceRegistrationProduct> invoiceRegistrationProducts = invoiceRegistrationProductMapper.selectList(wrapper); @@ -727,6 +754,17 @@ for (SalesLedgerProduct product : updateList) { product.setType(type.getCode()); salesLedgerProductMapper.updateById(product); // å®ç°å é¤ç»å®çå ¨é¨å å·¥ salesLedgerProductProcessBindService.remove(new LambdaQueryWrapper<SalesLedgerProductProcessBind>().eq(SalesLedgerProductProcessBind::getSalesLedgerProductId, product.getId())); // ç»å®äº§åé¢å¤å å·¥ List<SalesLedgerProductProcess> salesProductProcessList = product.getSalesProductProcessList(); salesProductProcessList.forEach(s -> { SalesLedgerProductProcessBind processBind = new SalesLedgerProductProcessBind(); processBind.setSalesLedgerProductId(Math.toIntExact(product.getId())); processBind.setSalesLedgerProductProcessId(s.getId()); processBind.setQuantity(s.getQuantity()); salesLedgerProductProcessBindService.save(processBind); }); } } // æ§è¡æå ¥æä½ @@ -737,6 +775,15 @@ salesLedgerProduct.setNoInvoiceAmount(salesLedgerProduct.getTaxInclusiveTotalPrice()); salesLedgerProduct.setPendingInvoiceTotal(salesLedgerProduct.getTaxInclusiveTotalPrice()); salesLedgerProductMapper.insert(salesLedgerProduct); // ç»å®äº§åé¢å¤å å·¥ List<SalesLedgerProductProcess> salesProductProcessList = salesLedgerProduct.getSalesProductProcessList(); salesProductProcessList.forEach(s -> { SalesLedgerProductProcessBind processBind = new SalesLedgerProductProcessBind(); processBind.setSalesLedgerProductId(Math.toIntExact(salesLedgerProduct.getId())); processBind.setSalesLedgerProductProcessId(s.getId()); processBind.setQuantity(s.getQuantity()); salesLedgerProductProcessBindService.save(processBind); }); // æ·»å çäº§æ°æ® salesLedgerProductServiceImpl.addProductionData(salesLedgerProduct); } src/main/resources/application-hbtmblc.yml
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,256 @@ # 项ç®ç¸å ³é ç½® ruoyi: # åç§° name: RuoYi # çæ¬ version: 3.8.9 # çæå¹´ä»½ copyrightYear: 2025 # æä»¶è·¯å¾ 示ä¾ï¼ Windowsé ç½®D:/ruoyi/uploadPathï¼Linuxé ç½® /home/ruoyi/uploadPathï¼ profile: D:/ruoyi/uploadPath # è·åipå°åå¼å ³ addressEnabled: false # éªè¯ç ç±»å math æ°åè®¡ç® char å符éªè¯ captchaType: math # åå审æ¹ç¼å·åç¼(é ç½®æä»¶åç¼å½å) approvalNumberPrefix: DEV # ä¸ªæ¨ Unipush é ç½® getui: appId: PfjyAAE0FK64FaO1w2CMb1 appKey: zTMb831OEL6J4GK1uE3Ob4 masterSecret: K1GFtsv42v61tXGnF7SGE5 domain: https://restapi.getui.cn/v2/ # 离线æ¨é使ç¨çå å/ç»ä»¶å intentComponent: uni.app.UNI099A590/io.dcloud.PandoraEntry # å¼åç¯å¢é ç½® server: # æå¡å¨çHTTP端å£ï¼é»è®¤ä¸º8080 port: 7003 servlet: # åºç¨ç访é®è·¯å¾ context-path: / tomcat: # tomcatçURIç¼ç uri-encoding: UTF-8 # è¿æ¥æ°æ»¡åçæéæ°ï¼é»è®¤ä¸º100 accept-count: 1000 threads: # tomcatæå¤§çº¿ç¨æ°ï¼é»è®¤ä¸º200 max: 800 # Tomcatå¯å¨åå§åççº¿ç¨æ°ï¼é»è®¤å¼10 min-spare: 100 # æ¥å¿é ç½® logging: level: org.quartz: DEBUG com.ruoyi: warn org.springframework: warn minio: endpoint: http://114.132.189.42/ port: 7019 secure: false accessKey: admin secretKey: 12345678 preview-expiry: 24 # é¢è§å°åé»è®¤24å°æ¶ default-bucket: uploadPath # ç¨æ·é ç½® user: password: # å¯ç æå¤§éè¯¯æ¬¡æ° maxRetryCount: 5 # å¯ç é宿¶é´ï¼é»è®¤10åéï¼ lockTime: 10 # Springé ç½® spring: datasource: type: com.alibaba.druid.pool.DruidDataSource driverClassName: com.mysql.cj.jdbc.Driver druid: # ä¸»åºæ°æ®æº master: url: jdbc:mysql://1.15.17.182:9999/product-inventory-management-hbtmblc?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8 username: root password: xd@123456.. # ä»åºæ°æ®æº slave: # 仿°æ®æºå¼å ³/é»è®¤å ³é enabled: false url: username: password: # åå§è¿æ¥æ° initialSize: 5 # æå°è¿æ¥æ± æ°é minIdle: 10 # æå¤§è¿æ¥æ± æ°é maxActive: 20 # é ç½®è·åè¿æ¥çå¾ è¶ æ¶çæ¶é´ maxWait: 60000 # é ç½®è¿æ¥è¶ æ¶æ¶é´ connectTimeout: 30000 # é ç½®ç½ç»è¶ æ¶æ¶é´ socketTimeout: 60000 # é ç½®é´éå¤ä¹ æè¿è¡ä¸æ¬¡æ£æµï¼æ£æµéè¦å ³éç空é²è¿æ¥ï¼å使¯æ¯«ç§ timeBetweenEvictionRunsMillis: 60000 # é ç½®ä¸ä¸ªè¿æ¥å¨æ± 䏿å°çåçæ¶é´ï¼å使¯æ¯«ç§ minEvictableIdleTimeMillis: 300000 # é ç½®ä¸ä¸ªè¿æ¥å¨æ± 䏿大çåçæ¶é´ï¼å使¯æ¯«ç§ maxEvictableIdleTimeMillis: 900000 # é ç½®æ£æµè¿æ¥æ¯å¦ææ validationQuery: SELECT 1 FROM DUAL testWhileIdle: true testOnBorrow: false testOnReturn: false webStatFilter: enabled: true statViewServlet: enabled: true # 设置ç½ååï¼ä¸å¡«åå 许ææè®¿é® allow: url-pattern: /druid/* # æ§å¶å°ç®¡çç¨æ·ååå¯ç login-username: ruoyi login-password: 123456 filter: stat: enabled: true # æ ¢SQLè®°å½ log-slow-sql: true slow-sql-millis: 1000 merge-sql: true wall: config: multi-statement-allow: true # èµæºä¿¡æ¯ messages: # å½é åèµæºæä»¶è·¯å¾ basename: i18n/messages # æä»¶ä¸ä¼ servlet: multipart: # å个æä»¶å¤§å° max-file-size: 1GB # 设置æ»ä¸ä¼ çæä»¶å¤§å° max-request-size: 2GB # æå¡æ¨¡å devtools: restart: # çé¨ç½²å¼å ³ enabled: false # redis é ç½® redis: # å°å host: 127.0.0.1 # host: 172.17.0.1 # 端å£ï¼é»è®¤ä¸º6379 port: 6379 # æ°æ®åºç´¢å¼ database: 0 # å¯ç # password: root2022! password: # è¿æ¥è¶ æ¶æ¶é´ timeout: 10s lettuce: pool: # è¿æ¥æ± ä¸çæå°ç©ºé²è¿æ¥ min-idle: 0 # è¿æ¥æ± ä¸çæå¤§ç©ºé²è¿æ¥ max-idle: 8 # è¿æ¥æ± çæå¤§æ°æ®åºè¿æ¥æ° max-active: 8 # #è¿æ¥æ± æå¤§é»å¡çå¾ æ¶é´ï¼ä½¿ç¨è´å¼è¡¨ç¤ºæ²¡æéå¶ï¼ max-wait: -1ms # Quartz宿¶ä»»å¡é ç½®ï¼æ°å¢é¨åï¼ quartz: job-store-type: jdbc # ä½¿ç¨æ°æ®åºåå¨ jdbc: initialize-schema: never # 馿¬¡è¿è¡æ¶èªå¨åå»ºè¡¨ç»æï¼æååæ¹ä¸ºnever schema: classpath:org/quartz/impl/jdbcjobstore/tables_mysql_innodb.sql # MySQLè¡¨ç»æèæ¬ properties: org: quartz: scheduler: instanceName: RuoYiScheduler instanceId: AUTO jobStore: class: org.quartz.impl.jdbcjobstore.JobStoreTX driverDelegateClass: org.quartz.impl.jdbcjobstore.StdJDBCDelegate # MySQLéé tablePrefix: qrtz_ # 表ååç¼ï¼ä¸èæ¬ä¸è´ isClustered: false # åèç¹æ¨¡å¼ï¼éç¾¤éæ¹ä¸ºtrueï¼ clusterCheckinInterval: 10000 txIsolationLevelSerializable: true threadPool: class: org.quartz.simpl.SimpleThreadPool threadCount: 10 # çº¿ç¨æ± å¤§å° threadPriority: 5 makeThreadsDaemons: true updateCheck: false # å ³éçæ¬æ£æ¥ # tokené ç½® token: # 令çèªå®ä¹æ è¯ header: Authorization # 令çå¯é¥ secret: abcdefghijklmnopqrstuvwxyz # ä»¤çæææï¼é»è®¤30åéï¼ expireTime: 450 # MyBatis Plusé ç½® mybatis-plus: # æç´¢æå®å å«å æ ¹æ®èªå·±çé¡¹ç®æ¥ typeAliasesPackage: com.ruoyi.**.pojo # é ç½®mapperçæ«æï¼æ¾å°ææçmapper.xmlæ å°æä»¶ mapperLocations: classpath*:mapper/**/*Mapper.xml # å è½½å ¨å±çé ç½®æä»¶ configLocation: classpath:mybatis/mybatis-config.xml global-config: enable-sql-runner: true db-config: id-type: auto # PageHelperå页æä»¶ pagehelper: helperDialect: mysql supportMethodsArguments: true params: count=countSql # Swaggeré ç½® swagger: # æ¯å¦å¼å¯swagger enabled: true # 请æ±åç¼ pathMapping: /dev-api # 鲿¢XSSæ»å» xss: # è¿æ»¤å¼å ³ enabled: true # æé¤é¾æ¥ï¼å¤ä¸ªç¨éå·åéï¼ excludes: /system/notice # å¹é 龿¥ urlPatterns: /system/*,/monitor/*,/tool/* # 代ç çæ gen: # ä½è author: ruoyi # é»è®¤çæå è·¯å¾ system éæ¹æèªå·±ç模ååç§° å¦ system monitor tool packageName: com.ruoyi.project.system # èªå¨å»é¤è¡¨åç¼ï¼é»è®¤æ¯true autoRemovePre: false # 表åç¼ï¼çæç±»åä¸ä¼å å«è¡¨åç¼ï¼å¤ä¸ªç¨éå·åéï¼ tablePrefix: sys_ # æ¯å¦å è®¸çææä»¶è¦çå°æ¬å°ï¼èªå®ä¹è·¯å¾ï¼ï¼é»è®¤ä¸å 许 allowOverwrite: false file: temp-dir: D:/ruoyi/temp/uploads # 临æ¶ç®å½ upload-dir: D:/ruoyi/prod/uploads # æ£å¼ç®å½ src/main/resources/mapper/sales/SalesLedgerProductProcessBindMapper.xml
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,13 @@ <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> <mapper namespace="com.ruoyi.sales.mapper.SalesLedgerProductProcessBindMapper"> <!-- éç¨æ¥è¯¢æ å°ç»æ --> <resultMap id="BaseResultMap" type="com.ruoyi.sales.pojo.SalesLedgerProductProcessBind"> <id column="id" property="id" /> <result column="sales_ledger_product_id" property="salesLedgerProductId" /> <result column="sales_ledger_product_process_id" property="salesLedgerProductProcessId" /> <result column="quantity" property="quantity" /> </resultMap> </mapper> src/main/resources/mapper/sales/SalesLedgerProductProcessMapper.xml
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,15 @@ <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> <mapper namespace="com.ruoyi.sales.mapper.SalesLedgerProductProcessMapper"> <!-- éç¨æ¥è¯¢æ å°ç»æ --> <resultMap id="BaseResultMap" type="com.ruoyi.sales.pojo.SalesLedgerProductProcess"> <id column="id" property="id"/> <result column="process_name" property="processName"/> <result column="quantity" property="quantity"/> <result column="unit_price" property="unitPrice"/> <result column="code" property="code"/> <result column="create_time" property="createTime"/> </resultMap> </mapper>