diff --git a/src/main/java/com/xujie/modules/quality/controller/QualityIssueController.java b/src/main/java/com/xujie/modules/quality/controller/QualityIssueController.java new file mode 100644 index 0000000..bea1e29 --- /dev/null +++ b/src/main/java/com/xujie/modules/quality/controller/QualityIssueController.java @@ -0,0 +1,36 @@ +package com.xujie.modules.quality.controller; + +import com.xujie.common.utils.PageUtils; +import com.xujie.common.utils.R; +import com.xujie.modules.quality.entity.QualityIssue; +import com.xujie.modules.quality.service.QualityIssueService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +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("/srm/qualityIssue") +public class QualityIssueController { + + @Autowired + private QualityIssueService qualityIssueService; + + @PostMapping("/queryPage") + public R queryPage(@RequestBody QualityIssue qualityIssue) { + + PageUtils page = qualityIssueService.queryPage(qualityIssue); + + return R.ok().put("page", page); + } + + + @PostMapping("/save") + public R save(@RequestBody QualityIssue qualityIssue){ + qualityIssueService.saveIssue(qualityIssue); + return R.ok(); + } + +} diff --git a/src/main/java/com/xujie/modules/quality/entity/QualityIssue.java b/src/main/java/com/xujie/modules/quality/entity/QualityIssue.java new file mode 100644 index 0000000..94afb2a --- /dev/null +++ b/src/main/java/com/xujie/modules/quality/entity/QualityIssue.java @@ -0,0 +1,54 @@ +package com.xujie.modules.quality.entity; + +import com.baomidou.mybatisplus.annotation.TableName; +import com.fasterxml.jackson.annotation.JsonFormat; +import com.xujie.common.utils.QueryPage; +import lombok.Data; +import org.springframework.format.annotation.DateTimeFormat; + +import java.util.Date; + +@Data +@TableName("srm_quality_issue") +public class QualityIssue extends QueryPage { + + private String site; + + private String issueNo; + + @DateTimeFormat(pattern = "yyyy-MM-dd") + @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8") + private Date issueDate; + + private String supplierNo; + + private String supplierName; + + private String issueCategory; + + private String issueSummary; + + private String issueDescription; + + @DateTimeFormat(pattern = "yyyy-MM-dd") + @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8") + private Date requireReplyDate; + + private String status; + + private String replyBy; + + private Date replyTime; + + private String closedBy; + + private Date closedTime; + + private String createBy; + + private Date createDate; + + private String updateBy; + + private Date updateDate; +} diff --git a/src/main/java/com/xujie/modules/quality/mapper/QualityIssueMapper.java b/src/main/java/com/xujie/modules/quality/mapper/QualityIssueMapper.java new file mode 100644 index 0000000..c576af6 --- /dev/null +++ b/src/main/java/com/xujie/modules/quality/mapper/QualityIssueMapper.java @@ -0,0 +1,17 @@ +package com.xujie.modules.quality.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.xujie.modules.quality.entity.QualityIssue; +import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Param; + +import java.util.List; + +@Mapper +public interface QualityIssueMapper extends BaseMapper { + + List queryPage(IPage page, @Param("qualityIssue") QualityIssue qualityIssue); + + void insertIssue(QualityIssue qualityIssue); +} diff --git a/src/main/java/com/xujie/modules/quality/service/QualityIssueService.java b/src/main/java/com/xujie/modules/quality/service/QualityIssueService.java new file mode 100644 index 0000000..5e1abf7 --- /dev/null +++ b/src/main/java/com/xujie/modules/quality/service/QualityIssueService.java @@ -0,0 +1,13 @@ +package com.xujie.modules.quality.service; + +import com.baomidou.mybatisplus.extension.service.IService; +import com.xujie.common.utils.PageUtils; +import com.xujie.modules.quality.entity.QualityIssue; + + +public interface QualityIssueService extends IService { + + PageUtils queryPage(QualityIssue qualityIssue); + + void saveIssue(QualityIssue qualityIssue); +} diff --git a/src/main/java/com/xujie/modules/quality/service/impl/QualityIssueServiceImpl.java b/src/main/java/com/xujie/modules/quality/service/impl/QualityIssueServiceImpl.java new file mode 100644 index 0000000..30e7c46 --- /dev/null +++ b/src/main/java/com/xujie/modules/quality/service/impl/QualityIssueServiceImpl.java @@ -0,0 +1,63 @@ +package com.xujie.modules.quality.service.impl; + +import com.baomidou.mybatisplus.core.metadata.IPage; +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.common.utils.ShiroUtils; +import com.xujie.modules.quality.entity.QualityIssue; +import com.xujie.modules.quality.mapper.QualityIssueMapper; +import com.xujie.modules.quality.service.QualityIssueService; +import com.xujie.modules.srm.mapper.SrmSupplierMapper; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import java.util.Date; +import java.util.List; + +@Service +public class QualityIssueServiceImpl extends ServiceImpl implements QualityIssueService { + @Autowired + private QualityIssueMapper qualityIssueMapper; + + @Autowired + private SrmSupplierMapper srmSupplierMapper; + + @Override + public PageUtils queryPage(QualityIssue qualityIssue) { + IPage page = + new Page<>(qualityIssue.getPage(), qualityIssue.getLimit()); + + List list = + qualityIssueMapper.queryPage(page, qualityIssue); + + page.setRecords(list); + + return new PageUtils(page); + } + + @Override + @Transactional(rollbackFor = Exception.class) + public void saveIssue(QualityIssue qualityIssue) { + + String site = qualityIssue.getSite(); + // 生成反馈单号 + srmSupplierMapper.updateTransNo(site, "QI"); + String issueNo = srmSupplierMapper.getTransNo(site, "QI"); + + qualityIssue.setIssueNo(issueNo); + + // 状态默认已确认 + qualityIssue.setStatus("待回复"); + + // 当前用户 + qualityIssue.setCreateBy(ShiroUtils.getUserEntity().getUsername()); + + // 当前时间 + qualityIssue.setCreateDate(new Date()); + + qualityIssueMapper.insertIssue(qualityIssue); + } + +} diff --git a/src/main/resources/mapper/quality/QualityIssueMapper.xml b/src/main/resources/mapper/quality/QualityIssueMapper.xml new file mode 100644 index 0000000..21904da --- /dev/null +++ b/src/main/resources/mapper/quality/QualityIssueMapper.xml @@ -0,0 +1,90 @@ + + + + + + + + + INSERT INTO srm_quality_issue + ( + site, + issue_no, + issue_date, + supplier_no, + supplier_name, + issue_category, + issue_summary, + issue_description, + require_reply_date, + status, + create_by, + create_date + ) + VALUES + ( + #{site}, + #{issueNo}, + #{issueDate}, + #{supplierNo}, + #{supplierName}, + #{issueCategory}, + #{issueSummary}, + #{issueDescription}, + #{requireReplyDate}, + #{status}, + #{createBy}, + #{createDate} + ) + +