Browse Source

[fix]品质管理:

退换货
新增添加品质报告前端按钮
新增添加品质报告后端接口
新增品质报告页面qualityOrderReport.html
退换货详情新增备注和检验完成时间字段
dev
liuxiaoxu 6 months ago
parent
commit
16aec3d480
  1. 16
      ruoyi-admin/src/main/java/com/ruoyi/quality/controller/QualityRefundsExchangesController.java
  2. 28
      ruoyi-admin/src/main/java/com/ruoyi/quality/domain/QualityRefundsExchangesDetail.java
  3. 25
      ruoyi-admin/src/main/java/com/ruoyi/quality/service/impl/QualityRefundsExchangesDetailServiceImpl.java
  4. 6
      ruoyi-admin/src/main/resources/mapper/quality/QualityRefundsExchangesDetailMapper.xml
  5. 6
      ruoyi-admin/src/main/resources/templates/quality/refundsExchanges/add.html
  6. 25
      ruoyi-admin/src/main/resources/templates/quality/refundsExchanges/qualityOrderReport.html

16
ruoyi-admin/src/main/java/com/ruoyi/quality/controller/QualityRefundsExchangesController.java

@ -6,8 +6,10 @@ import com.ruoyi.common.utils.StringUtils;
import com.ruoyi.erp.domain.ErpMaterialVo;
import com.ruoyi.erp.service.IErpMaterialService;
import com.ruoyi.quality.domain.QualityOrderReport;
import com.ruoyi.quality.domain.QualityRefundsExchangesDetail;
import com.ruoyi.quality.domain.QualityRefundsExchangesUnqualified;
import com.ruoyi.quality.domain.VO.CheckoutMaterialVO;
import com.ruoyi.quality.service.IQualityRefundsExchangesDetailService;
import com.ruoyi.quality.service.IQualityRefundsExchangesUnqualifiedService;
import lombok.extern.slf4j.Slf4j;
import org.apache.poi.ss.formula.functions.T;
@ -47,6 +49,9 @@ public class QualityRefundsExchangesController extends BaseController
@Autowired
private IQualityRefundsExchangesUnqualifiedService refundsExchangesUnqualifiedService;
@Autowired
private IQualityRefundsExchangesDetailService refundsExchangesDetailService;
@RequiresPermissions("quality:refundsExchanges:view")
@GetMapping()
public String refundsExchanges()
@ -188,11 +193,8 @@ public class QualityRefundsExchangesController extends BaseController
if (StringUtils.isEmpty(refundsExchangesCode)){
log.warn("退换货号为空:{}",refundsExchangesCode);
}
QualityRefundsExchangesUnqualified tempRefundsExchangesUnqualified = new QualityRefundsExchangesUnqualified();
tempRefundsExchangesUnqualified.setRefundsExchangesCode(refundsExchangesCode);
tempRefundsExchangesUnqualified.setMaterialNo(materialNo);
QualityRefundsExchangesUnqualified refundsExchangesUnqualified=refundsExchangesUnqualifiedService.selectRefundsExchangesUnqualifiedByNoAndCode(tempRefundsExchangesUnqualified);
mmap.put("refundsExchangesUnqualified", refundsExchangesUnqualified);
mmap.put("materialNo",materialNo);
mmap.put("refundsExchangesCode",refundsExchangesCode);
return prefix + "/qualityOrderReport";
}
@ -203,9 +205,9 @@ public class QualityRefundsExchangesController extends BaseController
@Log(title = "品质管理品质单", businessType = BusinessType.INSERT)
@PostMapping("/qualityReport")
@ResponseBody
public AjaxResult qualityReportSave(@RequestBody QualityRefundsExchangesUnqualified refundsExchangesUnqualified)
public AjaxResult qualityReportSave(@RequestBody QualityRefundsExchangesDetail refundsExchangesDetail)
{
return toAjax(refundsExchangesUnqualifiedService.addRefundsExchangesUnqualified(refundsExchangesUnqualified));
return toAjax(refundsExchangesDetailService.insertQualityRefundsExchangesDetail(refundsExchangesDetail));
}
}

28
ruoyi-admin/src/main/java/com/ruoyi/quality/domain/QualityRefundsExchangesDetail.java

