Merge remote-tracking branch 'origin/0.8.X' into 0.8.X
# Conflicts: # klp-ui/src/utils/enum.js
This commit is contained in:
154
klp-ui/src/api/pltcm/model.js
Normal file
154
klp-ui/src/api/pltcm/model.js
Normal file
@@ -0,0 +1,154 @@
|
||||
import request from '@/utils/request'
|
||||
|
||||
// ═══════════════════════════════════════
|
||||
// 厚度分类
|
||||
// ═══════════════════════════════════════
|
||||
export function listThickClass(query) {
|
||||
return request({ url: '/pltcm/thickClass/list', method: 'get', params: query })
|
||||
}
|
||||
|
||||
export function getThickClass(classId) {
|
||||
return request({ url: '/pltcm/thickClass/' + classId, method: 'get' })
|
||||
}
|
||||
|
||||
export function addThickClass(data) {
|
||||
return request({ url: '/pltcm/thickClass', method: 'post', data })
|
||||
}
|
||||
|
||||
export function updateThickClass(data) {
|
||||
return request({ url: '/pltcm/thickClass', method: 'put', data })
|
||||
}
|
||||
|
||||
export function delThickClass(classIds) {
|
||||
return request({ url: '/pltcm/thickClass/' + classIds, method: 'delete' })
|
||||
}
|
||||
|
||||
// ═══════════════════════════════════════
|
||||
// 宽度分类
|
||||
// ═══════════════════════════════════════
|
||||
export function listWidthClass(query) {
|
||||
return request({ url: '/pltcm/widthClass/list', method: 'get', params: query })
|
||||
}
|
||||
|
||||
export function getWidthClass(classId) {
|
||||
return request({ url: '/pltcm/widthClass/' + classId, method: 'get' })
|
||||
}
|
||||
|
||||
export function addWidthClass(data) {
|
||||
return request({ url: '/pltcm/widthClass', method: 'post', data })
|
||||
}
|
||||
|
||||
export function updateWidthClass(data) {
|
||||
return request({ url: '/pltcm/widthClass', method: 'put', data })
|
||||
}
|
||||
|
||||
export function delWidthClass(classIds) {
|
||||
return request({ url: '/pltcm/widthClass/' + classIds, method: 'delete' })
|
||||
}
|
||||
|
||||
// ═══════════════════════════════════════
|
||||
// 屈服强度分类
|
||||
// ═══════════════════════════════════════
|
||||
export function listYieldStressClass(query) {
|
||||
return request({ url: '/pltcm/yieldStressClass/list', method: 'get', params: query })
|
||||
}
|
||||
|
||||
export function getYieldStressClass(classId) {
|
||||
return request({ url: '/pltcm/yieldStressClass/' + classId, method: 'get' })
|
||||
}
|
||||
|
||||
export function addYieldStressClass(data) {
|
||||
return request({ url: '/pltcm/yieldStressClass', method: 'post', data })
|
||||
}
|
||||
|
||||
export function updateYieldStressClass(data) {
|
||||
return request({ url: '/pltcm/yieldStressClass', method: 'put', data })
|
||||
}
|
||||
|
||||
export function delYieldStressClass(classIds) {
|
||||
return request({ url: '/pltcm/yieldStressClass/' + classIds, method: 'delete' })
|
||||
}
|
||||
|
||||
// ═══════════════════════════════════════
|
||||
// 策略关联
|
||||
// ═══════════════════════════════════════
|
||||
export function listStrategy(query) {
|
||||
return request({ url: '/pltcm/strategy/list', method: 'get', params: query })
|
||||
}
|
||||
|
||||
export function getStrategy(id) {
|
||||
return request({ url: '/pltcm/strategy/' + id, method: 'get' })
|
||||
}
|
||||
|
||||
export function addStrategy(data) {
|
||||
return request({ url: '/pltcm/strategy', method: 'post', data })
|
||||
}
|
||||
|
||||
export function updateStrategy(data) {
|
||||
return request({ url: '/pltcm/strategy', method: 'put', data })
|
||||
}
|
||||
|
||||
export function delStrategy(ids) {
|
||||
return request({ url: '/pltcm/strategy/' + ids, method: 'delete' })
|
||||
}
|
||||
|
||||
// ═══════════════════════════════════════
|
||||
// 屈服强度与钢种对应关系
|
||||
// ═══════════════════════════════════════
|
||||
export function listSteelgrade(query) {
|
||||
return request({ url: '/pltcm/steelgrade/list', method: 'get', params: query })
|
||||
}
|
||||
|
||||
export function getSteelgrade(steelGrade) {
|
||||
return request({ url: '/pltcm/steelgrade/' + steelGrade, method: 'get' })
|
||||
}
|
||||
|
||||
export function addSteelgrade(data) {
|
||||
return request({ url: '/pltcm/steelgrade', method: 'post', data })
|
||||
}
|
||||
|
||||
export function updateSteelgrade(data) {
|
||||
return request({ url: '/pltcm/steelgrade', method: 'put', data })
|
||||
}
|
||||
|
||||
export function delSteelgrade(steelGrades) {
|
||||
return request({ url: '/pltcm/steelgrade/' + steelGrades, method: 'delete' })
|
||||
}
|
||||
|
||||
// ═══════════════════════════════════════
|
||||
// 比例标准表
|
||||
// ═══════════════════════════════════════
|
||||
export function listRatio(query) {
|
||||
return request({ url: '/pltcm/ratio/list', method: 'get', params: query })
|
||||
}
|
||||
|
||||
export function getRatio(id) {
|
||||
return request({ url: '/pltcm/ratio/' + id, method: 'get' })
|
||||
}
|
||||
|
||||
export function addRatio(data) {
|
||||
return request({ url: '/pltcm/ratio', method: 'post', data })
|
||||
}
|
||||
|
||||
export function updateRatio(data) {
|
||||
return request({ url: '/pltcm/ratio', method: 'put', data })
|
||||
}
|
||||
|
||||
export function delRatio(ids) {
|
||||
return request({ url: '/pltcm/ratio/' + ids, method: 'delete' })
|
||||
}
|
||||
|
||||
// ═══════════════════════════════════════
|
||||
// 设备启用状态
|
||||
// ═══════════════════════════════════════
|
||||
export function listDeviceEnable(query) {
|
||||
return request({ url: '/pltcm/deviceEnable/list', method: 'get', params: query })
|
||||
}
|
||||
|
||||
export function getDeviceEnable(id) {
|
||||
return request({ url: '/pltcm/deviceEnable/' + id, method: 'get' })
|
||||
}
|
||||
|
||||
export function updateDeviceEnable(data) {
|
||||
return request({ url: '/pltcm/deviceEnable', method: 'put', data })
|
||||
}
|
||||
@@ -58,6 +58,12 @@ export default {
|
||||
disabled: {
|
||||
type: Boolean,
|
||||
default: false
|
||||
},
|
||||
// 下拉最多展示条数,默认6条
|
||||
maxSuggestions: {
|
||||
type: Number,
|
||||
default: 6,
|
||||
validator: (value) => value > 0
|
||||
}
|
||||
},
|
||||
data() {
|
||||
@@ -118,7 +124,7 @@ export default {
|
||||
});
|
||||
}
|
||||
|
||||
cb(results); // 回调返回匹配结果
|
||||
cb(results.slice(0, this.maxSuggestions)); // 回调返回匹配结果(限制条数)
|
||||
},
|
||||
|
||||
/**
|
||||
|
||||
@@ -411,7 +411,7 @@ import { listWarehouse } from '@/api/wms/warehouse'
|
||||
export default {
|
||||
name: 'QualityReview',
|
||||
components: { CoilSelector },
|
||||
dicts: ['quality_review_status', 'regrade_quality_type', 'coil_quality_status'],
|
||||
dicts: ['quality_review_status', 'coil_quality_status'],
|
||||
data() {
|
||||
return {
|
||||
// 列表
|
||||
|
||||
@@ -93,7 +93,7 @@ import { listQualityReview, approveQualityReview, rejectQualityReview, getQualit
|
||||
|
||||
export default {
|
||||
name: 'QualityReviewTodo',
|
||||
dicts: ['quality_review_status', 'regrade_quality_type', 'coil_quality_status'],
|
||||
dicts: ['quality_review_status', 'coil_quality_status'],
|
||||
data() {
|
||||
return {
|
||||
loading: false,
|
||||
|
||||
1359
klp-ui/src/views/micro/pages/acid/components/Model.vue
Normal file
1359
klp-ui/src/views/micro/pages/acid/components/Model.vue
Normal file
File diff suppressed because it is too large
Load Diff
@@ -54,6 +54,10 @@
|
||||
<i class="el-icon-alarm-clock"></i>
|
||||
<span slot="title">app</span>
|
||||
</el-menu-item>
|
||||
<el-menu-item index="model">
|
||||
<i class="el-icon-coin"></i>
|
||||
<span slot="title">模型</span>
|
||||
</el-menu-item>
|
||||
</el-menu>
|
||||
</div>
|
||||
<div style="flex: 1; overflow: hidden;">
|
||||
@@ -76,6 +80,7 @@ import Stoppage from '@/views/timing/stoppage/index.vue';
|
||||
import AcidTiming from '@/views/lines/acid/index.vue';
|
||||
import TrackingView from './components/TrackingView.vue';
|
||||
import ProcessSpec from './components/ProcessSpec.vue';
|
||||
import Model from './components/Model.vue';
|
||||
|
||||
export default {
|
||||
name: 'AcidSystem',
|
||||
@@ -92,7 +97,8 @@ export default {
|
||||
Stoppage,
|
||||
AcidTiming,
|
||||
TrackingView,
|
||||
ProcessSpec
|
||||
ProcessSpec,
|
||||
Model,
|
||||
},
|
||||
data() {
|
||||
return {
|
||||
@@ -115,6 +121,7 @@ export default {
|
||||
acidTiming: 'AcidTiming',
|
||||
tracking: 'TrackingView',
|
||||
processSpec: 'ProcessSpec',
|
||||
model: 'Model',
|
||||
};
|
||||
return componentMap[this.activeMenu];
|
||||
},
|
||||
|
||||
@@ -2,11 +2,10 @@
|
||||
<div class="app-container">
|
||||
<el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="68px">
|
||||
<el-form-item label="调拨单号" prop="transferNo">
|
||||
<el-input v-model="queryParams.transferNo" placeholder="请输入调拨单号" clearable @keyup.enter.native="handleQuery" />
|
||||
<MemoInput storageKey="transferNo" v-model="queryParams.transferNo" placeholder="请输入调拨单号" />
|
||||
</el-form-item>
|
||||
<el-form-item label="调拨单名称" prop="transferName">
|
||||
<el-input v-model="queryParams.transferName" placeholder="请输入调拨单名称,用于帮助记忆与沟通" clearable
|
||||
@keyup.enter.native="handleQuery" />
|
||||
<MemoInput storageKey="transferName" v-model="queryParams.transferName" placeholder="请输入调拨单名称,用于帮助记忆与沟通" />
|
||||
</el-form-item>
|
||||
<el-form-item label="调拨时间" prop="transferTime">
|
||||
<el-date-picker clearable v-model="queryParams.transferTime" type="date" value-format="yyyy-MM-dd"
|
||||
@@ -41,7 +40,7 @@
|
||||
</el-col>
|
||||
<el-col :span="1.5">
|
||||
<el-button type="danger" plain icon="el-icon-delete" size="mini" :disabled="multiple"
|
||||
@click="handleDelete">删除</el-button>
|
||||
v-hasRole="['glc']" @click="handleDelete">删除</el-button>
|
||||
</el-col>
|
||||
<el-col :span="1.5">
|
||||
<el-button type="warning" plain icon="el-icon-download" size="mini" @click="handleExport">导出</el-button>
|
||||
@@ -80,8 +79,8 @@
|
||||
<el-button size="mini" type="text" icon="el-icon-view" @click="handleView(scope.row)">查看</el-button>
|
||||
<el-button size="mini" type="text" icon="el-icon-edit" @click="handleUpdate(scope.row)"
|
||||
:disabled="!canEdit(scope.row)">修改</el-button>
|
||||
<el-button size="mini" type="text" icon="el-icon-delete" @click="handleDelete(scope.row)"
|
||||
:disabled="!canDelete(scope.row)">删除</el-button>
|
||||
<el-button size="mini" type="text" icon="el-icon-delete" v-hasRole="['glc']"
|
||||
@click="handleDelete(scope.row)">删除</el-button>
|
||||
<el-button size="mini" plain type="text" @click="handleSubmitapprove(scope.row)"
|
||||
v-if="(scope.row.approveStatus || '0') == '0'" icon="el-icon-check">提交</el-button>
|
||||
<el-button size="mini" plain type="text" @click="handleWithdrawapprove(scope.row)"
|
||||
@@ -103,10 +102,10 @@
|
||||
<el-dialog :title="title" :visible.sync="open" width="500px" append-to-body>
|
||||
<el-form ref="form" :model="form" :rules="rules" label-width="80px">
|
||||
<el-form-item label="调拨单号" prop="transferNo">
|
||||
<el-input v-model="form.transferNo" placeholder="请输入调拨单号" />
|
||||
<MemoInput storageKey="transferNo" v-model="form.transferNo" placeholder="请输入调拨单号" />
|
||||
</el-form-item>
|
||||
<el-form-item label="调拨单名称" prop="transferName">
|
||||
<el-input v-model="form.transferName" placeholder="请输入调拨单名称,用于帮助记忆与沟通" />
|
||||
<MemoInput storageKey="transferName" v-model="form.transferName" placeholder="请输入调拨单名称,用于帮助记忆与沟通" />
|
||||
</el-form-item>
|
||||
<el-form-item label="调拨时间" prop="transferTime">
|
||||
<el-date-picker clearable v-model="form.transferTime" type="datetime" value-format="yyyy-MM-dd HH:mm:ss"
|
||||
@@ -297,12 +296,6 @@ export default {
|
||||
const status = row.approveStatus || '0';
|
||||
return status === '0' || status === '1' || status === '3';
|
||||
},
|
||||
/** 判断是否可以删除 */
|
||||
canDelete(row) {
|
||||
// 如果没有状态字段,则视为未提交
|
||||
const status = row.approveStatus || '0';
|
||||
return status === '0';
|
||||
},
|
||||
/** 提交审批 */
|
||||
handleSubmitapprove(row) {
|
||||
this.$confirm('确定要提交审批吗?', '提示', {
|
||||
@@ -604,14 +597,10 @@ export default {
|
||||
/** 删除按钮操作 */
|
||||
handleDelete(row) {
|
||||
const orderIds = row.orderId || this.ids;
|
||||
this.$modal.confirm('是否确认删除调拨单主编号为"' + orderIds + '"的数据项?').then(() => {
|
||||
this.loading = true;
|
||||
return delTransferOrder(orderIds);
|
||||
}).then(() => {
|
||||
this.loading = false;
|
||||
this.loading = true;
|
||||
delTransferOrder(orderIds).then(() => {
|
||||
this.getList();
|
||||
this.$modal.msgSuccess("删除成功");
|
||||
}).catch(() => {
|
||||
}).finally(() => {
|
||||
this.loading = false;
|
||||
});
|
||||
|
||||
@@ -0,0 +1,99 @@
|
||||
package com.klp.controller;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.Arrays;
|
||||
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import javax.servlet.http.HttpServletResponse;
|
||||
import javax.validation.constraints.*;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
import org.springframework.validation.annotation.Validated;
|
||||
import com.klp.common.annotation.RepeatSubmit;
|
||||
import com.klp.common.annotation.Log;
|
||||
import com.klp.common.core.controller.BaseController;
|
||||
import com.klp.common.core.domain.PageQuery;
|
||||
import com.klp.common.core.domain.R;
|
||||
import com.klp.common.core.validate.AddGroup;
|
||||
import com.klp.common.core.validate.EditGroup;
|
||||
import com.klp.common.enums.BusinessType;
|
||||
import com.klp.common.utils.poi.ExcelUtil;
|
||||
import com.klp.domain.vo.WmsInspectionApplicationVo;
|
||||
import com.klp.domain.bo.WmsInspectionApplicationBo;
|
||||
import com.klp.service.IWmsInspectionApplicationService;
|
||||
import com.klp.common.core.page.TableDataInfo;
|
||||
|
||||
/**
|
||||
* 检化验申请单
|
||||
*
|
||||
* @author klp
|
||||
* @date 2026-07-08
|
||||
*/
|
||||
@Validated
|
||||
@RequiredArgsConstructor
|
||||
@RestController
|
||||
@RequestMapping("/wms/inspectionApplication")
|
||||
public class WmsInspectionApplicationController extends BaseController {
|
||||
|
||||
private final IWmsInspectionApplicationService iWmsInspectionApplicationService;
|
||||
|
||||
/**
|
||||
* 查询检化验申请单列表
|
||||
*/
|
||||
@GetMapping("/list")
|
||||
public TableDataInfo<WmsInspectionApplicationVo> list(WmsInspectionApplicationBo bo, PageQuery pageQuery) {
|
||||
return iWmsInspectionApplicationService.queryPageList(bo, pageQuery);
|
||||
}
|
||||
|
||||
/**
|
||||
* 导出检化验申请单列表
|
||||
*/
|
||||
@Log(title = "检化验申请单", businessType = BusinessType.EXPORT)
|
||||
@PostMapping("/export")
|
||||
public void export(WmsInspectionApplicationBo bo, HttpServletResponse response) {
|
||||
List<WmsInspectionApplicationVo> list = iWmsInspectionApplicationService.queryList(bo);
|
||||
ExcelUtil.exportExcel(list, "检化验申请单", WmsInspectionApplicationVo.class, response);
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取检化验申请单详细信息
|
||||
*
|
||||
* @param applicationId 主键
|
||||
*/
|
||||
@GetMapping("/{applicationId}")
|
||||
public R<WmsInspectionApplicationVo> getInfo(@NotNull(message = "主键不能为空")
|
||||
@PathVariable Long applicationId) {
|
||||
return R.ok(iWmsInspectionApplicationService.queryById(applicationId));
|
||||
}
|
||||
|
||||
/**
|
||||
* 新增检化验申请单
|
||||
*/
|
||||
@Log(title = "检化验申请单", businessType = BusinessType.INSERT)
|
||||
@RepeatSubmit()
|
||||
@PostMapping()
|
||||
public R<Void> add(@Validated(AddGroup.class) @RequestBody WmsInspectionApplicationBo bo) {
|
||||
return toAjax(iWmsInspectionApplicationService.insertByBo(bo));
|
||||
}
|
||||
|
||||
/**
|
||||
* 修改检化验申请单
|
||||
*/
|
||||
@Log(title = "检化验申请单", businessType = BusinessType.UPDATE)
|
||||
@RepeatSubmit()
|
||||
@PutMapping()
|
||||
public R<Void> edit(@Validated(EditGroup.class) @RequestBody WmsInspectionApplicationBo bo) {
|
||||
return toAjax(iWmsInspectionApplicationService.updateByBo(bo));
|
||||
}
|
||||
|
||||
/**
|
||||
* 删除检化验申请单
|
||||
*
|
||||
* @param applicationIds 主键串
|
||||
*/
|
||||
@Log(title = "检化验申请单", businessType = BusinessType.DELETE)
|
||||
@DeleteMapping("/{applicationIds}")
|
||||
public R<Void> remove(@NotEmpty(message = "主键不能为空")
|
||||
@PathVariable Long[] applicationIds) {
|
||||
return toAjax(iWmsInspectionApplicationService.deleteWithValidByIds(Arrays.asList(applicationIds), true));
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,135 @@
|
||||
package com.klp.domain;
|
||||
|
||||
import com.baomidou.mybatisplus.annotation.*;
|
||||
import com.klp.common.core.domain.BaseEntity;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
|
||||
import java.util.Date;
|
||||
import com.fasterxml.jackson.annotation.JsonFormat;
|
||||
|
||||
/**
|
||||
* 检化验申请单对象 wms_inspection_application
|
||||
*
|
||||
* @author klp
|
||||
* @date 2026-07-08
|
||||
*/
|
||||
@Data
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
@TableName("wms_inspection_application")
|
||||
public class WmsInspectionApplication extends BaseEntity {
|
||||
|
||||
private static final long serialVersionUID=1L;
|
||||
|
||||
/**
|
||||
* 申请单主键
|
||||
*/
|
||||
@TableId(value = "application_id")
|
||||
private Long applicationId;
|
||||
/**
|
||||
* 申请单编号(如 LAB-20260708-0001)
|
||||
*/
|
||||
private String applicationNo;
|
||||
/**
|
||||
* 申请标题
|
||||
*/
|
||||
private String applicationTitle;
|
||||
/**
|
||||
* 产线(如:1#产线、2#产线)
|
||||
*/
|
||||
private String productionLine;
|
||||
/**
|
||||
* 实验类型(字典:lab_experiment_type:physical=物理检验 chemical=化学检验)
|
||||
*/
|
||||
private String experimentType;
|
||||
/**
|
||||
* 样品名称
|
||||
*/
|
||||
private String sampleName;
|
||||
/**
|
||||
* 样品批号
|
||||
*/
|
||||
private String sampleBatchNo;
|
||||
/**
|
||||
* 样品来源(如:来料、过程样、成品样)
|
||||
*/
|
||||
private String sampleSource;
|
||||
/**
|
||||
* 样品数量
|
||||
*/
|
||||
private Long sampleQuantity;
|
||||
/**
|
||||
* 检验目的/用途说明
|
||||
*/
|
||||
private String testPurpose;
|
||||
/**
|
||||
* 要求完成日期
|
||||
*/
|
||||
private Date requiredDate;
|
||||
/**
|
||||
* 流程状态(字典:lab_application_status):1=草稿 2=待审批 3=已通过 4=已驳回 5=实验中 6=已完成
|
||||
*/
|
||||
private Integer flowStatus;
|
||||
/**
|
||||
* 提交送审时间
|
||||
*/
|
||||
private Date submitTime;
|
||||
/**
|
||||
* 审批人
|
||||
*/
|
||||
private String approveBy;
|
||||
/**
|
||||
* 审批时间
|
||||
*/
|
||||
private Date approveTime;
|
||||
/**
|
||||
* 审批意见
|
||||
*/
|
||||
private String approveOpinion;
|
||||
/**
|
||||
* 驳回原因
|
||||
*/
|
||||
private String rejectReason;
|
||||
/**
|
||||
* 主表id
|
||||
*/
|
||||
private Long mainId;
|
||||
/**
|
||||
* 记录此次操作结果ids
|
||||
*/
|
||||
private String detailIds;
|
||||
/**
|
||||
* 实验操作人
|
||||
*/
|
||||
private String experimentOperator;
|
||||
/**
|
||||
* 实验开始时间
|
||||
*/
|
||||
private Date experimentStartTime;
|
||||
/**
|
||||
* 实验结束时间
|
||||
*/
|
||||
private Date experimentEndTime;
|
||||
/**
|
||||
* 实验结果汇总/结论
|
||||
*/
|
||||
private String resultSummary;
|
||||
/**
|
||||
* 结果填报人(录入台账的人)
|
||||
*/
|
||||
private String resultFiller;
|
||||
/**
|
||||
* 结果填报时间
|
||||
*/
|
||||
private Date resultFillTime;
|
||||
/**
|
||||
* 删除标志(0=正常 2=删除)
|
||||
*/
|
||||
@TableLogic
|
||||
private Integer delFlag;
|
||||
/**
|
||||
* 备注
|
||||
*/
|
||||
private String remark;
|
||||
|
||||
}
|
||||
@@ -0,0 +1,153 @@
|
||||
package com.klp.domain.bo;
|
||||
|
||||
import com.klp.common.core.domain.BaseEntity;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
import javax.validation.constraints.*;
|
||||
|
||||
import java.util.Date;
|
||||
import com.fasterxml.jackson.annotation.JsonFormat;
|
||||
|
||||
/**
|
||||
* 检化验申请单业务对象 wms_inspection_application
|
||||
*
|
||||
* @author klp
|
||||
* @date 2026-07-08
|
||||
*/
|
||||
|
||||
@Data
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
public class WmsInspectionApplicationBo extends BaseEntity {
|
||||
|
||||
/**
|
||||
* 申请单主键
|
||||
*/
|
||||
private Long applicationId;
|
||||
|
||||
/**
|
||||
* 申请单编号(如 LAB-20260708-0001)
|
||||
*/
|
||||
private String applicationNo;
|
||||
|
||||
/**
|
||||
* 申请标题
|
||||
*/
|
||||
private String applicationTitle;
|
||||
|
||||
/**
|
||||
* 产线(如:1#产线、2#产线)
|
||||
*/
|
||||
private String productionLine;
|
||||
|
||||
/**
|
||||
* 实验类型(字典:lab_experiment_type:physical=物理检验 chemical=化学检验)
|
||||
*/
|
||||
private String experimentType;
|
||||
|
||||
/**
|
||||
* 样品名称
|
||||
*/
|
||||
private String sampleName;
|
||||
|
||||
/**
|
||||
* 样品批号
|
||||
*/
|
||||
private String sampleBatchNo;
|
||||
|
||||
/**
|
||||
* 样品来源(如:来料、过程样、成品样)
|
||||
*/
|
||||
private String sampleSource;
|
||||
|
||||
/**
|
||||
* 样品数量
|
||||
*/
|
||||
private Long sampleQuantity;
|
||||
|
||||
/**
|
||||
* 检验目的/用途说明
|
||||
*/
|
||||
private String testPurpose;
|
||||
|
||||
/**
|
||||
* 要求完成日期
|
||||
*/
|
||||
private Date requiredDate;
|
||||
|
||||
/**
|
||||
* 流程状态(字典:lab_application_status):1=草稿 2=待审批 3=已通过 4=已驳回 5=实验中 6=已完成
|
||||
*/
|
||||
private Integer flowStatus;
|
||||
|
||||
/**
|
||||
* 提交送审时间
|
||||
*/
|
||||
private Date submitTime;
|
||||
|
||||
/**
|
||||
* 审批人
|
||||
*/
|
||||
private String approveBy;
|
||||
|
||||
/**
|
||||
* 审批时间
|
||||
*/
|
||||
private Date approveTime;
|
||||
|
||||
/**
|
||||
* 审批意见
|
||||
*/
|
||||
private String approveOpinion;
|
||||
|
||||
/**
|
||||
* 驳回原因
|
||||
*/
|
||||
private String rejectReason;
|
||||
|
||||
/**
|
||||
* 主表id
|
||||
*/
|
||||
private Long mainId;
|
||||
|
||||
/**
|
||||
* 记录此次操作结果ids
|
||||
*/
|
||||
private String detailIds;
|
||||
|
||||
/**
|
||||
* 实验操作人
|
||||
*/
|
||||
private String experimentOperator;
|
||||
|
||||
/**
|
||||
* 实验开始时间
|
||||
*/
|
||||
private Date experimentStartTime;
|
||||
|
||||
/**
|
||||
* 实验结束时间
|
||||
*/
|
||||
private Date experimentEndTime;
|
||||
|
||||
/**
|
||||
* 实验结果汇总/结论
|
||||
*/
|
||||
private String resultSummary;
|
||||
|
||||
/**
|
||||
* 结果填报人(录入台账的人)
|
||||
*/
|
||||
private String resultFiller;
|
||||
|
||||
/**
|
||||
* 结果填报时间
|
||||
*/
|
||||
private Date resultFillTime;
|
||||
|
||||
/**
|
||||
* 备注
|
||||
*/
|
||||
private String remark;
|
||||
|
||||
|
||||
}
|
||||
@@ -0,0 +1,187 @@
|
||||
package com.klp.domain.vo;
|
||||
|
||||
import java.util.Date;
|
||||
import com.fasterxml.jackson.annotation.JsonFormat;
|
||||
import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
|
||||
import com.alibaba.excel.annotation.ExcelProperty;
|
||||
import com.klp.common.annotation.ExcelDictFormat;
|
||||
import com.klp.common.convert.ExcelDictConvert;
|
||||
import lombok.Data;
|
||||
|
||||
|
||||
/**
|
||||
* 检化验申请单视图对象 wms_inspection_application
|
||||
*
|
||||
* @author klp
|
||||
* @date 2026-07-08
|
||||
*/
|
||||
@Data
|
||||
@ExcelIgnoreUnannotated
|
||||
public class WmsInspectionApplicationVo {
|
||||
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
/**
|
||||
* 申请单主键
|
||||
*/
|
||||
@ExcelProperty(value = "申请单主键")
|
||||
private Long applicationId;
|
||||
|
||||
/**
|
||||
* 申请单编号(如 LAB-20260708-0001)
|
||||
*/
|
||||
@ExcelProperty(value = "申请单编号", converter = ExcelDictConvert.class)
|
||||
@ExcelDictFormat(readConverterExp = "如=,L=AB-20260708-0001")
|
||||
private String applicationNo;
|
||||
|
||||
/**
|
||||
* 申请标题
|
||||
*/
|
||||
@ExcelProperty(value = "申请标题")
|
||||
private String applicationTitle;
|
||||
|
||||
/**
|
||||
* 产线(如:1#产线、2#产线)
|
||||
*/
|
||||
@ExcelProperty(value = "产线", converter = ExcelDictConvert.class)
|
||||
@ExcelDictFormat(readConverterExp = "如=:1#产线、2#产线")
|
||||
private String productionLine;
|
||||
|
||||
/**
|
||||
* 实验类型(字典:lab_experiment_type:physical=物理检验 chemical=化学检验)
|
||||
*/
|
||||
@ExcelProperty(value = "实验类型", converter = ExcelDictConvert.class)
|
||||
@ExcelDictFormat(readConverterExp = "字=典:lab_experiment_type:physical=物理检验,c=hemical=化学检验")
|
||||
private String experimentType;
|
||||
|
||||
/**
|
||||
* 样品名称
|
||||
*/
|
||||
@ExcelProperty(value = "样品名称")
|
||||
private String sampleName;
|
||||
|
||||
/**
|
||||
* 样品批号
|
||||
*/
|
||||
@ExcelProperty(value = "样品批号")
|
||||
private String sampleBatchNo;
|
||||
|
||||
/**
|
||||
* 样品来源(如:来料、过程样、成品样)
|
||||
*/
|
||||
@ExcelProperty(value = "样品来源", converter = ExcelDictConvert.class)
|
||||
@ExcelDictFormat(readConverterExp = "如=:来料、过程样、成品样")
|
||||
private String sampleSource;
|
||||
|
||||
/**
|
||||
* 样品数量
|
||||
*/
|
||||
@ExcelProperty(value = "样品数量")
|
||||
private Long sampleQuantity;
|
||||
|
||||
/**
|
||||
* 检验目的/用途说明
|
||||
*/
|
||||
@ExcelProperty(value = "检验目的/用途说明")
|
||||
private String testPurpose;
|
||||
|
||||
/**
|
||||
* 要求完成日期
|
||||
*/
|
||||
@ExcelProperty(value = "要求完成日期")
|
||||
private Date requiredDate;
|
||||
|
||||
/**
|
||||
* 流程状态(字典:lab_application_status):1=草稿 2=待审批 3=已通过 4=已驳回 5=实验中 6=已完成
|
||||
*/
|
||||
@ExcelProperty(value = "流程状态", converter = ExcelDictConvert.class)
|
||||
@ExcelDictFormat(readConverterExp = "字=典:lab_application_status")
|
||||
private Integer flowStatus;
|
||||
|
||||
/**
|
||||
* 提交送审时间
|
||||
*/
|
||||
@ExcelProperty(value = "提交送审时间")
|
||||
private Date submitTime;
|
||||
|
||||
/**
|
||||
* 审批人
|
||||
*/
|
||||
@ExcelProperty(value = "审批人")
|
||||
private String approveBy;
|
||||
|
||||
/**
|
||||
* 审批时间
|
||||
*/
|
||||
@ExcelProperty(value = "审批时间")
|
||||
private Date approveTime;
|
||||
|
||||
/**
|
||||
* 审批意见
|
||||
*/
|
||||
@ExcelProperty(value = "审批意见")
|
||||
private String approveOpinion;
|
||||
|
||||
/**
|
||||
* 驳回原因
|
||||
*/
|
||||
@ExcelProperty(value = "驳回原因")
|
||||
private String rejectReason;
|
||||
|
||||
/**
|
||||
* 主表id
|
||||
*/
|
||||
@ExcelProperty(value = "主表id")
|
||||
private Long mainId;
|
||||
|
||||
/**
|
||||
* 记录此次操作结果ids
|
||||
*/
|
||||
@ExcelProperty(value = "记录此次操作结果ids")
|
||||
private String detailIds;
|
||||
|
||||
/**
|
||||
* 实验操作人
|
||||
*/
|
||||
@ExcelProperty(value = "实验操作人")
|
||||
private String experimentOperator;
|
||||
|
||||
/**
|
||||
* 实验开始时间
|
||||
*/
|
||||
@ExcelProperty(value = "实验开始时间")
|
||||
private Date experimentStartTime;
|
||||
|
||||
/**
|
||||
* 实验结束时间
|
||||
*/
|
||||
@ExcelProperty(value = "实验结束时间")
|
||||
private Date experimentEndTime;
|
||||
|
||||
/**
|
||||
* 实验结果汇总/结论
|
||||
*/
|
||||
@ExcelProperty(value = "实验结果汇总/结论")
|
||||
private String resultSummary;
|
||||
|
||||
/**
|
||||
* 结果填报人(录入台账的人)
|
||||
*/
|
||||
@ExcelProperty(value = "结果填报人", converter = ExcelDictConvert.class)
|
||||
@ExcelDictFormat(readConverterExp = "录=入台账的人")
|
||||
private String resultFiller;
|
||||
|
||||
/**
|
||||
* 结果填报时间
|
||||
*/
|
||||
@ExcelProperty(value = "结果填报时间")
|
||||
private Date resultFillTime;
|
||||
|
||||
/**
|
||||
* 备注
|
||||
*/
|
||||
@ExcelProperty(value = "备注")
|
||||
private String remark;
|
||||
|
||||
|
||||
}
|
||||
@@ -1,6 +1,7 @@
|
||||
package com.klp.domain.vo;
|
||||
|
||||
import java.util.Date;
|
||||
import java.util.List;
|
||||
import com.fasterxml.jackson.annotation.JsonFormat;
|
||||
import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
|
||||
import com.alibaba.excel.annotation.ExcelProperty;
|
||||
@@ -73,5 +74,9 @@ public class WmsInspectionMainVo {
|
||||
@ExcelProperty(value = "备注")
|
||||
private String remark;
|
||||
|
||||
/**
|
||||
* 检验项目明细列表
|
||||
*/
|
||||
private List<WmsInspectionDetailVo> detailList;
|
||||
|
||||
}
|
||||
|
||||
@@ -0,0 +1,15 @@
|
||||
package com.klp.mapper;
|
||||
|
||||
import com.klp.domain.WmsInspectionApplication;
|
||||
import com.klp.domain.vo.WmsInspectionApplicationVo;
|
||||
import com.klp.common.core.mapper.BaseMapperPlus;
|
||||
|
||||
/**
|
||||
* 检化验申请单Mapper接口
|
||||
*
|
||||
* @author klp
|
||||
* @date 2026-07-08
|
||||
*/
|
||||
public interface WmsInspectionApplicationMapper extends BaseMapperPlus<WmsInspectionApplicationMapper, WmsInspectionApplication, WmsInspectionApplicationVo> {
|
||||
|
||||
}
|
||||
@@ -0,0 +1,49 @@
|
||||
package com.klp.service;
|
||||
|
||||
import com.klp.domain.WmsInspectionApplication;
|
||||
import com.klp.domain.vo.WmsInspectionApplicationVo;
|
||||
import com.klp.domain.bo.WmsInspectionApplicationBo;
|
||||
import com.klp.common.core.page.TableDataInfo;
|
||||
import com.klp.common.core.domain.PageQuery;
|
||||
|
||||
import java.util.Collection;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 检化验申请单Service接口
|
||||
*
|
||||
* @author klp
|
||||
* @date 2026-07-08
|
||||
*/
|
||||
public interface IWmsInspectionApplicationService {
|
||||
|
||||
/**
|
||||
* 查询检化验申请单
|
||||
*/
|
||||
WmsInspectionApplicationVo queryById(Long applicationId);
|
||||
|
||||
/**
|
||||
* 查询检化验申请单列表
|
||||
*/
|
||||
TableDataInfo<WmsInspectionApplicationVo> queryPageList(WmsInspectionApplicationBo bo, PageQuery pageQuery);
|
||||
|
||||
/**
|
||||
* 查询检化验申请单列表
|
||||
*/
|
||||
List<WmsInspectionApplicationVo> queryList(WmsInspectionApplicationBo bo);
|
||||
|
||||
/**
|
||||
* 新增检化验申请单
|
||||
*/
|
||||
Boolean insertByBo(WmsInspectionApplicationBo bo);
|
||||
|
||||
/**
|
||||
* 修改检化验申请单
|
||||
*/
|
||||
Boolean updateByBo(WmsInspectionApplicationBo bo);
|
||||
|
||||
/**
|
||||
* 校验并批量删除检化验申请单信息
|
||||
*/
|
||||
Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid);
|
||||
}
|
||||
@@ -0,0 +1,132 @@
|
||||
package com.klp.service.impl;
|
||||
|
||||
import cn.hutool.core.bean.BeanUtil;
|
||||
import com.klp.common.core.page.TableDataInfo;
|
||||
import com.klp.common.core.domain.PageQuery;
|
||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
||||
import com.klp.common.utils.StringUtils;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import org.springframework.stereotype.Service;
|
||||
import com.klp.domain.bo.WmsInspectionApplicationBo;
|
||||
import com.klp.domain.vo.WmsInspectionApplicationVo;
|
||||
import com.klp.domain.WmsInspectionApplication;
|
||||
import com.klp.mapper.WmsInspectionApplicationMapper;
|
||||
import com.klp.service.IWmsInspectionApplicationService;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.Collection;
|
||||
|
||||
/**
|
||||
* 检化验申请单Service业务层处理
|
||||
*
|
||||
* @author klp
|
||||
* @date 2026-07-08
|
||||
*/
|
||||
@RequiredArgsConstructor
|
||||
@Service
|
||||
public class WmsInspectionApplicationServiceImpl implements IWmsInspectionApplicationService {
|
||||
|
||||
private final WmsInspectionApplicationMapper baseMapper;
|
||||
|
||||
/**
|
||||
* 查询检化验申请单
|
||||
*/
|
||||
@Override
|
||||
public WmsInspectionApplicationVo queryById(Long applicationId){
|
||||
return baseMapper.selectVoById(applicationId);
|
||||
}
|
||||
|
||||
/**
|
||||
* 查询检化验申请单列表
|
||||
*/
|
||||
@Override
|
||||
public TableDataInfo<WmsInspectionApplicationVo> queryPageList(WmsInspectionApplicationBo bo, PageQuery pageQuery) {
|
||||
LambdaQueryWrapper<WmsInspectionApplication> lqw = buildQueryWrapper(bo);
|
||||
Page<WmsInspectionApplicationVo> result = baseMapper.selectVoPage(pageQuery.build(), lqw);
|
||||
return TableDataInfo.build(result);
|
||||
}
|
||||
|
||||
/**
|
||||
* 查询检化验申请单列表
|
||||
*/
|
||||
@Override
|
||||
public List<WmsInspectionApplicationVo> queryList(WmsInspectionApplicationBo bo) {
|
||||
LambdaQueryWrapper<WmsInspectionApplication> lqw = buildQueryWrapper(bo);
|
||||
return baseMapper.selectVoList(lqw);
|
||||
}
|
||||
|
||||
private LambdaQueryWrapper<WmsInspectionApplication> buildQueryWrapper(WmsInspectionApplicationBo bo) {
|
||||
Map<String, Object> params = bo.getParams();
|
||||
LambdaQueryWrapper<WmsInspectionApplication> lqw = Wrappers.lambdaQuery();
|
||||
lqw.eq(StringUtils.isNotBlank(bo.getApplicationNo()), WmsInspectionApplication::getApplicationNo, bo.getApplicationNo());
|
||||
lqw.eq(StringUtils.isNotBlank(bo.getApplicationTitle()), WmsInspectionApplication::getApplicationTitle, bo.getApplicationTitle());
|
||||
lqw.eq(StringUtils.isNotBlank(bo.getProductionLine()), WmsInspectionApplication::getProductionLine, bo.getProductionLine());
|
||||
lqw.eq(StringUtils.isNotBlank(bo.getExperimentType()), WmsInspectionApplication::getExperimentType, bo.getExperimentType());
|
||||
lqw.like(StringUtils.isNotBlank(bo.getSampleName()), WmsInspectionApplication::getSampleName, bo.getSampleName());
|
||||
lqw.eq(StringUtils.isNotBlank(bo.getSampleBatchNo()), WmsInspectionApplication::getSampleBatchNo, bo.getSampleBatchNo());
|
||||
lqw.eq(StringUtils.isNotBlank(bo.getSampleSource()), WmsInspectionApplication::getSampleSource, bo.getSampleSource());
|
||||
lqw.eq(bo.getSampleQuantity() != null, WmsInspectionApplication::getSampleQuantity, bo.getSampleQuantity());
|
||||
lqw.eq(StringUtils.isNotBlank(bo.getTestPurpose()), WmsInspectionApplication::getTestPurpose, bo.getTestPurpose());
|
||||
lqw.eq(bo.getRequiredDate() != null, WmsInspectionApplication::getRequiredDate, bo.getRequiredDate());
|
||||
lqw.eq(bo.getFlowStatus() != null, WmsInspectionApplication::getFlowStatus, bo.getFlowStatus());
|
||||
lqw.eq(bo.getSubmitTime() != null, WmsInspectionApplication::getSubmitTime, bo.getSubmitTime());
|
||||
lqw.eq(StringUtils.isNotBlank(bo.getApproveBy()), WmsInspectionApplication::getApproveBy, bo.getApproveBy());
|
||||
lqw.eq(bo.getApproveTime() != null, WmsInspectionApplication::getApproveTime, bo.getApproveTime());
|
||||
lqw.eq(StringUtils.isNotBlank(bo.getApproveOpinion()), WmsInspectionApplication::getApproveOpinion, bo.getApproveOpinion());
|
||||
lqw.eq(StringUtils.isNotBlank(bo.getRejectReason()), WmsInspectionApplication::getRejectReason, bo.getRejectReason());
|
||||
lqw.eq(bo.getMainId() != null, WmsInspectionApplication::getMainId, bo.getMainId());
|
||||
lqw.eq(StringUtils.isNotBlank(bo.getDetailIds()), WmsInspectionApplication::getDetailIds, bo.getDetailIds());
|
||||
lqw.eq(StringUtils.isNotBlank(bo.getExperimentOperator()), WmsInspectionApplication::getExperimentOperator, bo.getExperimentOperator());
|
||||
lqw.eq(bo.getExperimentStartTime() != null, WmsInspectionApplication::getExperimentStartTime, bo.getExperimentStartTime());
|
||||
lqw.eq(bo.getExperimentEndTime() != null, WmsInspectionApplication::getExperimentEndTime, bo.getExperimentEndTime());
|
||||
lqw.eq(StringUtils.isNotBlank(bo.getResultSummary()), WmsInspectionApplication::getResultSummary, bo.getResultSummary());
|
||||
lqw.eq(StringUtils.isNotBlank(bo.getResultFiller()), WmsInspectionApplication::getResultFiller, bo.getResultFiller());
|
||||
lqw.eq(bo.getResultFillTime() != null, WmsInspectionApplication::getResultFillTime, bo.getResultFillTime());
|
||||
return lqw;
|
||||
}
|
||||
|
||||
/**
|
||||
* 新增检化验申请单
|
||||
*/
|
||||
@Override
|
||||
public Boolean insertByBo(WmsInspectionApplicationBo bo) {
|
||||
WmsInspectionApplication add = BeanUtil.toBean(bo, WmsInspectionApplication.class);
|
||||
validEntityBeforeSave(add);
|
||||
boolean flag = baseMapper.insert(add) > 0;
|
||||
if (flag) {
|
||||
bo.setApplicationId(add.getApplicationId());
|
||||
}
|
||||
return flag;
|
||||
}
|
||||
|
||||
/**
|
||||
* 修改检化验申请单
|
||||
*/
|
||||
@Override
|
||||
public Boolean updateByBo(WmsInspectionApplicationBo bo) {
|
||||
WmsInspectionApplication update = BeanUtil.toBean(bo, WmsInspectionApplication.class);
|
||||
validEntityBeforeSave(update);
|
||||
return baseMapper.updateById(update) > 0;
|
||||
}
|
||||
|
||||
/**
|
||||
* 保存前的数据校验
|
||||
*/
|
||||
private void validEntityBeforeSave(WmsInspectionApplication entity){
|
||||
//TODO 做一些数据校验,如唯一约束
|
||||
}
|
||||
|
||||
/**
|
||||
* 批量删除检化验申请单
|
||||
*/
|
||||
@Override
|
||||
public Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid) {
|
||||
if(isValid){
|
||||
//TODO 做一些业务上的校验,判断是否需要校验
|
||||
}
|
||||
return baseMapper.deleteBatchIds(ids) > 0;
|
||||
}
|
||||
}
|
||||
@@ -1,6 +1,7 @@
|
||||
package com.klp.service.impl;
|
||||
|
||||
import cn.hutool.core.bean.BeanUtil;
|
||||
import cn.hutool.core.collection.CollUtil;
|
||||
import com.klp.common.core.page.TableDataInfo;
|
||||
import com.klp.common.core.domain.PageQuery;
|
||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
@@ -11,13 +12,18 @@ import lombok.RequiredArgsConstructor;
|
||||
import org.springframework.stereotype.Service;
|
||||
import com.klp.domain.bo.WmsInspectionMainBo;
|
||||
import com.klp.domain.vo.WmsInspectionMainVo;
|
||||
import com.klp.domain.vo.WmsInspectionDetailVo;
|
||||
import com.klp.domain.WmsInspectionMain;
|
||||
import com.klp.domain.WmsInspectionDetail;
|
||||
import com.klp.mapper.WmsInspectionMainMapper;
|
||||
import com.klp.mapper.WmsInspectionDetailMapper;
|
||||
import com.klp.service.IWmsInspectionMainService;
|
||||
|
||||
import java.util.Collections;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.Collection;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
/**
|
||||
* 检验主Service业务层处理
|
||||
@@ -30,6 +36,7 @@ import java.util.Collection;
|
||||
public class WmsInspectionMainServiceImpl implements IWmsInspectionMainService {
|
||||
|
||||
private final WmsInspectionMainMapper baseMapper;
|
||||
private final WmsInspectionDetailMapper detailMapper;
|
||||
|
||||
/**
|
||||
* 查询检验主
|
||||
@@ -46,6 +53,7 @@ public class WmsInspectionMainServiceImpl implements IWmsInspectionMainService {
|
||||
public TableDataInfo<WmsInspectionMainVo> queryPageList(WmsInspectionMainBo bo, PageQuery pageQuery) {
|
||||
LambdaQueryWrapper<WmsInspectionMain> lqw = buildQueryWrapper(bo);
|
||||
Page<WmsInspectionMainVo> result = baseMapper.selectVoPage(pageQuery.build(), lqw);
|
||||
fillDetailList(result.getRecords());
|
||||
return TableDataInfo.build(result);
|
||||
}
|
||||
|
||||
@@ -55,7 +63,9 @@ public class WmsInspectionMainServiceImpl implements IWmsInspectionMainService {
|
||||
@Override
|
||||
public List<WmsInspectionMainVo> queryList(WmsInspectionMainBo bo) {
|
||||
LambdaQueryWrapper<WmsInspectionMain> lqw = buildQueryWrapper(bo);
|
||||
return baseMapper.selectVoList(lqw);
|
||||
List<WmsInspectionMainVo> list = baseMapper.selectVoList(lqw);
|
||||
fillDetailList(list);
|
||||
return list;
|
||||
}
|
||||
|
||||
private LambdaQueryWrapper<WmsInspectionMain> buildQueryWrapper(WmsInspectionMainBo bo) {
|
||||
@@ -72,6 +82,21 @@ public class WmsInspectionMainServiceImpl implements IWmsInspectionMainService {
|
||||
return lqw;
|
||||
}
|
||||
|
||||
private void fillDetailList(List<WmsInspectionMainVo> voList) {
|
||||
if (CollUtil.isEmpty(voList)) {
|
||||
return;
|
||||
}
|
||||
List<Long> mainIds = voList.stream().map(WmsInspectionMainVo::getMainId).collect(Collectors.toList());
|
||||
List<WmsInspectionDetailVo> allDetails = detailMapper.selectVoList(
|
||||
new LambdaQueryWrapper<WmsInspectionDetail>().in(WmsInspectionDetail::getMainId, mainIds)
|
||||
);
|
||||
Map<Long, List<WmsInspectionDetailVo>> detailMap = allDetails.stream()
|
||||
.collect(Collectors.groupingBy(WmsInspectionDetailVo::getMainId));
|
||||
for (WmsInspectionMainVo vo : voList) {
|
||||
vo.setDetailList(detailMap.getOrDefault(vo.getMainId(), Collections.emptyList()));
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 新增检验主
|
||||
*/
|
||||
|
||||
@@ -0,0 +1,42 @@
|
||||
<?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.klp.mapper.WmsInspectionApplicationMapper">
|
||||
|
||||
<resultMap type="com.klp.domain.WmsInspectionApplication" id="WmsInspectionApplicationResult">
|
||||
<result property="applicationId" column="application_id"/>
|
||||
<result property="applicationNo" column="application_no"/>
|
||||
<result property="applicationTitle" column="application_title"/>
|
||||
<result property="productionLine" column="production_line"/>
|
||||
<result property="experimentType" column="experiment_type"/>
|
||||
<result property="sampleName" column="sample_name"/>
|
||||
<result property="sampleBatchNo" column="sample_batch_no"/>
|
||||
<result property="sampleSource" column="sample_source"/>
|
||||
<result property="sampleQuantity" column="sample_quantity"/>
|
||||
<result property="testPurpose" column="test_purpose"/>
|
||||
<result property="requiredDate" column="required_date"/>
|
||||
<result property="flowStatus" column="flow_status"/>
|
||||
<result property="submitTime" column="submit_time"/>
|
||||
<result property="approveBy" column="approve_by"/>
|
||||
<result property="approveTime" column="approve_time"/>
|
||||
<result property="approveOpinion" column="approve_opinion"/>
|
||||
<result property="rejectReason" column="reject_reason"/>
|
||||
<result property="mainId" column="main_id"/>
|
||||
<result property="detailIds" column="detail_ids"/>
|
||||
<result property="experimentOperator" column="experiment_operator"/>
|
||||
<result property="experimentStartTime" column="experiment_start_time"/>
|
||||
<result property="experimentEndTime" column="experiment_end_time"/>
|
||||
<result property="resultSummary" column="result_summary"/>
|
||||
<result property="resultFiller" column="result_filler"/>
|
||||
<result property="resultFillTime" column="result_fill_time"/>
|
||||
<result property="delFlag" column="del_flag"/>
|
||||
<result property="createBy" column="create_by"/>
|
||||
<result property="createTime" column="create_time"/>
|
||||
<result property="updateBy" column="update_by"/>
|
||||
<result property="updateTime" column="update_time"/>
|
||||
<result property="remark" column="remark"/>
|
||||
</resultMap>
|
||||
|
||||
|
||||
</mapper>
|
||||
Reference in New Issue
Block a user