src/main/java/com/ruoyi/production/dto/MaterialInfoDto.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,27 @@ package com.ruoyi.production.dto; import lombok.AllArgsConstructor; import lombok.Data; import lombok.NoArgsConstructor; import java.io.Serializable; /** * @author buhuazhen * @date 2026/4/22 * @email 3038525872@qq.com */ @Data @AllArgsConstructor @NoArgsConstructor public class MaterialInfoDto implements Serializable { private Long id; private String name; private String model; private String num; private String numSuffix = "å¼ "; private String unit; private String unitSuffix = "å /kg"; private String price; private String totalAmount; } src/main/java/com/ruoyi/production/dto/PlateMakingDto.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,26 @@ package com.ruoyi.production.dto; import lombok.AllArgsConstructor; import lombok.Data; import lombok.NoArgsConstructor; import java.io.Serializable; /** * å¶çDTO * @author buhuazhen * @date 2026/4/22 * @email 3038525872@qq.com */ @Data @AllArgsConstructor @NoArgsConstructor public class PlateMakingDto implements Serializable { private String designProductionFee; // 设计å¶ä½è´¹ private String impositionFee; // æ¼çè´¹ private String filmOutputFee; // åºçè´¹ private String proofingFee; // ææ ·è´¹ private String doctorBladePlateFee; // å®åçè´¹ private String hotEmbossingPlateFee; // ç«/å¸çè´¹ private String subtotalFee; // å°è®¡ } src/main/java/com/ruoyi/production/dto/ProcessContentDto.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,25 @@ package com.ruoyi.production.dto; import lombok.AllArgsConstructor; import lombok.Data; import lombok.NoArgsConstructor; import java.io.Serializable; /** * å·¥åºå å·¥å 容Dto * @author buhuazhen * @date 2026/4/22 * @email 3038525872@qq.com */ @Data @AllArgsConstructor @NoArgsConstructor public class ProcessContentDto implements Serializable { private String id; private Long processId; // å·¥åºid private String processContent; // å·¥èºå å·¥å 容 private String openCount; // 弿° private String processPositive; // å·¥èºæ£æ° private String allowanceQty; // å æ¾æ° } src/main/java/com/ruoyi/production/dto/ProductOrderDto.java
@@ -57,4 +57,6 @@ //æ¯å¦åè´§(å°è´¦é¡µé¢é¢è²æ§å¶) private Boolean isFh; private Long saleLedgerId; } src/main/java/com/ruoyi/production/dto/ProductionPrintOrderDto.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,23 @@ package com.ruoyi.production.dto; import com.ruoyi.production.pojo.ProductionPrintOrder; import lombok.AllArgsConstructor; import lombok.Data; import lombok.EqualsAndHashCode; import lombok.NoArgsConstructor; import java.io.Serializable; /** * @author buhuazhen * @date 2026/4/22 * @email 3038525872@qq.com */ @EqualsAndHashCode(callSuper = true) @Data @AllArgsConstructor @NoArgsConstructor public class ProductionPrintOrderDto extends ProductionPrintOrder implements Serializable { } src/main/java/com/ruoyi/production/dto/SaveProductionPrintOrderDto.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,23 @@ package com.ruoyi.production.dto; import com.ruoyi.production.pojo.ProductionPrintOrder; import lombok.AllArgsConstructor; import lombok.Data; import lombok.EqualsAndHashCode; import lombok.NoArgsConstructor; import java.io.Serializable; /** * ç¨äºä¿åçdto * @author buhuazhen * @date 2026/4/22 * @email 3038525872@qq.com */ @EqualsAndHashCode(callSuper = true) @Data @AllArgsConstructor @NoArgsConstructor public class SaveProductionPrintOrderDto extends ProductionPrintOrder implements Serializable { private String notNeed; } src/main/java/com/ruoyi/production/mapper/ProductionPrintOrderMapper.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,18 @@ package com.ruoyi.production.mapper; import com.ruoyi.production.pojo.ProductionPrintOrder; import com.baomidou.mybatisplus.core.mapper.BaseMapper; /** * @author buhuazhen * @description é对表ãproduction_print_order(å°å·å®å°å)ãçæ°æ®åºæä½Mapper * @createDate 2026-04-22 15:14:51 * @Entity com.ruoyi.production.pojo.ProductionPrintOrder */ public interface ProductionPrintOrderMapper extends BaseMapper<ProductionPrintOrder> { } src/main/java/com/ruoyi/production/pojo/ProductionPrintOrder.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,219 @@ package com.ruoyi.production.pojo; import com.baomidou.mybatisplus.annotation.*; import java.io.Serializable; import java.time.LocalDateTime; import java.util.List; import com.baomidou.mybatisplus.extension.handlers.JacksonTypeHandler; import com.ruoyi.production.dto.MaterialInfoDto; import com.ruoyi.production.dto.PlateMakingDto; import com.ruoyi.production.dto.ProcessContentDto; import io.swagger.annotations.ApiModelProperty; import lombok.Data; /** * å°å·å®å°å * @TableName production_print_order */ @TableName(value ="production_print_order",autoResultMap = true) @Data public class ProductionPrintOrder implements Serializable { /** * */ @TableId(value = "id", type = IdType.AUTO) private Long id; /** * 对åºçéå®è®¢å */ @TableField(value = "sales_ledger_id") private Long salesLedgerId; /** * 对åºçç产工å */ @TableField(value = "product_order") private Long productOrder; /** * å¶åæ¥æ */ @TableField(value = "print_order_time") private LocalDateTime printOrderTime; /** * å®ææ¥æ */ @TableField(value = "finish_time") private LocalDateTime finishTime; /** * ç¼å· åºè¯¥ä¸ºsaleçååå· */ @TableField(value = "no") private String no; /** * æå尺寸 */ @TableField(value = "finished_size") private String finishedSize; /** * ä»ç»ä¿¡ åå¨ , 表示å¤ä¸ª */ @TableField(value = "introduction_letter") private String introductionLetter; /** * 产ååç§° */ @TableField(value = "product_name") private String productName; /** * 产å说æ */ @TableField(value = "product_description") private String productDescription; /** * åæå°ºå¯¸ */ @TableField(value = "cut_size") private String cutSize; /** * åæå°ºå¯¸æ°é */ @TableField(value = "cut_num") private String cutNum; /** * æ£æ° */ @TableField(value = "positive_qty") private String positiveQty; /** * å æ¾æ° */ @TableField(value = "allowance_qty") private String allowanceQty; /** * å¶ç */ @TableField(value = "plate_making",typeHandler = JacksonTypeHandler.class) private List<PlateMakingDto> plateMaking; /** * å·¥åºå å·¥å 容 */ @TableField(value = "process_content",typeHandler = JacksonTypeHandler.class) private List<ProcessContentDto> processContent; /** * ææä¿¡æ¯ */ @TableField(value = "material_info",typeHandler = JacksonTypeHandler.class) private List<MaterialInfoDto> materialInfo; /** * å·¥èºè¦æ± */ @TableField(value = "process_requirement") private String processRequirement; /** * éè´§å°ç¹ */ @TableField(value = "delivery_address") private String deliveryAddress; /** * è系人 */ @TableField(value = "contact_name") private String contactName; /** * å è£ è¦æ± */ @TableField(value = "packaging_requirement") private String packagingRequirement; /** * å å·¥å尺寸 */ @TableField(value = "post_process_size") private String postProcessSize; /** * 订货æ°é */ @TableField(value = "order_qty") private String orderQty; /** * å®é äº¤ä»æ°é */ @TableField(value = "actual_delivery_qty") private String actualDeliveryQty; /** * ç产é¨é¨ */ @TableField(value = "production_dept") private String productionDept; /** * ææ¯é¨ */ @TableField(value = "technical_dept") private String technicalDept; /** * åºæ¿ */ @TableField(value = "warehouse_dept") private String warehouseDept; /** * */ @TableField(value = "create_time") private LocalDateTime createTime; /** * */ @TableField(value = "update_time") private LocalDateTime updateTime; @TableField(exist = false) private static final long serialVersionUID = 1L; /** * */ @TableField(value = "create_user",fill = FieldFill.INSERT) @ApiModelProperty(value="å建人") private Integer createUser; /** * */ @TableField(value = "update_user",fill = FieldFill.INSERT_UPDATE) @ApiModelProperty(value="æ´æ°äºº") private Integer updateUser; @TableField(value = "create_user_name", fill = FieldFill.INSERT) private String createUserName; @TableField(value = "update_user_name", fill = FieldFill.INSERT_UPDATE) private String updateUserName; } src/main/java/com/ruoyi/production/service/ProductionPrintOrderService.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,21 @@ package com.ruoyi.production.service; import com.ruoyi.production.dto.SaveProductionPrintOrderDto; import com.ruoyi.production.pojo.ProductionPrintOrder; import com.baomidou.mybatisplus.extension.service.IService; /** * @author buhuazhen * @description é对表ãproduction_print_order(å°å·å®å°å)ãçæ°æ®åºæä½Service * @createDate 2026-04-22 15:14:51 */ public interface ProductionPrintOrderService extends IService<ProductionPrintOrder> { /** * ä¿å * @param dto */ void save(SaveProductionPrintOrderDto dto); } src/main/java/com/ruoyi/production/service/impl/ProductionPrintOrderServiceImpl.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,49 @@ package com.ruoyi.production.service.impl; import cn.hutool.core.bean.BeanUtil; import cn.hutool.core.util.IdUtil; import cn.hutool.core.util.StrUtil; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.ruoyi.production.dto.ProcessContentDto; import com.ruoyi.production.dto.SaveProductionPrintOrderDto; import com.ruoyi.production.pojo.ProductionPrintOrder; import com.ruoyi.production.service.ProductionPrintOrderService; import com.ruoyi.production.mapper.ProductionPrintOrderMapper; import lombok.RequiredArgsConstructor; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import java.util.List; /** * @author buhuazhen * @description é对表ãproduction_print_order(å°å·å®å°å)ãçæ°æ®åºæä½Serviceå®ç° * @createDate 2026-04-22 15:14:51 */ @Service @RequiredArgsConstructor public class ProductionPrintOrderServiceImpl extends ServiceImpl<ProductionPrintOrderMapper, ProductionPrintOrder> implements ProductionPrintOrderService{ private final ProductionPrintOrderMapper productionPrintOrderMapper; @Override @Transactional public void save(SaveProductionPrintOrderDto dto) { ProductionPrintOrder productionPrintOrder = BeanUtil.copyProperties(dto, ProductionPrintOrder.class); List<ProcessContentDto> processContentDtoList = productionPrintOrder.getProcessContent(); // ç»æ²¡æidçä¿¡æ¯è®¾ç½®uuid processContentDtoList.forEach(processContentDto -> { if (StrUtil.isBlank(processContentDto.getId())) { processContentDto.setId(IdUtil.simpleUUID()); } }); int i = dto.getId() == null ? productionPrintOrderMapper.insert(productionPrintOrder) : productionPrintOrderMapper.updateById(productionPrintOrder); } } src/main/resources/mapper/production/ProductOrderMapper.xml
@@ -22,6 +22,7 @@ pm.unit, ppr.process_route_code, pb.bom_no, sl.id as sales_ledger_id, ROUND(po.complete_quantity / po.quantity * 100, 2) AS completionStatus, DATEDIFF(sl.delivery_date, CURDATE()) AS delivery_days_diff, sl.delivery_date, src/main/resources/mapper/production/ProductionPrintOrderMapper.xml
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,7 @@ <?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.production.mapper.ProductionPrintOrderMapper"> </mapper>