doc/20260313_À¤Ì©»¯¹¤.sql
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,27 @@ #åæè¡¨ drop table if exists raw_material; create table raw_material ( id bigint auto_increment primary key, product_model_id bigint not null default 0 comment '产ååå·id', batch_no varchar(255) null comment 'æ¹æ¬¡å·', check_type tinyint null comment 'æ£éªç±»å 0å ¥åºæ£ 1è½¦é´æ£ 2åºåæ£', check_result tinyint null comment 'æ£éªç»æ 0åæ ¼ 1ä¸åæ ¼', inspect_state tinyint null comment 'ç±»å«(0:æªæäº¤;1:å·²æäº¤)', check_user_name varchar(255) null comment 'æ£éªååç§°', check_time date null comment 'æ£éªæ¥æ', create_time datetime null comment 'å½å ¥æ¶é´', update_time datetime null comment 'æ´æ°æ¶é´', index idx_product_model_id (product_model_id) ); drop table if exists raw_material_quality_inspect_item; create table raw_material_quality_inspect_item ( id bigint auto_increment primary key, raw_material_id bigint not null default 0 comment 'åæid', quality_inspect_item_id bigint not null default 0 comment 'è´¨éæ£éªé¡¹id', create_time datetime null comment 'å½å ¥æ¶é´', update_time datetime null comment 'æ´æ°æ¶é´', unique idx_raw_material_id_quality_inspect_item_id (raw_material_id, quality_inspect_item_id) ); src/main/java/com/ruoyi/common/enums/RawMaterialCheckResult.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,35 @@ package com.ruoyi.common.enums; public enum RawMaterialCheckResult implements BaseEnum<Integer>{ RawMaterialCheckResultUnqualified(0, "ä¸åæ ¼"), RawMaterialCheckResultQualified(1, "åæ ¼"); private final Integer value; private final String label; RawMaterialCheckResult(Integer value, String label) { this.value = value; this.label = label; } public Integer getCode() { return value; } public String getValue() { return label; } /** * æ ¹æ®å¼è·å对åºçæä¸¾ */ public static RawMaterialCheckResult fromValue(Integer value) { for (RawMaterialCheckResult type : values()) { if (type.getValue().equals(value)) { return type; } } throw new IllegalArgumentException("æªç¥ç RawMaterialCheckResult å¼: " + value); } } src/main/java/com/ruoyi/common/enums/RawMaterialCheckType.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,36 @@ package com.ruoyi.common.enums; public enum RawMaterialCheckType implements BaseEnum<Integer>{ RawMaterialCheckTypeAdmission(0, "å ¥åæ£"), RawMaterialCheckTypeWorkshop(1, "è½¦é´æ£"), RawMaterialCheckTypeFinal(2, "åºåæ£"); private final Integer value; private final String label; RawMaterialCheckType(Integer value, String label) { this.value = value; this.label = label; } public Integer getCode() { return value; } public String getValue() { return label; } /** * æ ¹æ®å¼è·å对åºçæä¸¾ */ public static RawMaterialCheckType fromValue(Integer value) { for (RawMaterialCheckType type : values()) { if (type.getValue().equals(value)) { return type; } } throw new IllegalArgumentException("æªç¥ç RawMaterialCheckType å¼: " + value); } } src/main/java/com/ruoyi/common/enums/RawMaterialInspectState.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,35 @@ package com.ruoyi.common.enums; public enum RawMaterialInspectState implements BaseEnum<Integer>{ RawMaterialInspectStateUnsubmitted(0, "æªæäº¤"), RawMaterialInspectStateSubmitted(1, "å·²æäº¤"); private final Integer value; private final String label; RawMaterialInspectState(Integer value, String label) { this.value = value; this.label = label; } public Integer getCode() { return value; } public String getValue() { return label; } /** * æ ¹æ®å¼è·å对åºçæä¸¾ */ public static RawMaterialInspectState fromValue(Integer value) { for (RawMaterialInspectState type : values()) { if (type.getValue().equals(value)) { return type; } } throw new IllegalArgumentException("æªç¥ç RawMaterialInspectState å¼: " + value); } } src/main/java/com/ruoyi/quality/controller/RawMaterialController.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,58 @@ package com.ruoyi.quality.controller; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.ruoyi.framework.web.domain.AjaxResult; import com.ruoyi.quality.dto.RawMaterialDto; import com.ruoyi.quality.service.RawMaterialService; import org.springframework.web.bind.annotation.*; import javax.annotation.Resource; import java.util.List; /** * <p> * å端æ§å¶å¨ * </p> * * @author è¯å¯¼è½¯ä»¶ï¼æ±èï¼æéå ¬å¸ * @since 2026-03-13 02:44:09 */ @RestController @RequestMapping("/quality/rawMaterial") public class RawMaterialController { @Resource private RawMaterialService rawMaterialService; /** * åæå页æ¥è¯¢ */ @GetMapping("/listPage") public AjaxResult listPage(Page page, RawMaterialDto rawMaterialDto) { return AjaxResult.success(rawMaterialService.listPage(page, rawMaterialDto)); } /** * åææ°å¢ */ @PostMapping("") public AjaxResult add(@RequestBody RawMaterialDto rawMaterialDto) { return AjaxResult.success(rawMaterialService.add(rawMaterialDto)); } /** * åææ´æ° */ @PutMapping("") public AjaxResult update(@RequestBody RawMaterialDto rawMaterialDto) { return AjaxResult.success(rawMaterialService.updateById(rawMaterialDto)); } /** * åæå é¤ */ @DeleteMapping("") public AjaxResult delete(@RequestBody List<Integer> ids) { return AjaxResult.success(rawMaterialService.removeByIds(ids)); } } src/main/java/com/ruoyi/quality/controller/RawMaterialQualityInspectItemController.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,18 @@ package com.ruoyi.quality.controller; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; /** * <p> * å端æ§å¶å¨ * </p> * * @author è¯å¯¼è½¯ä»¶ï¼æ±èï¼æéå ¬å¸ * @since 2026-03-13 04:51:44 */ @RestController @RequestMapping("/rawMaterialQualityInspectItem") public class RawMaterialQualityInspectItemController { } src/main/java/com/ruoyi/quality/dto/RawMaterialDto.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,51 @@ package com.ruoyi.quality.dto; import com.fasterxml.jackson.annotation.JsonFormat; import com.ruoyi.quality.pojo.RawMaterial; import com.ruoyi.quality.pojo.RawMaterialQualityInspectItem; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Data; import org.springframework.format.annotation.DateTimeFormat; import java.io.Serializable; import java.time.LocalDate; import java.util.List; /** * åæDTO */ @Data @ApiModel(value = "RawMaterialDto", description = "åæDTO") public class RawMaterialDto extends RawMaterial implements Serializable { private static final long serialVersionUID = 1L; /** * å¼å§æ¶é´ */ @JsonFormat(pattern = "yyyy-MM-dd") @DateTimeFormat(pattern = "yyyy-MM-dd") @ApiModelProperty("表åæç´¢æ¶é´èå´ï¼å¼å§æ¶é´") private LocalDate entryDateStart; /** * ç»ææ¶é´ */ @JsonFormat(pattern = "yyyy-MM-dd") @DateTimeFormat(pattern = "yyyy-MM-dd") @ApiModelProperty("表åæç´¢æ¶é´èå´ï¼ç»ææ¶é´") private LocalDate entryDateEnd; @ApiModelProperty("æ£éªç±»å 0å ¥åºæ£ 1è½¦é´æ£ 2åºåæ£") private String checkTypeText; @ApiModelProperty("æ£éªç»æ 0åæ ¼ 1ä¸åæ ¼") private String checkResultText; @ApiModelProperty("ç±»å«(0:æªæäº¤;1:å·²æäº¤)") private String inspectStateText; @ApiModelProperty("åææ£æµé¡¹å表ids") private List<Long> qualityInspectItemIds; } src/main/java/com/ruoyi/quality/mapper/RawMaterialMapper.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,23 @@ package com.ruoyi.quality.mapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.ruoyi.quality.dto.RawMaterialDto; import com.ruoyi.quality.pojo.QualityInspectFile; import com.ruoyi.quality.pojo.RawMaterial; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Param; /** * <p> * Mapper æ¥å£ * </p> * * @author è¯å¯¼è½¯ä»¶ï¼æ±èï¼æéå ¬å¸ * @since 2026-03-13 02:44:09 */ @Mapper public interface RawMaterialMapper extends BaseMapper<RawMaterial> { IPage<RawMaterialDto> listPage(Page page, @Param("params") RawMaterialDto rawMaterial); } src/main/java/com/ruoyi/quality/mapper/RawMaterialQualityInspectItemMapper.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,18 @@ package com.ruoyi.quality.mapper; import com.ruoyi.quality.pojo.RawMaterialQualityInspectItem; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import org.apache.ibatis.annotations.Mapper; /** * <p> * Mapper æ¥å£ * </p> * * @author è¯å¯¼è½¯ä»¶ï¼æ±èï¼æéå ¬å¸ * @since 2026-03-13 04:51:44 */ @Mapper public interface RawMaterialQualityInspectItemMapper extends BaseMapper<RawMaterialQualityInspectItem> { } src/main/java/com/ruoyi/quality/pojo/RawMaterial.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,65 @@ package com.ruoyi.quality.pojo; import com.baomidou.mybatisplus.annotation.*; import java.io.Serializable; import java.time.LocalDate; import java.time.LocalDateTime; import com.fasterxml.jackson.annotation.JsonFormat; import com.ruoyi.framework.aspectj.lang.annotation.Excel; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Getter; import lombok.Setter; /** * <p> * * </p> * * @author è¯å¯¼è½¯ä»¶ï¼æ±èï¼æéå ¬å¸ * @since 2026-03-13 02:44:09 */ @Getter @Setter @TableName("raw_material") @ApiModel(value = "åæ", description = "") public class RawMaterial implements Serializable { private static final long serialVersionUID = 1L; @TableId(value = "id", type = IdType.AUTO) private Long id; @ApiModelProperty("产ååå·id") private Long productModelId; @ApiModelProperty("æ¹æ¬¡å·") private String batchNo; @ApiModelProperty("æ£éªç±»å 0å ¥åºæ£ 1è½¦é´æ£ 2åºåæ£") private Integer checkType; @ApiModelProperty("æ£éªç»æ 0åæ ¼ 1ä¸åæ ¼") private Integer checkResult; @ApiModelProperty("ç±»å«(0:æªæäº¤;1:å·²æäº¤)") private Integer inspectState; @ApiModelProperty("æ£éªååç§°") private String checkUserName; @ApiModelProperty("æ£éªæ¥æ") @JsonFormat(pattern = "yyyy-MM-dd") @Excel(name = "æ£æµæ¥æ", width = 30, dateFormat = "yyyy-MM-dd") private LocalDate checkTime; @ApiModelProperty(value = "å建æ¶é´") @TableField(fill = FieldFill.INSERT) private LocalDateTime createTime; @ApiModelProperty(value = "ä¿®æ¹æ¶é´") @TableField(fill = FieldFill.INSERT_UPDATE) private LocalDateTime updateTime; } src/main/java/com/ruoyi/quality/pojo/RawMaterialQualityInspectItem.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,47 @@ package com.ruoyi.quality.pojo; import com.baomidou.mybatisplus.annotation.FieldFill; import com.baomidou.mybatisplus.annotation.IdType; import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; import java.io.Serializable; import java.time.LocalDateTime; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Getter; import lombok.Setter; /** * <p> * * </p> * * @author è¯å¯¼è½¯ä»¶ï¼æ±èï¼æéå ¬å¸ * @since 2026-03-13 04:51:44 */ @Getter @Setter @TableName("raw_material_quality_inspect_item") @ApiModel(value = "RawMaterialQualityInspectItem对象", description = "") public class RawMaterialQualityInspectItem implements Serializable { private static final long serialVersionUID = 1L; @TableId(value = "id", type = IdType.AUTO) private Long id; @ApiModelProperty("åæid") private Long rawMaterialId; @ApiModelProperty("è´¨éæ£éªé¡¹id") private Long qualityInspectItemId; @ApiModelProperty("å½å ¥æ¶é´") @TableField(fill = FieldFill.INSERT) private LocalDateTime createTime; @ApiModelProperty("æ´æ°æ¶é´") @TableField(fill = FieldFill.INSERT_UPDATE) private LocalDateTime updateTime; } src/main/java/com/ruoyi/quality/service/RawMaterialQualityInspectItemService.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,16 @@ package com.ruoyi.quality.service; import com.ruoyi.quality.pojo.RawMaterialQualityInspectItem; import com.baomidou.mybatisplus.extension.service.IService; /** * <p> * æå¡ç±» * </p> * * @author è¯å¯¼è½¯ä»¶ï¼æ±èï¼æéå ¬å¸ * @since 2026-03-13 04:51:44 */ public interface RawMaterialQualityInspectItemService extends IService<RawMaterialQualityInspectItem> { } src/main/java/com/ruoyi/quality/service/RawMaterialService.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,22 @@ package com.ruoyi.quality.service; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.ruoyi.quality.dto.RawMaterialDto; import com.ruoyi.quality.pojo.QualityInspectFile; import com.ruoyi.quality.pojo.RawMaterial; import com.baomidou.mybatisplus.extension.service.IService; /** * <p> * æå¡ç±» * </p> * * @author è¯å¯¼è½¯ä»¶ï¼æ±èï¼æéå ¬å¸ * @since 2026-03-13 02:44:09 */ public interface RawMaterialService extends IService<RawMaterial> { IPage<RawMaterialDto> listPage(Page page, RawMaterialDto rawMaterialDto); boolean add(RawMaterialDto rawMaterialDto); } src/main/java/com/ruoyi/quality/service/impl/RawMaterialQualityInspectItemServiceImpl.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,20 @@ package com.ruoyi.quality.service.impl; import com.ruoyi.quality.pojo.RawMaterialQualityInspectItem; import com.ruoyi.quality.mapper.RawMaterialQualityInspectItemMapper; import com.ruoyi.quality.service.RawMaterialQualityInspectItemService; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import org.springframework.stereotype.Service; /** * <p> * æå¡å®ç°ç±» * </p> * * @author è¯å¯¼è½¯ä»¶ï¼æ±èï¼æéå ¬å¸ * @since 2026-03-13 04:51:44 */ @Service public class RawMaterialQualityInspectItemServiceImpl extends ServiceImpl<RawMaterialQualityInspectItemMapper, RawMaterialQualityInspectItem> implements RawMaterialQualityInspectItemService { } src/main/java/com/ruoyi/quality/service/impl/RawMaterialServiceImpl.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,70 @@ package com.ruoyi.quality.service.impl; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.ruoyi.collaborativeApproval.dto.DutyPlanDTO; import com.ruoyi.common.enums.RawMaterialCheckResult; import com.ruoyi.common.enums.RawMaterialCheckType; import com.ruoyi.common.enums.RawMaterialInspectState; import com.ruoyi.production.mapper.ProductProcessRouteMapper; import com.ruoyi.quality.dto.RawMaterialDto; import com.ruoyi.quality.mapper.RawMaterialQualityInspectItemMapper; import com.ruoyi.quality.pojo.RawMaterial; import com.ruoyi.quality.mapper.RawMaterialMapper; import com.ruoyi.quality.pojo.RawMaterialQualityInspectItem; import com.ruoyi.quality.service.RawMaterialQualityInspectItemService; import com.ruoyi.quality.service.RawMaterialService; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import lombok.AllArgsConstructor; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import java.util.List; import java.util.stream.Collectors; /** * <p> * æå¡å®ç°ç±» * </p> * * @author è¯å¯¼è½¯ä»¶ï¼æ±èï¼æéå ¬å¸ * @since 2026-03-13 02:44:09 */ @AllArgsConstructor @Service public class RawMaterialServiceImpl extends ServiceImpl<RawMaterialMapper, RawMaterial> implements RawMaterialService { private RawMaterialMapper rawMaterialMapper; private RawMaterialQualityInspectItemService rawMaterialQualityInspectItemService; @Override public IPage<RawMaterialDto> listPage(Page page, RawMaterialDto rawMaterialDto) { IPage<RawMaterialDto> rawMaterials = rawMaterialMapper.listPage(page, rawMaterialDto); for (RawMaterialDto rawMaterial : rawMaterials.getRecords()) { rawMaterial.setCheckTypeText(RawMaterialCheckType.fromValue(rawMaterial.getCheckType()).getValue()); rawMaterial.setCheckResultText(RawMaterialCheckResult.fromValue(rawMaterial.getCheckResult()).getValue()); rawMaterial.setInspectStateText(RawMaterialInspectState.fromValue(rawMaterial.getInspectState()).getValue()); } return rawMaterials; } @Override @Transactional(rollbackFor = Exception.class) public boolean add(RawMaterialDto rawMaterialDto) { // æ°å¢æ£æµé¡¹å ³èå ³ç³» if (rawMaterialDto.getQualityInspectItemIds() != null && !rawMaterialDto.getQualityInspectItemIds().isEmpty()) { List<RawMaterialQualityInspectItem> rawMaterialQualityInspectItems = rawMaterialDto.getQualityInspectItemIds().stream() .map(id -> { RawMaterialQualityInspectItem item = new RawMaterialQualityInspectItem(); item.setRawMaterialId(rawMaterialDto.getId()); item.setQualityInspectItemId(id); return item; }) .collect(Collectors.toList()); rawMaterialQualityInspectItemService.saveBatch(rawMaterialQualityInspectItems); } // æ°å¢åæ return rawMaterialMapper.insert(rawMaterialDto) > 0; } } src/main/resources/mapper/quality/RawMaterialMapper.xml
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,38 @@ <?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.quality.mapper.RawMaterialMapper"> <!-- éç¨æ¥è¯¢æ å°ç»æ --> <resultMap id="BaseResultMap" type="com.ruoyi.quality.pojo.RawMaterial"> <id column="id" property="id" /> <result column="product_model_id" property="productModelId" /> <result column="batch_no" property="batchNo" /> <result column="check_type" property="checkType" /> <result column="check_result" property="checkResult" /> <result column="check_user_name" property="checkUserName" /> <result column="check_time" property="checkTime" /> </resultMap> <select id="listPage" resultType="com.ruoyi.quality.dto.RawMaterialDto"> SELECT rm.*, p.product_name, pm.model, pm.unit FROM raw_material rm LEFT JOIN product_model pm ON rm.product_model_id = pm.id LEFT JOIN product p ON p.id = pm.product_id where 1=1 <if test="params.checkType != null "> AND rm.check_type = #{params.checkType} </if> <if test="params.entryDateStart != null and params.entryDateStart != '' "> AND rm.check_time >= DATE_FORMAT(#{params.entryDateStart},'%Y-%m-%d') </if> <if test="params.entryDateEnd != null and params.entryDateEnd != '' "> AND rm.check_time <= DATE_FORMAT(#{params.entryDateEnd},'%Y-%m-%d') </if> ORDER BY rm.check_time DESC </select> </mapper> src/main/resources/mapper/quality/RawMaterialQualityInspectItemMapper.xml
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,14 @@ <?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.quality.mapper.RawMaterialQualityInspectItemMapper"> <!-- éç¨æ¥è¯¢æ å°ç»æ --> <resultMap id="BaseResultMap" type="com.ruoyi.quality.pojo.RawMaterialQualityInspectItem"> <id column="id" property="id" /> <result column="raw_material_id" property="rawMaterialId" /> <result column="quality_inspect_item_id" property="qualityInspectItemId" /> <result column="create_time" property="createTime" /> <result column="update_time" property="updateTime" /> </resultMap> </mapper>