@ -1,6 +1,8 @@
package com.ruoyi.quality.domain;
import java.util.Date;
import java.util.List;
import com.fasterxml.jackson.annotation.JsonFormat;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
@ -97,10 +99,18 @@ public class QualityRefundsExchangesDetail extends BaseEntity
@Excel(name = "交付质检时间", width = 30, dateFormat = "yyyy-MM-dd")
private Date deliveryInspectionTime;
/** 检验完成时间 */
@JsonFormat(pattern = "yyyy-MM-dd")
@Excel(name = "检验完成时间", width = 30, dateFormat = "yyyy-MM-dd")
private Date inspectionTime;
/** 品质备注 */
@Excel(name = "品质备注")
private String qualityRemark;
/*不合格分类列表*/
private List<QualityRefundsExchangesUnqualified> refundsExchangesUnqualifieds;
public void setRefundsExchangesDetailId(Long refundsExchangesDetailId)
{
this.refundsExchangesDetailId = refundsExchangesDetailId;
@ -291,6 +301,22 @@ public class QualityRefundsExchangesDetail extends BaseEntity
return qualityRemark;
}
public Date getInspectionTime() {
return inspectionTime;
}
public void setInspectionTime(Date inspectionTime) {
this.inspectionTime = inspectionTime;
}
public List<QualityRefundsExchangesUnqualified> getRefundsExchangesUnqualifieds() {
return refundsExchangesUnqualifieds;
}
public void setRefundsExchangesUnqualifieds(List<QualityRefundsExchangesUnqualified> refundsExchangesUnqualifieds) {
this.refundsExchangesUnqualifieds = refundsExchangesUnqualifieds;
}
@Override
public String toString() {
return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
@ -314,12 +340,14 @@ public class QualityRefundsExchangesDetail extends BaseEntity
.append("materialProcessMethod", getMaterialProcessMethod())
.append("refundsExchangesNum", getRefundsExchangesNum())
.append("deliveryInspectionTime", getDeliveryInspectionTime())
.append("inspectionTime", getInspectionTime())
.append("qualityRemark", getQualityRemark())
.append("remark", getRemark())
.append("createBy", getCreateBy())
.append("createTime", getCreateTime())
.append("updateBy", getUpdateBy())
.append("updateTime", getUpdateTime())
.append("refundsExchangesUnqualifieds",getRefundsExchangesUnqualifieds())
.toString();
}
}

25
ruoyi-admin/src/main/java/com/ruoyi/quality/service/impl/QualityRefundsExchangesDetailServiceImpl.java

@ -1,14 +1,19 @@
package com.ruoyi.quality.service.impl;
import java.util.Date;
import java.util.List;
import com.ruoyi.common.utils.DateUtils;
import com.ruoyi.common.utils.ShiroUtils;
import com.ruoyi.quality.domain.QualityRefundsExchangesUnqualified;
import com.ruoyi.quality.mapper.QualityOrderReportUnqualifiedMapper;
import com.ruoyi.quality.mapper.QualityRefundsExchangesUnqualifiedMapper;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import com.ruoyi.quality.mapper.QualityRefundsExchangesDetailMapper;
import com.ruoyi.quality.domain.QualityRefundsExchangesDetail;
import com.ruoyi.quality.service.IQualityRefundsExchangesDetailService;
import com.ruoyi.common.core.text.Convert;
import org.springframework.transaction.annotation.Transactional;
/**
* 品质管理退换货单详情Service业务层处理
@ -22,6 +27,9 @@ public class QualityRefundsExchangesDetailServiceImpl implements IQualityRefunds
@Autowired
private QualityRefundsExchangesDetailMapper qualityRefundsExchangesDetailMapper;
@Autowired
private QualityRefundsExchangesUnqualifiedMapper unqualifiedMapper;
/**
* 查询品质管理退换货单详情
*
@ -52,12 +60,29 @@ public class QualityRefundsExchangesDetailServiceImpl implements IQualityRefunds
* @param qualityRefundsExchangesDetail 品质管理退换货单详情
* @return 结果
*/
@Transactional
@Override
public int insertQualityRefundsExchangesDetail(QualityRefundsExchangesDetail qualityRefundsExchangesDetail)
{
String loginName = ShiroUtils.getLoginName();
qualityRefundsExchangesDetail.setCreateBy(loginName);
qualityRefundsExchangesDetail.setCreateTime(DateUtils.getNowDate());
//获取前端不合格分类列表
List<QualityRefundsExchangesUnqualified> refundsExchangesUnqualifieds = qualityRefundsExchangesDetail.getRefundsExchangesUnqualifieds();
for (QualityRefundsExchangesUnqualified temp : refundsExchangesUnqualifieds) {
QualityRefundsExchangesUnqualified refundsExchangesUnqualified = new QualityRefundsExchangesUnqualified();
refundsExchangesUnqualified.setRefundsExchangesCode(qualityRefundsExchangesDetail.getRefundsExchangesCode());
refundsExchangesUnqualified.setMaterialNo(qualityRefundsExchangesDetail.getMaterialNo());
refundsExchangesUnqualified.setInspectionTime(qualityRefundsExchangesDetail.getInspectionTime());
refundsExchangesUnqualified.setProcessBadClassification(temp.getProcessBadClassification());
refundsExchangesUnqualified.setProcessBadGrade(temp.getProcessBadGrade());
refundsExchangesUnqualified.setProcessBadNum(temp.getProcessBadNum());
refundsExchangesUnqualified.setRemark(temp.getRemark());
refundsExchangesUnqualified.setCreateBy(loginName);
refundsExchangesUnqualified.setCreateTime(new Date());
unqualifiedMapper.insertQualityRefundsExchangesUnqualified(refundsExchangesUnqualified);
}
return qualityRefundsExchangesDetailMapper.insertQualityRefundsExchangesDetail(qualityRefundsExchangesDetail);
}

