Browse Source

feat(npcIqc): 添加NPC来料检验模块功能

- 创建NpcIqc实体类,包含检验相关的字段定义
- 实现NpcIqcController控制器,提供分页查询接口
- 定义NpcIqcMapper数据访问层接口和XML映射文件
- 实现NpcIqcService业务逻辑层接口及具体实现类
- 集成供应商、物料和采购订单表的关联查询功能
- 添加多条件动态筛选和排序功能
master
qiankanghui 2 weeks ago
parent
commit
f05d6dd3f7
  1. 29
      src/main/java/com/xujie/modules/npcIqc/controller/NpcIqcController.java
  2. 82
      src/main/java/com/xujie/modules/npcIqc/entity/NpcIqc.java
  3. 12
      src/main/java/com/xujie/modules/npcIqc/mapper/NpcIqcMapper.java
  4. 9
      src/main/java/com/xujie/modules/npcIqc/service/NpcIqcService.java
  5. 19
      src/main/java/com/xujie/modules/npcIqc/service/impl/NpcIqcServiceImpl.java
  6. 76
      src/main/resources/mapper/npcIqc/NpcIqcMapper.xml

29
src/main/java/com/xujie/modules/npcIqc/controller/NpcIqcController.java

@ -0,0 +1,29 @@
package com.xujie.modules.npcIqc.controller;
import com.xujie.common.utils.PageUtils;
import com.xujie.common.utils.R;
import com.xujie.modules.npcIqc.entity.NpcIqc;
import com.xujie.modules.npcIqc.service.NpcIqcService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
@RestController
@RequestMapping("npcIqc")
public class NpcIqcController {
@Autowired
private NpcIqcService npcIqcService;
/**
* 分页查询数据
*/
@PostMapping("/search")
public R search(@RequestBody NpcIqc npciqc){
PageUtils page = npcIqcService.myPage(npciqc);
return R.ok().put("page", page);
}
}

82
src/main/java/com/xujie/modules/npcIqc/entity/NpcIqc.java

@ -0,0 +1,82 @@
package com.xujie.modules.npcIqc.entity;
import com.xujie.common.utils.QueryPage;
import lombok.Data;
import com.fasterxml.jackson.annotation.JsonFormat;
import org.springframework.format.annotation.DateTimeFormat;
import java.math.BigDecimal;
import java.util.Date;
@Data
public class NpcIqc extends QueryPage {
private String site;
private String iqcNo;
private String inspectionType;
private String purOrder;
private String supplierNo;
private String supplierName;
@DateTimeFormat(pattern = "yyyy-MM-dd")
@JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
private Date dateReceived;
private String itemCode;
private String itemName;
private Integer quantity;
private Integer sampleSize;
private BigDecimal dimA;
private BigDecimal dimB;
private BigDecimal dimC;
private BigDecimal dimD;
private BigDecimal dimE;
private String inspectionTotal;
private String inspectionStatus;
private String problem;
private String comments;
private String inspectorName;
private String createdBy;
private String supplierEmail;
private Boolean caRequest;
private BigDecimal reworkHours;
private BigDecimal reworkRate;
private BigDecimal reworkTotal;
private BigDecimal materialCost;
private String collectionBatch;
@DateTimeFormat(pattern = "yyyy-MM-dd")
@JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
private Date entryDate;
private String issueNo;
private String updateBy;
private Date updateDate;
}

12
src/main/java/com/xujie/modules/npcIqc/mapper/NpcIqcMapper.java

@ -0,0 +1,12 @@
package com.xujie.modules.npcIqc.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.xujie.modules.npcIqc.entity.NpcIqc;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
@Mapper
public interface NpcIqcMapper extends BaseMapper<NpcIqc> {
Page<NpcIqc> myPage(Page<NpcIqc> page,@Param("npciqc") NpcIqc npciqc);
}

9
src/main/java/com/xujie/modules/npcIqc/service/NpcIqcService.java

