doc/ºÓÄϺױÚÌìãå¸Ö»¯²£Á§³§.sql
@@ -48,4 +48,17 @@ MODIFY COLUMN `settle_piece_area` decimal(20, 15) NULL DEFAULT NULL COMMENT 'ç»ç®åçé¢ç§¯(ã¡)' AFTER `actual_total_area`, MODIFY COLUMN `settle_total_area` decimal(20, 15) NULL DEFAULT NULL COMMENT 'ç»ç®æ»é¢ç§¯(ã¡)' AFTER `settle_piece_area`, ADD COLUMN `perimeter` decimal(20, 15) NULL COMMENT 'å¨é¿' AFTER `settle_total_area`, ADD COLUMN `heavy_box` decimal(20, 15) NULL COMMENT 'éç®±' AFTER `perimeter`; ADD COLUMN `heavy_box` decimal(20, 15) NULL COMMENT 'éç®±' AFTER `perimeter`; ALTER TABLE `product-inventory-management-hbtmblc`.`process_route` MODIFY COLUMN `product_model_id` bigint NULL DEFAULT 0 COMMENT '产åid' AFTER `id`, MODIFY COLUMN `description` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT '' COMMENT 'æè¿°' AFTER `product_model_id`, ADD COLUMN `is_default` tinyint(1) NULL COMMENT 'æ¯å¦é»è®¤(0-å¦,1-æ¯)' AFTER `bom_id`; ALTER TABLE `product-inventory-management-hbtmblc`.`process_route` ADD COLUMN `process_route_name` varchar(255) NULL COMMENT 'å·¥èºè·¯çº¿åç§°' AFTER `product_model_id`; ALTER TABLE `product-inventory-management-hbtmblc`.`process_route_item` MODIFY COLUMN `product_model_id` bigint NULL DEFAULT 0 COMMENT '产åid' AFTER `route_id`, MODIFY COLUMN `process_id` bigint NULL DEFAULT 0 COMMENT 'å·¥åºid' AFTER `product_model_id`, ADD COLUMN `process_name` varchar(255) NULL COMMENT 'å·¥åºåç§°' AFTER `process_id`; src/main/java/com/ruoyi/production/controller/ProcessRouteController.java
@@ -44,4 +44,11 @@ public R delete(@PathVariable("ids") Long[] ids) { return R.ok(processRouteService.batchDelete(Arrays.asList(ids))); } @ApiOperation("é»è®¤å·¥èºè·¯çº¿") @PutMapping("/default/{id}") public R updateDefault(@PathVariable("id") Long id) { processRouteService.updateDefault(id); return R.ok(); } } src/main/java/com/ruoyi/production/dto/ProcessRouteItemDto.java
@@ -9,9 +9,6 @@ @Data public class ProcessRouteItemDto extends ProcessRouteItem { @ApiModelProperty(value = "å·¥åºåç§°") private String processName; @ApiModelProperty(value = "å·¥èºè·¯çº¿åç§°") private String routeName; src/main/java/com/ruoyi/production/pojo/ProcessRoute.java
@@ -24,6 +24,12 @@ @ApiModelProperty(value = "æè¿°") private String description; @ApiModelProperty(value = "å·¥èºè·¯çº¿åç§°") private String processRouteName; @ApiModelProperty(value = "æ¯å¦é»è®¤(0-å¦,1-æ¯)") private Integer isDefault; @ApiModelProperty(value = "ç§æ·ID") @TableField(fill = FieldFill.INSERT) private Long tenantId; src/main/java/com/ruoyi/production/pojo/ProcessRouteItem.java
@@ -21,8 +21,11 @@ @ApiModelProperty(value = "å·¥åºid") private Long processId; @ApiModelProperty(value ="产åid") @ApiModelProperty(value = "产åid") private Long productModelId; @ApiModelProperty(value = "å·¥åºåç§°") private String processName; @ApiModelProperty(value = "ç§æ·ID") @TableField(fill = FieldFill.INSERT) @@ -34,11 +37,11 @@ @TableField(fill = FieldFill.UPDATE) private LocalDateTime updateTime; @ApiModelProperty(value ="æå¨æåº") @ApiModelProperty(value = "æå¨æåº") private Integer dragSort; @ApiModelProperty(value ="æ¯å¦è´¨æ£") @ApiModelProperty(value = "æ¯å¦è´¨æ£") private Boolean isQuality; } src/main/java/com/ruoyi/production/service/ProcessRouteService.java
@@ -16,4 +16,6 @@ Integer saveProcessRoute(ProcessRoute processRoute); int batchDelete(List<Long> ids); void updateDefault(Long id); } src/main/java/com/ruoyi/production/service/impl/ProcessRouteItemServiceImpl.java
@@ -21,11 +21,11 @@ public class ProcessRouteItemServiceImpl extends ServiceImpl<ProcessRouteItemMapper, ProcessRouteItem> implements ProcessRouteItemService { @Autowired private ProcessRouteItemMapper processRouteItemMapper; private ProcessRouteItemMapper processRouteItemMapper; @Override public List<ProcessRouteItemDto> listProcessRouteItemDto(ProcessRouteItemDto processRouteItemDto) { return processRouteItemMapper.listProcessRouteItemDto( processRouteItemDto); return processRouteItemMapper.listProcessRouteItemDto(processRouteItemDto); } //æåº @@ -42,14 +42,14 @@ if (targetPosition != null && targetPosition >= 0) { // ç§»å¨å ç´ å°æ°çä½ç½® processRouteItems.remove(oldProcessRouteItem); processRouteItems.add(targetPosition-1, oldProcessRouteItem); processRouteItems.add(targetPosition - 1, oldProcessRouteItem); // æ´æ°ææåå½±åçæåºå段 for (int i = 0; i < processRouteItems.size(); i++) { ProcessRouteItem item = processRouteItems.get(i); if (!item.getId().equals(oldProcessRouteItem.getId())) { // æ£æ¥æ¯å¦éè¦æ´æ°æåºå¼ if (item.getDragSort() != i+1) { item.setDragSort(i+1); if (item.getDragSort() != i + 1) { item.setDragSort(i + 1); processRouteItemMapper.updateById(item); } } else { @@ -78,13 +78,13 @@ .eq(ProcessRouteItem::getRouteId, routeId) .orderByAsc(ProcessRouteItem::getDragSort)); // éæ°è®¾ç½®æåºå¼ï¼ä½¿åºå·è¿ç» for (int i = 0; i < processRouteItems.size(); i++) { ProcessRouteItem item = processRouteItems.get(i); if (!item.getDragSort().equals(i+1)) { item.setDragSort(i+1); processRouteItemMapper.updateById(item); } } // for (int i = 0; i < processRouteItems.size(); i++) { // ProcessRouteItem item = processRouteItems.get(i); // if (!item.getDragSort().equals(i+1)) { // item.setDragSort(i+1); // processRouteItemMapper.updateById(item); // } // } return "å 餿å"; } } src/main/java/com/ruoyi/production/service/impl/ProcessRouteServiceImpl.java
@@ -1,9 +1,12 @@ package com.ruoyi.production.service.impl; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.ruoyi.common.exception.ServiceException; import com.ruoyi.common.utils.StringUtils; import com.ruoyi.production.dto.ProcessRouteDto; import com.ruoyi.production.mapper.ProcessRouteItemMapper; import com.ruoyi.production.mapper.ProcessRouteMapper; @@ -14,6 +17,9 @@ import com.ruoyi.production.pojo.ProductOrder; import com.ruoyi.production.pojo.ProductProcessRoute; import com.ruoyi.production.service.ProcessRouteService; import com.ruoyi.sales.pojo.SalesLedgerProcessRoute; import com.ruoyi.sales.service.ISalesLedgerProcessRouteService; import com.ruoyi.sales.service.ISalesLedgerProductProcessService; import lombok.AllArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; @@ -29,6 +35,9 @@ @AllArgsConstructor @Slf4j public class ProcessRouteServiceImpl extends ServiceImpl<ProcessRouteMapper, ProcessRoute> implements ProcessRouteService { @Autowired private ISalesLedgerProcessRouteService salesLedgerProcessRouteService; @Autowired private ProcessRouteMapper processRouteMapper; @@ -47,6 +56,12 @@ @Override public Integer saveProcessRoute(ProcessRoute processRoute) { if (processRoute == null) { throw new ServiceException("å·¥èºè·¯çº¿æ°å¢å¤±è´¥,æ°æ®ä¸è½ä¸ºç©º"); } if (StringUtils.isEmpty(processRoute.getProcessRouteName())) { throw new ServiceException("å·¥èºè·¯çº¿æ°å¢å¤±è´¥,åç§°ä¸è½ä¸ºç©º"); } this.save(processRoute); String dateStr = LocalDate.now().format(DateTimeFormatter.ofPattern("yyyyMMdd")); String idStr = String.format("%06d", processRoute.getId()); @@ -59,12 +74,30 @@ @Override public int batchDelete(List<Long> ids) { //å 夿æ¯å¦å·²ç»å¼ç¨äº List<ProductOrder> productOrders = productOrderMapper.selectList(Wrappers.<ProductOrder>lambdaQuery().in(ProductOrder::getRouteId, ids)); if (productOrders.size()>0){ throw new RuntimeException("该工èºè·¯çº¿ç产已å¼ç¨ï¼ä¸è½å é¤"); List<SalesLedgerProcessRoute> list = salesLedgerProcessRouteService.list(new LambdaQueryWrapper<SalesLedgerProcessRoute>().in(SalesLedgerProcessRoute::getProcessRouteId, ids)); if (list != null && list.size() > 0) { throw new ServiceException("该工èºè·¯çº¿å·²è¢«å¼ç¨ä¸è½å é¤"); } //å é¤å·¥èºè·¯çº¿è¯¦æ processRouteItemMapper.delete(Wrappers.<ProcessRouteItem>lambdaQuery().in(ProcessRouteItem::getRouteId, ids)); return processRouteMapper.deleteBatchIds(ids); } @Override @Transactional(rollbackFor = Exception.class) public void updateDefault(Long id) { ProcessRoute currentRoute = this.getById(id); if (currentRoute == null) { throw new ServiceException("å·¥èºè·¯çº¿ä¸åå¨"); } if (Integer.valueOf(1).equals(currentRoute.getIsDefault())) { return; } this.update(Wrappers.<ProcessRoute>lambdaUpdate() .set(ProcessRoute::getIsDefault, 0) .eq(ProcessRoute::getIsDefault, 1)); this.update(Wrappers.<ProcessRoute>lambdaUpdate() .set(ProcessRoute::getIsDefault, 1) .eq(ProcessRoute::getId, id)); } } src/main/java/com/ruoyi/sales/controller/SalesLedgerController.java
@@ -17,6 +17,7 @@ import com.ruoyi.sales.mapper.ReceiptPaymentMapper; import com.ruoyi.sales.pojo.ReceiptPayment; import com.ruoyi.sales.pojo.SalesLedger; import com.ruoyi.sales.pojo.SalesLedgerProcessRoute; import com.ruoyi.sales.service.ICommonFileService; import com.ruoyi.sales.service.ISalesLedgerService; import io.swagger.annotations.Api; @@ -120,12 +121,12 @@ startPage(); List<SalesLedger> list = salesLedgerService.selectSalesLedgerList(salesLedgerDto); // 计ç®å·²å¼ç¥¨éé¢/æªå¼ç¥¨éé¢(已填åå票éé¢ä¸ºå) if(CollectionUtils.isEmpty(list)){ if (CollectionUtils.isEmpty(list)) { return getDataTable(list); } List<Long> salesLedgerIds = list.stream().map(SalesLedger::getId).collect(Collectors.toList()); List<InvoiceLedgerDto> invoiceLedgerDtoList = invoiceLedgerMapper.invoicedTotal(salesLedgerIds); if(CollectionUtils.isEmpty(invoiceLedgerDtoList)){ if (CollectionUtils.isEmpty(invoiceLedgerDtoList)) { return getDataTable(list); } for (SalesLedger salesLedger : list) { @@ -154,10 +155,10 @@ @Log(title = "éå®å°è´¦", businessType = BusinessType.EXPORT) @PostMapping("/export") public void export(HttpServletResponse response, SalesLedgerDto salesLedgerDto) { Page page = new Page(-1,-1); Page page = new Page(-1, -1); IPage<SalesLedger> salesLedgerIPage = listPage(page, salesLedgerDto); ExcelUtil<SalesLedger> util = new ExcelUtil<SalesLedger>(SalesLedger.class); if(salesLedgerIPage == null){ if (salesLedgerIPage == null) { util.exportExcel(response, new ArrayList<>(), "éå®å°è´¦æ°æ®"); return; } @@ -186,6 +187,16 @@ @PostMapping("/addOrUpdateSalesLedger") public AjaxResult add(@RequestBody SalesLedgerDto salesLedgerDto) { return toAjax(salesLedgerService.addOrUpdateSalesLedger(salesLedgerDto)); } /** * éå®è®¢åç»å®å·¥èºè·¯çº¿ */ @PostMapping("/saleProcessBind") @ApiOperation("éå®è®¢åç»å®å·¥èºè·¯çº¿") public AjaxResult saleProcessBind(@RequestBody SalesLedgerProcessRoute salesLedgerProcessRoute) { salesLedgerService.saleProcessBind(salesLedgerProcessRoute); return AjaxResult.success(); } /** @@ -249,7 +260,7 @@ * è¿åå¹´å¼ç¥¨,忬¾éé¢ */ @GetMapping("/getAmountHalfYear") public AjaxResult getAmountHalfYear(@RequestParam(value = "type",defaultValue = "1") Integer type) { public AjaxResult getAmountHalfYear(@RequestParam(value = "type", defaultValue = "1") Integer type) { return AjaxResult.success(salesLedgerService.getAmountHalfYear(type)); } src/main/java/com/ruoyi/sales/controller/SalesLedgerProcessRouteController.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,21 @@ package com.ruoyi.sales.controller; import io.swagger.annotations.ApiModel; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; /** * <p> * éå®è®¢åç»å®çå·¥èºè·¯çº¿ å端æ§å¶å¨ * </p> * * @author deslrey * @since 2026-03-26 */ @RestController @RequestMapping("/salesLedgerProcessRoute") @ApiModel(value = "SalesLedgerProcessRouteController", description = "éå®è®¢åç»å®çå·¥èºè·¯çº¿") public class SalesLedgerProcessRouteController { } src/main/java/com/ruoyi/sales/mapper/SalesLedgerProcessRouteMapper.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,16 @@ package com.ruoyi.sales.mapper; import com.ruoyi.sales.pojo.SalesLedgerProcessRoute; import com.baomidou.mybatisplus.core.mapper.BaseMapper; /** * <p> * éå®è®¢åç»å®çå·¥èºè·¯çº¿ Mapper æ¥å£ * </p> * * @author deslrey * @since 2026-03-26 */ public interface SalesLedgerProcessRouteMapper extends BaseMapper<SalesLedgerProcessRoute> { } src/main/java/com/ruoyi/sales/pojo/SalesLedgerProcessRoute.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,59 @@ package com.ruoyi.sales.pojo; import com.baomidou.mybatisplus.annotation.*; 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-26 */ @Data @EqualsAndHashCode(callSuper = false) @Accessors(chain = true) @TableName("sales_ledger_process_route") @ApiModel(value = "SalesLedgerProcessRoute对象", description = "éå®è®¢åç»å®çå·¥èºè·¯çº¿") public class SalesLedgerProcessRoute implements Serializable { private static final long serialVersionUID = 1L; @ApiModelProperty(value = "主é®") @TableId(value = "id", type = IdType.AUTO) private Long id; @ApiModelProperty(value = "éå®å°è´¦ID") private Long salesLedgerId; @ApiModelProperty(value = "å·¥èºè·¯çº¿ID") private Long processRouteId; @ApiModelProperty(value = "夿³¨") private String remark; @ApiModelProperty(value = "æå¨æåº") private Integer dragSort; @ApiModelProperty(value = "å·¥èºè·¯çº¿èç¹ID") private Long processRouteItemId; @ApiModelProperty(value = "åå»ºæ¥æ") @TableField(fill = FieldFill.INSERT) private LocalDateTime createTime; @ApiModelProperty(value = "ç§æ·ID") @TableField(fill = FieldFill.INSERT) private Long tenantId; } src/main/java/com/ruoyi/sales/service/ISalesLedgerProcessRouteService.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,16 @@ package com.ruoyi.sales.service; import com.ruoyi.sales.pojo.SalesLedgerProcessRoute; import com.baomidou.mybatisplus.extension.service.IService; /** * <p> * éå®è®¢åç»å®çå·¥èºè·¯çº¿ æå¡ç±» * </p> * * @author deslrey * @since 2026-03-26 */ public interface ISalesLedgerProcessRouteService extends IService<SalesLedgerProcessRoute> { } src/main/java/com/ruoyi/sales/service/ISalesLedgerService.java
@@ -10,6 +10,7 @@ import com.ruoyi.sales.dto.MonthlyAmountDto; import com.ruoyi.sales.dto.SalesLedgerDto; import com.ruoyi.sales.pojo.SalesLedger; import com.ruoyi.sales.pojo.SalesLedgerProcessRoute; import com.ruoyi.sales.pojo.SalesLedgerProduct; import org.springframework.web.multipart.MultipartFile; @@ -54,4 +55,6 @@ List<LossProductModelDto> getSalesLedgerWithProductsLoss(Long salesLedgerId); IPage<SalesLedgerDto> listSalesLedger(SalesLedgerDto salesLedgerDto, Page page); void saleProcessBind(SalesLedgerProcessRoute salesLedgerProcessRoute); } src/main/java/com/ruoyi/sales/service/impl/SalesLedgerProcessRouteServiceImpl.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,22 @@ package com.ruoyi.sales.service.impl; import com.ruoyi.sales.pojo.SalesLedgerProcessRoute; import com.ruoyi.sales.mapper.SalesLedgerProcessRouteMapper; import com.ruoyi.sales.service.ISalesLedgerProcessRouteService; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import lombok.extern.slf4j.Slf4j; import org.springframework.stereotype.Service; /** * <p> * éå®è®¢åç»å®çå·¥èºè·¯çº¿ æå¡å®ç°ç±» * </p> * * @author deslrey * @since 2026-03-26 */ @Slf4j @Service public class SalesLedgerProcessRouteServiceImpl extends ServiceImpl<SalesLedgerProcessRouteMapper, SalesLedgerProcessRoute> implements ISalesLedgerProcessRouteService { } src/main/java/com/ruoyi/sales/service/impl/SalesLedgerServiceImpl.java
@@ -15,6 +15,7 @@ import com.ruoyi.basic.pojo.Customer; import com.ruoyi.common.enums.FileNameType; import com.ruoyi.common.enums.SaleEnum; import com.ruoyi.common.exception.ServiceException; import com.ruoyi.common.exception.base.BaseException; import com.ruoyi.common.utils.DateUtils; import com.ruoyi.common.utils.EnumUtil; @@ -26,6 +27,8 @@ import com.ruoyi.other.mapper.TempFileMapper; import com.ruoyi.other.pojo.TempFile; import com.ruoyi.production.mapper.*; import com.ruoyi.production.pojo.ProcessRoute; import com.ruoyi.production.pojo.ProcessRouteItem; import com.ruoyi.production.service.ProductionProductMainService; import com.ruoyi.project.system.domain.SysDept; import com.ruoyi.project.system.domain.SysUser; @@ -37,6 +40,7 @@ import com.ruoyi.sales.dto.*; import com.ruoyi.sales.mapper.*; import com.ruoyi.sales.pojo.*; import com.ruoyi.sales.service.ISalesLedgerProcessRouteService; import com.ruoyi.sales.service.ISalesLedgerProductProcessBindService; import com.ruoyi.sales.service.ISalesLedgerProductProcessService; import com.ruoyi.sales.service.ISalesLedgerService; @@ -116,6 +120,8 @@ private final ISalesLedgerProductProcessService salesLedgerProductProcessService; private final ISalesLedgerProductProcessBindService salesLedgerProductProcessBindService; private final ISalesLedgerProcessRouteService salesLedgerProcessRouteService; @Autowired private SysDeptMapper sysDeptMapper; @@ -521,6 +527,38 @@ return salesLedgerDtoIPage; } @Override @Transactional(rollbackFor = Exception.class) public void saleProcessBind(SalesLedgerProcessRoute salesLedgerProcessRoute) { if (salesLedgerProcessRoute == null) { throw new ServiceException("ç»å®å¤±è´¥,æ°æ®ä¸è½ä¸ºç©º"); } SalesLedger salesLedger = baseMapper.selectById(salesLedgerProcessRoute.getSalesLedgerId()); if (salesLedger == null) { throw new ServiceException("ç»å®å¤±è´¥,éå®è®¢åä¸åå¨"); } ProcessRoute processRoute = processRouteMapper.selectById(salesLedgerProcessRoute.getProcessRouteId()); if (processRoute == null) { throw new ServiceException("ç»å®å¤±è´¥,å·¥èºè·¯çº¿ä¸åå¨"); } // æ¸ é¤å·²ç»å®çæ°æ® salesLedgerProcessRouteService.remove(new LambdaQueryWrapper<SalesLedgerProcessRoute>().eq(SalesLedgerProcessRoute::getSalesLedgerId, salesLedger.getId()).eq(SalesLedgerProcessRoute::getProcessRouteId, processRoute.getId())); // å°æ°æ®è¿ç§»å°sales_ledger_process_route List<ProcessRouteItem> routeItems = processRouteItemMapper.selectList(new LambdaQueryWrapper<ProcessRouteItem>().eq(ProcessRouteItem::getRouteId, processRoute.getId())); SalesLedgerProcessRoute ledgerProcessRoute; List<SalesLedgerProcessRoute> salesLedgerProcessRouteList = new ArrayList<>(); for (ProcessRouteItem routeItem : routeItems) { ledgerProcessRoute = new SalesLedgerProcessRoute(); ledgerProcessRoute.setProcessRouteId(processRoute.getId()); ledgerProcessRoute.setSalesLedgerId(salesLedger.getId()); ledgerProcessRoute.setProcessRouteItemId(routeItem.getId()); salesLedgerProcessRouteList.add(ledgerProcessRoute); } salesLedgerProcessRouteService.saveBatch(salesLedgerProcessRouteList); } /** * ä¸å线å½å转驼峰å½å */ src/main/resources/mapper/production/ProcessRouteItemMapper.xml
@@ -7,6 +7,7 @@ <result property="routeId" column="route_id"/> <result property="processId" column="process_id"/> <result property="productModelId" column="product_model_id"/> <result property="processName" column="process_name"/> <result property="tenantId" column="tenant_id"/> <result property="createTime" column="create_time"/> <result property="updateTime" column="update_time"/> @@ -14,22 +15,9 @@ </resultMap> <select id="listProcessRouteItemDto" resultType="com.ruoyi.production.dto.ProcessRouteItemDto"> select pri.*, pr.description , pp.name as process_name, pm.speculative_trading_name, pm.product_id, pm.model, p.product_name, pm.unit from process_route_item pri left join product_model pm on pri.product_model_id = pm.id left join product_process pp on pp.id = pri.process_id left join product p on p.id = pm.product_id left join process_route pr on pr.id = pri.route_id where pri.route_id = #{c.routeId} select * from process_route_item pri where pri.route_id = #{c.routeId} order by pri.drag_sort </select> </mapper> src/main/resources/mapper/production/ProcessRouteMapper.xml
@@ -4,25 +4,19 @@ <resultMap id="basicMap" type="com.ruoyi.production.pojo.ProcessRoute"> <id property="id" column="id"/> <result property="productModelId" column="product_model_id"/> <result property="description" column="description"/> <result property="tenantId" column="tenant_id"/> <result property="createTime" column="create_time"/> <result property="updateTime" column="update_time"/> <id property="id" column="id"/> <result property="productModelId" column="product_model_id"/> <result property="description" column="description"/> <result property="processRouteName" column="process_route_name"/> <result property="isDefault" column="is_default"/> <result property="tenantId" column="tenant_id"/> <result property="createTime" column="create_time"/> <result property="updateTime" column="update_time"/> </resultMap> <select id="pageProcessRouteDto" resultType="com.ruoyi.production.dto.ProcessRouteDto"> select ps.*, p.product_name,pm.product_id,pm.model,pb.bom_no select * from process_route ps left join product_bom pb on ps.bom_id = pb.id left join product_model pm on ps.product_model_id = pm.id left join product p on pm.product_id = p.id <where> <if test="c.model != null and c.model != ''"> and pm.model like concat('%',#{c.model},'%') </if> </where> order by ps.id asc order by ps.id </select> </mapper> src/main/resources/mapper/sales/SalesLedgerProcessRouteMapper.xml
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,17 @@ <?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.SalesLedgerProcessRouteMapper"> <!-- éç¨æ¥è¯¢æ å°ç»æ --> <resultMap id="BaseResultMap" type="com.ruoyi.sales.pojo.SalesLedgerProcessRoute"> <id column="id" property="id" /> <result column="sales_ledger_id" property="salesLedgerId" /> <result column="process_route_id" property="processRouteId" /> <result column="remark" property="remark" /> <result column="drag_sort" property="dragSort" /> <result column="process_route_item_id" property="processRouteItemId" /> <result column="create_time" property="createTime" /> <result column="tenant_id" property="tenantId" /> </resultMap> </mapper>