6
ruoyi-admin/src/main/resources/mapper/quality/QualityRefundsExchangesDetailMapper.xml

@ -25,6 +25,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<result property="materialProcessMethod" column="material_process_method" />
<result property="refundsExchangesNum" column="refunds_exchanges_num" />
<result property="deliveryInspectionTime" column="delivery_inspection_time" />
<result property="inspectionTime" column="inspection_time" />
<result property="qualityRemark" column="quality_remark" />
<result property="remark" column="remark" />
<result property="createBy" column="create_by" />
@ -34,7 +35,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
</resultMap>
<sql id="selectQualityRefundsExchangesDetailVo">
select refunds_exchanges_detail_id, refunds_exchanges_code, refunds_exchanges_status, quality_warehouse_status, quality_purchase_status, related_order_code, in_storage_code, quality_return_node, material_total, num_total, material_no, material_name, material_type, material_photoUrl, material_brand, material_unit, material_describe, material_process_method, refunds_exchanges_num, delivery_inspection_time, quality_remark, remark, create_by, create_time, update_by, update_time from quality_refunds_exchanges_detail
select refunds_exchanges_detail_id, refunds_exchanges_code, refunds_exchanges_status, quality_warehouse_status, quality_purchase_status, related_order_code, in_storage_code, quality_return_node, material_total, num_total, material_no, material_name, material_type, material_photoUrl, material_brand, material_unit, material_describe, material_process_method, refunds_exchanges_num, delivery_inspection_time, inspection_time ,quality_remark, remark, create_by, create_time, update_by, update_time from quality_refunds_exchanges_detail
</sql>
<select id="selectQualityRefundsExchangesDetailList" parameterType="QualityRefundsExchangesDetail" resultMap="QualityRefundsExchangesDetailResult">
@ -70,6 +71,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<if test="materialProcessMethod != null">material_process_method,</if>
<if test="refundsExchangesNum != null">refunds_exchanges_num,</if>
<if test="deliveryInspectionTime != null">delivery_inspection_time,</if>
<if test="inspectionTime != null">inspection_time,</if>
<if test="qualityRemark != null">quality_remark,</if>
<if test="remark != null">remark,</if>
<if test="createBy != null">create_by,</if>
@ -97,6 +99,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<if test="materialProcessMethod != null">#{materialProcessMethod},</if>
<if test="refundsExchangesNum != null">#{refundsExchangesNum},</if>
<if test="deliveryInspectionTime != null">#{deliveryInspectionTime},</if>
<if test="inspectionTime != null">#{inspectionTime},</if>
<if test="qualityRemark != null">#{qualityRemark},</if>
<if test="remark != null">#{remark},</if>
<if test="createBy != null">#{createBy},</if>
@ -128,6 +131,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<if test="materialProcessMethod != null">material_process_method = #{materialProcessMethod},</if>
<if test="refundsExchangesNum != null">refunds_exchanges_num = #{refundsExchangesNum},</if>
<if test="deliveryInspectionTime != null">delivery_inspection_time = #{deliveryInspectionTime},</if>
<if test="inspectionTime != null">inspection_time = #{inspectionTime},</if>
<if test="qualityRemark != null">quality_remark = #{qualityRemark},</if>
<if test="remark != null">remark = #{remark},</if>
<if test="createBy != null">create_by = #{createBy},</if>

6
ruoyi-admin/src/main/resources/templates/quality/refundsExchanges/add.html