@ -0,0 +1,9 @@
package com.xujie.modules.npcIqc.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.xujie.common.utils.PageUtils;
import com.xujie.modules.npcIqc.entity.NpcIqc;
public interface NpcIqcService extends IService<NpcIqc> {
PageUtils myPage(NpcIqc npciqc);
}

19
src/main/java/com/xujie/modules/npcIqc/service/impl/NpcIqcServiceImpl.java

@ -0,0 +1,19 @@
package com.xujie.modules.npcIqc.service.impl;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.xujie.common.utils.PageUtils;
import com.xujie.modules.npcIqc.entity.NpcIqc;
import com.xujie.modules.npcIqc.mapper.NpcIqcMapper;
import com.xujie.modules.npcIqc.service.NpcIqcService;
import org.springframework.stereotype.Service;
@Service
public class NpcIqcServiceImpl extends ServiceImpl<NpcIqcMapper, NpcIqc> implements NpcIqcService {
@Override
public PageUtils myPage(NpcIqc npciqc) {
Page<NpcIqc> page = new Page<>(npciqc.getPage(), npciqc.getLimit());
Page<NpcIqc> resultList = baseMapper.myPage(page, npciqc);
return new PageUtils(resultList);
}
}

76
src/main/resources/mapper/npcIqc/NpcIqcMapper.xml

@ -0,0 +1,76 @@
<?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.xujie.modules.npcIqc.mapper.NpcIqcMapper">
<select id="myPage" resultType="com.xujie.modules.npcIqc.entity.NpcIqc">
SELECT
n.site,
n.iqc_no,
n.inspection_type,
n.pur_order,
n.supplier_no,
s.supplier_name,
n.date_received,
n.item_code,
p.item_name,
n.quantity,
n.sample_size,
n.dim_a,
n.dim_b,
n.dim_c,
n.dim_d,
n.dim_e,
n.inspection_total,
n.inspection_status,
n.problem,
n.comments,
n.inspector_name,
n.created_by,
n.supplier_email,
n.ca_request,
n.rework_hours,
n.rework_rate,
n.rework_total,
n.material_cost,
n.collection_batch,
n.entry_date,
n.issue_no,
n.update_by,
n.update_date
FROM
npc_iqc n
LEFT JOIN
npc_supplier s ON n.supplier_no = s.supplier_no
LEFT JOIN
part p ON n.item_code = p.part_no
left join
POHeader poh ON n.pur_order = poh.po_no
<where>
<if test="npciqc.site != null and npciqc.site != ''">
AND n.site = #{npciqc.site}
</if>
<if test="npciqc.iqcNo != null and npciqc.iqcNo != ''">
AND n.iqc_no LIKE CONCAT('%', #{npciqc.iqcNo}, '%')
</if>
<if test="npciqc.supplierNo != null and npciqc.supplierNo != ''">
AND n.supplier_no = #{npciqc.supplierNo}
</if>
<if test="npciqc.supplierName != null and npciqc.supplierName != ''">
AND s.supplier_name LIKE CONCAT('%', #{npciqc.supplierName}, '%')
</if>
<if test="npciqc.itemCode != null and npciqc.itemCode != ''">
AND n.item_code LIKE CONCAT('%', #{npciqc.itemCode}, '%')
</if>
<if test="npciqc.inspectionStatus != null and npciqc.inspectionStatus != ''">
AND n.inspection_status = #{npciqc.inspectionStatus}
</if>
<if test="npciqc.entryDate != null and npciqc.entryDate != ''">
AND CAST(n.entry_date AS DATE) = #{npciqc.entryDate}
</if>
<if test="npciqc.purOrder != null and npciqc.purOrder != ''">
AND n.pur_order = #{npciqc.purOrder}
</if>
</where>
ORDER BY n.entry_date DESC, n.iqc_no DESC
</select>
</mapper>
Loading…
Cancel
Save