@ -8,7 +8,7 @@
<div class="wrapper wrapper-content animated fadeInRight ibox-content">
<form class="form-horizontal m" id="form-refundsExchanges-add">
<div class="form-group">
<label class="col-sm-3 control-label">付质检时间:</label>
<label class="col-sm-4 control-label">交检时间:</label>
<div class="col-sm-8">
<div class="input-group date">
<input name="deliveryInspectionTime" class="form-control" placeholder="yyyy-MM-dd" type="text">
@ -17,7 +17,7 @@
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label">品质备注:</label>
<label class="col-sm-4 control-label">品质备注:</label>
<div class="col-sm-8">
<input name="qualityRemark" class="form-control" type="text">
</div>
@ -163,7 +163,7 @@
formatter: function(value, row, index) {
// 这里直接使用row对象获取refundsExchangesCode,假设它是存在的
var actions = [];
actions.push('<a class="btn btn-success btn-xs" href="javascript:void(0)" onclick="qualityReport(\'' + row.materialNo + '\', \'' + row.refundsExchangesCode + '\')"><i class="fa fa-plus"></i>报告</a> ');
actions.push('<a class="btn btn-success btn-xs" href="javascript:void(0)" onclick="qualityReport(\'' + row.materialNo + '\', \'' + refundsExchangesCode + '\')"><i class="fa fa-plus"></i>报告</a> ');
return actions.join('');
}
},

25
ruoyi-admin/src/main/resources/templates/quality/refundsExchanges/qualityOrderReport.html

@ -6,7 +6,7 @@
</head>
<body class="white-bg">
<div class="wrapper wrapper-content animated fadeInRight ibox-content">
<form class="form-horizontal m" id="form-qualityOrderReport-edit" th:object="${QualityRefundsExchangesUnqualified}">
<form class="form-horizontal m" id="form-qualityOrderReport-add">
<input name="materialNo" th:field="*{materialNo}" type="hidden">
<div class="container">
<!--不合格数-->
@ -30,10 +30,10 @@
<!--其他字段-->
<div class="form-group">
<label class="col-sm-4 control-label">检验完成时间:</label>
<label class="col-sm-3 control-label">检验完成时间:</label>
<div class="col-sm-8">
<div class="input-group date">
<input name="inspectionTime" th:value="${#dates.format(QualityRefundsExchangesUnqualified.inspectionTime, 'yyyy-MM-dd')}" class="form-control" placeholder="yyyy-MM-dd" type="text">
<input name="inspectionTime" class="form-control" placeholder="yyyy-MM-dd" type="text">
<span class="input-group-addon"><i class="fa fa-calendar"></i></span>
</div>
</div>
@ -41,7 +41,7 @@
<div class="form-group">
<label class="col-sm-4 control-label">备注:</label>
<div class="col-sm-8">
<textarea name="remark" th:field="*{remark}" class="form-control" type="text"></textarea>
<textarea name="remark" class="form-control" type="text"></textarea>
</div>
</div>
</form>
@ -50,18 +50,23 @@
<th:block th:include="include :: datetimepicker-js" />
<th:block th:include="include :: bootstrap-table-editable-js"/>
<script th:inline="javascript">
var prefix = ctx + "quality/refundsExchanges";
var materialNo = /*[[${materialNo}]]*/'';
var refundsExchangesCode = /*[[${refundsExchangesCode}]]*/'';
var processBadClassificationDatas = [[${@dict.getType('process_bad_classification')}]];
var processBadGradeDatas = [[${@dict.getType('process_bad_grade')}]];
var $table = $("#bootstrap-unqualified-table");
var prefix = ctx + "quality/refundsExchanges";
$("#form-qualityOrderReport-edit").validate({
$("#form-qualityOrderReport-add").validate({
focusCleanup: true
});
function submitHandler() {
// 获取表单数据
const qualityReportData = $("#form-qualityOrderReport-edit").serializeArray().reduce((obj, item) => {
const qualityReportData = $("#form-qualityOrderReport-add").serializeArray().reduce((obj, item) => {
obj[item.name] = item.value;
return obj;
}, {});
@ -85,7 +90,11 @@
};
});
const combinedData = Object.assign({}, qualityReportData, { unqualifiedDataList: unqualifiedDataList });
const combinedData = Object.assign({}, qualityReportData, {
refundsExchangesUnqualifieds: unqualifiedDataList ,
materialNo:materialNo,
refundsExchangesCode:refundsExchangesCode
});
// 合并表单数据和表格数据
// const combinedData = Object.assign({}, ...complaintNoticeData.array(item => ({ [item.name]: item.value })), ...materialData);
console.log(combinedData)

Loading…
Cancel
Save