add:手工排产功能上线;出库单设置

This commit is contained in:
zhangzq
2023-12-14 18:31:36 +08:00
parent 9f2b73a49f
commit e620dff9b2
14 changed files with 303 additions and 46 deletions

View File

@@ -65,6 +65,11 @@ public class PdmProduceWorkorderController{
public ResponseEntity<Object> query(WorkorderQuery query, PageQuery page) { public ResponseEntity<Object> query(WorkorderQuery query, PageQuery page) {
return new ResponseEntity<>(iPdmProduceWorkorderService.queryAll(query, page), HttpStatus.OK); return new ResponseEntity<>(iPdmProduceWorkorderService.queryAll(query, page), HttpStatus.OK);
} }
@GetMapping("/queryByAps")
@Log("查询工单管理")
public ResponseEntity<Object> queryByAps(WorkorderQuery query, PageQuery page) {
return new ResponseEntity<>(iPdmProduceWorkorderService.queryAllByAps(query, page), HttpStatus.OK);
}
@PostMapping @PostMapping
@Log("查询工单管理") @Log("查询工单管理")

View File

@@ -41,6 +41,7 @@ public interface IPdmProduceWorkorderService extends IService<PdmProduceWorkorde
* @return Map<String, Object> * @return Map<String, Object>
*/ */
TableDataInfo queryAll(WorkorderQuery whereJson, PageQuery page); TableDataInfo queryAll(WorkorderQuery whereJson, PageQuery page);
TableDataInfo queryAllByAps(WorkorderQuery whereJson, PageQuery page);
/** /**
* 查询所有数据不分页 * 查询所有数据不分页

View File

@@ -25,6 +25,8 @@ import java.util.Map;
public interface PdmProduceWorkorderMapper extends BaseMapper<PdmProduceWorkorder>{ public interface PdmProduceWorkorderMapper extends BaseMapper<PdmProduceWorkorder>{
List<Map> pageQuery(@Param("query") WorkorderQuery query); List<Map> pageQuery(@Param("query") WorkorderQuery query);
List<Map> pageQueryByAps(@Param("query") WorkorderQuery query);
List<Map> getworkOrderDtl(String workorder_id); List<Map> getworkOrderDtl(String workorder_id);
int batchUpdateByParam(@Param("event") List<Map> event, @Param("workorder_id") String workorder_id); int batchUpdateByParam(@Param("event") List<Map> event, @Param("workorder_id") String workorder_id);

View File

@@ -3,6 +3,91 @@
<mapper namespace="org.nl.wms.product_manage.service.workorder.dao.mapper.PdmProduceWorkorderMapper"> <mapper namespace="org.nl.wms.product_manage.service.workorder.dao.mapper.PdmProduceWorkorderMapper">
<select id="pageQuery" resultType="java.util.Map"> <select id="pageQuery" resultType="java.util.Map">
SELECT
DATE_FORMAT(ShiftOrder.planproducestart_date, '%Y-%m-%d %H:%i:%s' ) AS planproducestart_date,
DATE_FORMAT(ShiftOrder.planproduceend_date, '%Y-%m-%d %H:%i:%s' ) AS planproduceend_date,
DATE_FORMAT(ShiftOrder.realproducestart_date, '%Y-%m-%d %H:%i:%s' ) AS realproducestart_date,
DATE_FORMAT(ShiftOrder.realproduceend_date, '%Y-%m-%d %H:%i:%s' ) AS realproduceend_date,
ShiftOrder.*,
material.material_name,
material.material_code,
material.material_spec,
material.net_weight AS material_weight,
IF(material.limit_qty=0,device.outupperlimit_qty,material.limit_qty) as outupperlimit_qty,
pro.workprocedure_code,
pro.workprocedure_name,
users.person_name AS current_produce_person_name
FROM PDM_produce_workOrder ShiftOrder
LEFT JOIN md_me_materialbase material ON material.material_id = ShiftOrder.material_id
LEFT JOIN PDM_BI_WorkProcedure pro ON pro.workprocedure_id = ShiftOrder.workprocedure_id
LEFT JOIN sys_user users ON users.user_id = ShiftOrder.current_produce_person_id
LEFT JOIN pdm_bi_device device ON ShiftOrder.device_code = device.device_code
WHERE
ShiftOrder.device_code is not null and ShiftOrder.current_produce_person_id is not null and
ShiftOrder.is_delete = '0' AND ShiftOrder.aps_work_type != 'S'
<if test="query.workorder_code != null and query.workorder_code != ''">
and ShiftOrder.workorder_code like concat('%',#{query.workorder_code},'%')
</if>
<if test="query.filter_order_code == null or query.filter_order_code == ''">
and ShiftOrder.workorder_code !=0 and ShiftOrder.device_code IS NOT NULL
</if>
<if test="query.order_status != null and query.order_status != ''">
and find_in_set(ShiftOrder.workorder_status, #{query.order_status})
</if>
<if test="query.device_code != null and query.device_code != ''">
and ShiftOrder.device_code like '%${query.device_code}%'
</if>
<if test="query.create_type != null and query.create_type != ''">
and ShiftOrder.create_type = #{query.create_type}
</if>
<if test="query.shift_type_scode != null and query.shift_type_scode != ''">
and ShiftOrder.shift_type_scode = #{query.shift_type_scode}
</if>
<if test="query.workprocedure_id != null and query.workprocedure_id != ''">
and pro.workprocedure_id = #{query.workprocedure_id}
</if>
<if test="query.workprocedure_code != null and query.workprocedure_code != ''">
and pro.workprocedure_code = #{query.workprocedure_code}
</if>
<if test="query.workprocedure_codes != null and query.workprocedure_codes != ''">
and pro.workprocedure_code IN #{query.workprocedure_codes}
</if>
<if test="query.product_area != null and query.product_area != ''">
and ShiftOrder.product_area = #{query.product_area}
</if>
<if test="query.is_error != null and query.is_error != ''">
and ShiftOrder.is_error = #{query.is_error}
</if>
<if test="query.product_series != null and query.product_series != ''">
and ShiftOrder.materialprocess_series in ${query.product_series}
</if>
<if test="query.start_time != null and query.start_time != ''">
and ShiftOrder.realproducestart_date >= #{query.start_time}
</if>
<if test="query.end_time != null and query.end_time != ''">
and ShiftOrder.realproduceend_date &lt;= #{query.end_time}
</if>
<if test="query.plan_start_time != null and query.plan_start_time != ''">
and ShiftOrder.planproducestart_date >= #{query.plan_start_time}
</if>
<if test="query.plan_end_time != null and query.plan_end_time != ''">
and ShiftOrder.planproducestart_date &lt;= #{query.plan_end_time}
</if>
<if test="query.sale_id != null and query.sale_id != ''">
and ShiftOrder.sale_id like '%${query.sale_id}%'
</if>
<if test="query.material_code != null and query.material_code != ''">
and material.material_code = #{query.material_code}
</if>
<if test="query.material != null and query.material != ''">
and (
material.material_code like '%${query.material}%' or
material.material_name like '%${query.material}%' or
material.material_spec like '%${query.material}%'
)
</if>
</select>
<select id="pageQueryByAps" resultType="java.util.Map">
SELECT SELECT
DATE_FORMAT(ShiftOrder.planproducestart_date, '%Y-%m-%d %H:%i:%s' ) AS planproducestart_date, DATE_FORMAT(ShiftOrder.planproducestart_date, '%Y-%m-%d %H:%i:%s' ) AS planproducestart_date,
DATE_FORMAT(ShiftOrder.planproduceend_date, '%Y-%m-%d %H:%i:%s' ) AS planproduceend_date, DATE_FORMAT(ShiftOrder.planproduceend_date, '%Y-%m-%d %H:%i:%s' ) AS planproduceend_date,

View File

@@ -120,7 +120,7 @@ public class IPdmProduceWorkorderServiceImpl extends ServiceImpl<PdmProduceWorko
@Override @Override
public TableDataInfo queryAll(WorkorderQuery query, PageQuery pageQuery) { public TableDataInfo queryAll(WorkorderQuery query, PageQuery pageQuery) {
String orderBy = "ShiftOrder.workorder_code"; String orderBy = "ShiftOrder.workorder_status desc,ShiftOrder.device_code desc,ShiftOrder.aps_workorder_no asc";
if (!StringUtils.isEmpty(query.getProduct_series())) { if (!StringUtils.isEmpty(query.getProduct_series())) {
String collect = classstandardService.getChildIdStr(query.getProduct_series()).stream().collect(Collectors.joining("','")); String collect = classstandardService.getChildIdStr(query.getProduct_series()).stream().collect(Collectors.joining("','"));
query.setProduct_series("('" + collect + "')"); query.setProduct_series("('" + collect + "')");
@@ -128,9 +128,6 @@ public class IPdmProduceWorkorderServiceImpl extends ServiceImpl<PdmProduceWorko
if (!StringUtils.isEmpty(query.getOrder_status()) && query.getOrder_status().contains("-1")) { if (!StringUtils.isEmpty(query.getOrder_status()) && query.getOrder_status().contains("-1")) {
query.setOrder_status(query.getOrder_status().replaceAll("-1", "1,2,3,4")); query.setOrder_status(query.getOrder_status().replaceAll("-1", "1,2,3,4"));
} }
if (!StringUtils.isEmpty(query.getFilter_order_code())) {
orderBy = "ShiftOrder.aps_workorder_no desc";
}
if (!StringUtils.isEmpty(query.getTitleSort())) { if (!StringUtils.isEmpty(query.getTitleSort())) {
orderBy = query.getTitleSort(); orderBy = query.getTitleSort();
} }
@@ -141,6 +138,28 @@ public class IPdmProduceWorkorderServiceImpl extends ServiceImpl<PdmProduceWorko
return build; return build;
} }
@Override
public TableDataInfo queryAllByAps(WorkorderQuery query, PageQuery pageQuery) {
String orderBy = "ShiftOrder.workprocedure_id asc,ShiftOrder.aps_workorder_no asc,ShiftOrder.workorder_code desc";
if (!StringUtils.isEmpty(query.getProduct_series())) {
String collect = classstandardService.getChildIdStr(query.getProduct_series()).stream().collect(Collectors.joining("','"));
query.setProduct_series("('" + collect + "')");
}
if (!StringUtils.isEmpty(query.getOrder_status()) && query.getOrder_status().contains("-1")) {
query.setOrder_status(query.getOrder_status().replaceAll("-1", "1,2,3,4"));
}
if (!StringUtils.isEmpty(query.getTitleSort())) {
orderBy = query.getTitleSort();
}
Page<Object> page = PageHelper.startPage(pageQuery.getPage() + 1, pageQuery.getSize()).setOrderBy(orderBy);
List<Map> result = pdmProduceWorkorderMapper.pageQueryByAps(query);
TableDataInfo build = TableDataInfo.build(result);
build.setTotalElements(page.getTotal());
return build;
}
@Override @Override
public Object queryAll(Map whereJson) { public Object queryAll(Map whereJson) {
return this.list(); return this.list();
@@ -582,7 +601,10 @@ public class IPdmProduceWorkorderServiceImpl extends ServiceImpl<PdmProduceWorko
} }
if(j == 4) { if(j == 4) {
//设备 A1_TW_ //设备 A1_TW_
workorder.setDevice_code("A1_TW_" + col.replaceAll("-", "_")); String s = col.replaceAll("-", "_");
if (StringUtils.isNotEmpty(s)){
workorder.setDevice_code("A1_TW_" + s);
}
} }
if(j == 7) { if(j == 7) {
//单重 //单重
@@ -618,7 +640,8 @@ public class IPdmProduceWorkorderServiceImpl extends ServiceImpl<PdmProduceWorko
PdmProduceWorkorder workorder = data.get(i); PdmProduceWorkorder workorder = data.get(i);
SysUser sysUser = users.get(workorder.getCurrent_produce_person_id()); SysUser sysUser = users.get(workorder.getCurrent_produce_person_id());
if(sysUser == null) { if(sysUser == null) {
errorMap.put("" + (i + 1) + "行:", "账号:" + workorder.getCurrent_produce_person_id() + "不存在"); //errorMap.put("第" + (i + 1) + "行:", "账号:" + workorder.getCurrent_produce_person_id() + "不存在");
workorder.setCurrent_produce_person_id(null);
} }
else{ else{
workorder.setCurrent_produce_person_id(sysUser.getUser_id()); workorder.setCurrent_produce_person_id(sysUser.getUser_id());
@@ -744,7 +767,8 @@ public class IPdmProduceWorkorderServiceImpl extends ServiceImpl<PdmProduceWorko
PdmProduceWorkorder workorder = data.get(i); PdmProduceWorkorder workorder = data.get(i);
SysUser sysUser = users.get(workorder.getCurrent_produce_person_id()); SysUser sysUser = users.get(workorder.getCurrent_produce_person_id());
if(sysUser == null) { if(sysUser == null) {
errorMap.put("" + (i + 1) + "行:", "账号:" + workorder.getCurrent_produce_person_id() + "不存在"); //errorMap.put("第" + (i + 1) + "行:", "账号:" + workorder.getCurrent_produce_person_id() + "不存在");
workorder.setCurrent_produce_person_id(null);
} }
else{ else{
workorder.setCurrent_produce_person_id(sysUser.getUser_id()); workorder.setCurrent_produce_person_id(sysUser.getUser_id());
@@ -785,6 +809,7 @@ public class IPdmProduceWorkorderServiceImpl extends ServiceImpl<PdmProduceWorko
for(int i = 0; i < data.size(); i++) { for(int i = 0; i < data.size(); i++) {
PdmProduceWorkorder item = data.get(i); PdmProduceWorkorder item = data.get(i);
List<PdmBiDevice> devices = listMap.get(item.getWorkprocedure_id()); List<PdmBiDevice> devices = listMap.get(item.getWorkprocedure_id());
if (StringUtils.isNotEmpty(item.getDevice_code())){
if("1535144356586165920".equals(item.getWorkprocedure_id())) { if("1535144356586165920".equals(item.getWorkprocedure_id())) {
item.setDevice_code("A1_DC_" + item.getDevice_code().replaceAll("-", "_")); item.setDevice_code("A1_DC_" + item.getDevice_code().replaceAll("-", "_"));
} }
@@ -806,6 +831,9 @@ public class IPdmProduceWorkorderServiceImpl extends ServiceImpl<PdmProduceWorko
item.setDevice_code(deviceCollect.get(0).getDevice_code()); item.setDevice_code(deviceCollect.get(0).getDevice_code());
} }
} }
}else {
item.setDevice_code(null);
}
} }
if(!CollectionUtils.isEmpty(errorMap)) { if(!CollectionUtils.isEmpty(errorMap)) {
throw new BadRequestException(JSON.toJSONString(errorMap)); throw new BadRequestException(JSON.toJSONString(errorMap));
@@ -838,7 +866,7 @@ public class IPdmProduceWorkorderServiceImpl extends ServiceImpl<PdmProduceWorko
//1-创建、2-下发、3-生产中、4-暂停、6-完成 //1-创建、2-下发、3-生产中、4-暂停、6-完成
//判断该工单状态 //判断该工单状态
try { try {
PdmProduceWorkorder result = this.getOne(new QueryWrapper<PdmProduceWorkorder>().eq("device_code", param.getString("device_code")).in("workorder_status", "3", "4").eq("is_delete", false).ne("workorder_id", param.getString("workorder_id"))); PdmProduceWorkorder result = this.getOne(new QueryWrapper<PdmProduceWorkorder>().eq("device_code", param.getString("device_code")).in("workorder_status", "3").eq("is_delete", false).ne("workorder_id", param.getString("workorder_id")));
if (ObjectUtil.isNotEmpty(result)) { if (ObjectUtil.isNotEmpty(result)) {
throw new BadRequestException("已有工单选择该设备开工,请更换开工设备!"); throw new BadRequestException("已有工单选择该设备开工,请更换开工设备!");
} }

View File

@@ -39,6 +39,13 @@ public class StIvtStructivtCpController {
return new ResponseEntity<>(iStIvtStructivtCpService.packageQuery(query,page), HttpStatus.OK); return new ResponseEntity<>(iStIvtStructivtCpService.packageQuery(query,page), HttpStatus.OK);
} }
@GetMapping("/queryGroup")
@Log("成品库存查询")
//("成品库存查询")
public ResponseEntity<Object> queryGroup(CpIvtQuery query, PageQuery page) {
return new ResponseEntity<>(iStIvtStructivtCpService.groupQuery(query,page), HttpStatus.OK);
}
@PostMapping("/getStructIvt") @PostMapping("/getStructIvt")
@Log("查询库存") @Log("查询库存")
//("查询库存") //("查询库存")

View File

@@ -27,6 +27,14 @@ public interface IStIvtStructivtCpService extends IService<StIvtStructivtCp> {
*/ */
Object packageQuery(CpIvtQuery query, PageQuery page); Object packageQuery(CpIvtQuery query, PageQuery page);
/**
* 出库查询(合并)
* @param query
* @param page
* @return
*/
Object groupQuery(CpIvtQuery query, PageQuery page);
/** /**
* 成品库存更新 * 成品库存更新
* @param json * @param json

View File

@@ -31,6 +31,8 @@ public interface StIvtStructivtCpMapper extends BaseMapper<StIvtStructivtCp> {
List<Map> packageQuery(@Param("query") CpIvtQuery query); List<Map> packageQuery(@Param("query") CpIvtQuery query);
List<Map> groupQuery(@Param("query") CpIvtQuery query);
List<Map> getStructAll(@Param("chanList") List<String> list); List<Map> getStructAll(@Param("chanList") List<String> list);
List<JSONObject> getIvtPor(); List<JSONObject> getIvtPor();

View File

@@ -198,6 +198,65 @@
</where> </where>
order by ivt.instorage_time DESC,attr.struct_code ASC order by ivt.instorage_time DESC,attr.struct_code ASC
</select> </select>
<select id="groupQuery" resultType="java.util.Map">
SELECT
attr.stor_name,
attr.sect_name,
ivt.struct_code,
ivt.struct_name,
GROUP_CONCAT(mater.material_id) as material_id,
GROUP_CONCAT(mater.material_name) as material_name,
GROUP_CONCAT(mater.material_spec) as material_spec,
GROUP_CONCAT(mater.material_code) as material_code,
attr.storagevehicle_code,
sum(ivt.canuse_qty) canuse_qty,
sum(ivt.frozen_qty) frozen_qty,
sum(ivt.ivt_qty) ivt_qty,
sum(ivt.warehousing_qty) warehousing_qty,
ivt.bill_type,
unit.unit_name,
unit.measure_unit_id,
ivt.instorage_time,
sale.sale_code,
GROUP_CONCAT(sale.seq_no) as seq_no,
sale.sale_id,
sale.sale_type
FROM
st_ivt_structivt_cp ivt
LEFT JOIN md_me_materialbase mater ON ivt.material_id = mater.material_id
LEFT JOIN st_ivt_structattr attr ON attr.struct_id = ivt.struct_id
LEFT JOIN md_pb_measureunit unit ON unit.measure_unit_id = ivt.qty_unit_id
LEFT JOIN mps_sale_order sale ON sale.sale_id = ivt.sale_id
<where>
1=1
<if test="query.material_code!= null and query.material_code != ''">
and mater.material_code LIKE #{query.material_code} or
(mater.material_name LIKE #{query.material_code}) or
(mater.material_spec LIKE #{query.material_code})
</if>
<if test="query.struct_code!= null and query.struct_code != ''">
and attr.struct_code LIKE #{query.struct_code} or
(attr.struct_name LIKE #{query.struct_code})
</if>
<if test="query.sale_code!= null and query.sale_code != ''">
and sale.sale_code LIKE #{query.sale_code}
</if>
<if test="query.seq_no!= null and query.seq_no != ''">
and sale.seq_no LIKE #{query.seq_no}
</if>
<if test="query.lock_type!= null and query.lock_type != ''">
and attr.lock_type = #{query.lock_type}
</if>
<if test="query.start_time!= null and query.start_time != ''">
and ivt.instorage_time &gt;= #{query.start_time}
</if>
<if test="query.end_time!= null and query.end_time != ''">
and ivt.instorage_time &lt;= #{query.end_time}
</if>
</where>
group by attr.struct_code
order by ivt.instorage_time DESC,attr.struct_code ASC
</select>
<select id="getStructAll" resultType="java.util.Map"> <select id="getStructAll" resultType="java.util.Map">
SELECT SELECT

View File

@@ -70,6 +70,15 @@ public class StIvtStructivtCpServiceImpl extends ServiceImpl<StIvtStructivtCpMap
return build; return build;
} }
@Override
public Object groupQuery(CpIvtQuery query, PageQuery pageQuery) {
Page<Object> page = PageHelper.startPage(pageQuery.getPage() + 1, pageQuery.getSize());
TableDataInfo build = TableDataInfo.build(this.baseMapper.groupQuery(query));
build.setTotalElements(page.getTotal());
return build;
}
@Override @Override
@Transactional(rollbackFor = Exception.class) @Transactional(rollbackFor = Exception.class)
public void UpdateIvt(JSONObject json) { public void UpdateIvt(JSONObject json) {

View File

@@ -172,11 +172,11 @@
<template slot-scope="{ row }"> <template slot-scope="{ row }">
<span <span
:style="{ :style="{
color: row.aps_workorder_no === 999 || row.aps_workorder_no == '0' ? '' : 'orange', color: row.aps_workorder_no === '999' || row.aps_workorder_no == '0' ? '' : 'orange',
fontWeight: row.aps_workorder_no === 999 || row.aps_workorder_no == '0' ? 'normal' : 'bold' fontWeight: row.aps_workorder_no === '999' || row.aps_workorder_no == '0' ? 'normal' : 'bold'
}" }"
> >
{{ row.aps_workorder_no === 999 || row.aps_workorder_no == '0' ? '未调整' : row.aps_workorder_no }} {{ row.aps_workorder_no === '999' || row.aps_workorder_no == '0' ? '未调整' : row.aps_workorder_no }}
</span> </span>
</template> </template>
</el-table-column> </el-table-column>
@@ -425,7 +425,7 @@ export default {
dicts: ['PDM_BI_SHIFTTYPE', 'MPS_BD_ORDERSTATUS', 'WORKORDER_CREATE_TYPE', 'is_used', 'PDM_BI_ORDERTYPE', 'IS_OR_NOT', 'product_area'], dicts: ['PDM_BI_SHIFTTYPE', 'MPS_BD_ORDERSTATUS', 'WORKORDER_CREATE_TYPE', 'is_used', 'PDM_BI_ORDERTYPE', 'IS_OR_NOT', 'product_area'],
cruds() { cruds() {
return CRUD({ return CRUD({
title: '工单调整', url: 'api/produceWorkorder', idField: 'workorder_id', sort: 'workorder_id,desc', title: '工单调整', url: 'api/produceWorkorder/queryByAps', idField: 'workorder_id', sort: 'workorder_id,desc',
optShow: { optShow: {
add: false, add: false,
edit: false, edit: false,

View File

@@ -954,7 +954,7 @@ export default {
query: { query: {
order_status: '-1', order_status: '-1',
product_area: 'A1', product_area: 'A1',
titleSort: 'ShiftOrder.workorder_code desc', titleSort: 'ShiftOrder.device_code,ShiftOrder.aps_workorder_no',
is_error: '0' is_error: '0'
}, },
crudMethod: { ...crudProduceshiftorder } crudMethod: { ...crudProduceshiftorder }
@@ -969,7 +969,7 @@ export default {
statisticsSpecOptions: [], statisticsSpecOptions: [],
workprocedureListArea: [], workprocedureListArea: [],
sortTitileList: [{ value: 'ShiftOrder.device_code,ShiftOrder.aps_workorder_no', label: '设备编号' }, { sortTitileList: [{ value: 'ShiftOrder.device_code,ShiftOrder.aps_workorder_no', label: '设备编号' }, {
value: 'ShiftOrder.workorder_code desc', value: 'ShiftOrder.workorder_status desc,ShiftOrder.workorder_code desc',
label: '工单编号' label: '工单编号'
}], }],
zxj: [{ value: 'A1_ZXJ_1', label: '一线1号装箱机' }, { value: 'A1_ZXJ_2', label: '一线2号装箱机' }], zxj: [{ value: 'A1_ZXJ_1', label: '一线1号装箱机' }, { value: 'A1_ZXJ_2', label: '一线2号装箱机' }],
@@ -1068,6 +1068,7 @@ export default {
rows[0].report_qty = this.reportForm.report_qty rows[0].report_qty = this.reportForm.report_qty
crudProduceshiftorder.report(rows[0]).then(res => { crudProduceshiftorder.report(rows[0]).then(res => {
this.crud.notify('报工成功', CRUD.NOTIFICATION_TYPE.SUCCESS) this.crud.notify('报工成功', CRUD.NOTIFICATION_TYPE.SUCCESS)
this.reportVisible = false
this.crud.toQuery() this.crud.toQuery()
}) })
}, },
@@ -1315,7 +1316,6 @@ export default {
}, },
// 新增编辑给form表单物料相关信息赋值 // 新增编辑给form表单物料相关信息赋值
setMaterValue(row) { setMaterValue(row) {
debugger
this.form.material_id = row.material_id this.form.material_id = row.material_id
this.form.material_code = row.material_code this.form.material_code = row.material_code
this.form.material_name = row.material_name this.form.material_name = row.material_name
@@ -1327,7 +1327,6 @@ export default {
this.form.material_code = row.material_code this.form.material_code = row.material_code
this.form.material_name = row.material_name this.form.material_name = row.material_name
this.form.material_spec = row.material_spec this.form.material_spec = row.material_spec
debugger
const params = { const params = {
'sale_id': row.sale_id, 'sale_id': row.sale_id,
'sale_code': row.sale_code + '-' + row.seq_no, 'sale_code': row.sale_code + '-' + row.seq_no,
@@ -1339,7 +1338,6 @@ export default {
async queryWorkOrderplanQty(params) { async queryWorkOrderplanQty(params) {
try { try {
const res = await crudProduceshiftorder.getWorkOrderplanQty(params) const res = await crudProduceshiftorder.getWorkOrderplanQty(params)
debugger
if (!isNaN(res) && res > 0) { if (!isNaN(res) && res > 0) {
this.form.plan_qty = res this.form.plan_qty = res
} }
@@ -1354,7 +1352,6 @@ export default {
}) })
}, },
getworkprocedureByarea(area) { getworkprocedureByarea(area) {
debugger
const params = { product_area: area } const params = { product_area: area }
crudWorkProcedure.downSelect(params).then(res => { crudWorkProcedure.downSelect(params).then(res => {
this.workprocedureList = res this.workprocedureList = res

View File

@@ -8,6 +8,14 @@ export function add(data) {
}) })
} }
export function queryIvt(params) {
return request({
url: '/api/stIvtStructivtCp',
method: 'get',
params
})
}
export function del(ids) { export function del(ids) {
return request({ return request({
url: '/api/stIvtStructivtCp/delete', url: '/api/stIvtStructivtCp/delete',
@@ -27,5 +35,6 @@ export function edit(data) {
export default { export default {
add, add,
edit, edit,
del del,
queryIvt
} }

View File

@@ -87,15 +87,17 @@
<el-radio v-model="tableRadio" :label="scope.row"><i /></el-radio> <el-radio v-model="tableRadio" :label="scope.row"><i /></el-radio>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column show-overflow-tooltip prop="stor_name" label="仓库名称" /> <el-table-column show-overflow-tooltip min-width="120" prop="stor_name" label="仓库名称" />
<el-table-column show-overflow-tooltip prop="sect_name" label="库区名称" /> <el-table-column show-overflow-tooltip prop="sect_name" label="库区名称" />
<el-table-column show-overflow-tooltip prop="struct_code" label="仓位编码" /> <el-table-column show-overflow-tooltip prop="struct_code" label="仓位编码" min-width="120">
<el-table-column show-overflow-tooltip prop="struct_name" label="仓位名称" /> <template slot-scope="scope">
<el-table-column show-overflow-tooltip min-width="120" prop="material_code" label="物料编码" /> <el-link type="warning" @click="toView(scope.row)">{{ scope.row.struct_code }}</el-link>
<el-table-column show-overflow-tooltip min-width="120" prop="material_name" label="物料名称" /> </template>
</el-table-column>
<el-table-column show-overflow-tooltip min-width="120" prop="struct_name" label="仓位名称" />
<el-table-column show-overflow-tooltip min-width="120" prop="material_spec" label="物料规格" /> <el-table-column show-overflow-tooltip min-width="120" prop="material_spec" label="物料规格" />
<el-table-column show-overflow-tooltip prop="storagevehicle_code" label="载具号" /> <el-table-column show-overflow-tooltip prop="storagevehicle_code" label="载具号" />
<el-table-column show-overflow-tooltip prop="sale_code" label="销售单号" /> <el-table-column show-overflow-tooltip min-width="150" prop="sale_code" label="销售单号" />
<el-table-column show-overflow-tooltip min-width="110" prop="seq_no" label="销售单行号" /> <el-table-column show-overflow-tooltip min-width="110" prop="seq_no" label="销售单行号" />
<el-table-column show-overflow-tooltip prop="canuse_qty" label="可用数量" :formatter="crud.formatNum3" /> <el-table-column show-overflow-tooltip prop="canuse_qty" label="可用数量" :formatter="crud.formatNum3" />
<el-table-column show-overflow-tooltip prop="frozen_qty" label="冻结数量" :formatter="crud.formatNum3" /> <el-table-column show-overflow-tooltip prop="frozen_qty" label="冻结数量" :formatter="crud.formatNum3" />
@@ -107,11 +109,40 @@
<!--分页组件--> <!--分页组件-->
<pagination /> <pagination />
</div> </div>
<el-dialog
:visible.sync="viewShow"
title="仓位明细"
width="740px"
@close="viewCancel()"
append-to-body
>
<el-table
ref="multipleTable"
:data="mstrow"
style="width: 100%;"
border
:header-cell-style="{background:'#f5f7fa',color:'#606266'}"
>
<el-table-column show-overflow-tooltip min-width="120" prop="material_code" label="物料编码" />
<el-table-column show-overflow-tooltip min-width="120" prop="material_name" label="物料名称" />
<el-table-column show-overflow-tooltip min-width="120" prop="material_spec" label="物料规格" />
<el-table-column show-overflow-tooltip min-width="110" prop="seq_no" label="销售单行号" />
<el-table-column show-overflow-tooltip prop="canuse_qty" label="可用数量" :formatter="crud.formatNum3" />
<el-table-column show-overflow-tooltip prop="frozen_qty" label="冻结数量" :formatter="crud.formatNum3" />
<el-table-column show-overflow-tooltip prop="ivt_qty" label="库存数量" :formatter="crud.formatNum3" />
<el-table-column show-overflow-tooltip prop="warehousing_qty" label="待入数量" :formatter="crud.formatNum3" />
</el-table>
<div slot="footer" class="dialog-footer">
<el-button type="text" @click="viewCancel()">关闭</el-button>
</div>
</el-dialog>
<span slot="footer" class="dialog-footer"> <span slot="footer" class="dialog-footer">
<el-button slot="left" type="info" @click="dialogVisible = false">关闭</el-button> <el-button slot="left" type="info" @click="dialogVisible = false">关闭</el-button>
<el-button slot="left" type="primary" @click="submit">保存</el-button> <el-button slot="left" type="primary" @click="submit">保存</el-button>
</span> </span>
</el-dialog> </el-dialog>
</template> </template>
<script> <script>
@@ -121,13 +152,15 @@ import rrOperation from '@crud/RR.operation'
import crudOperation from '@crud/CRUD.operation' import crudOperation from '@crud/CRUD.operation'
import pagination from '@crud/Pagination' import pagination from '@crud/Pagination'
import productOut from '@/views/wms/storage_manage/product/productOut/productout' import productOut from '@/views/wms/storage_manage/product/productOut/productout'
import ProductIvt from '@/views/wms/storage_manage/product/productIvt/productivt'
export default { export default {
name: 'AddDtl', name: 'AddDtl',
components: { rrOperation, pagination, crudOperation }, components: { rrOperation, pagination, crudOperation },
cruds() { cruds() {
return CRUD({ return CRUD({
title: '用户', url: 'api/stIvtStructivtCp', title: '用户', url: 'api/stIvtStructivtCp/queryGroup',
optShow: { optShow: {
add: false, add: false,
edit: false, edit: false,
@@ -158,6 +191,8 @@ export default {
}, },
data() { data() {
return { return {
mstrow: [],
viewShow: false,
dialogVisible: false, dialogVisible: false,
opendtlParam: '', opendtlParam: '',
rows: [], rows: [],
@@ -181,6 +216,16 @@ export default {
[CRUD.HOOK.beforeRefresh]() { [CRUD.HOOK.beforeRefresh]() {
return true return true
}, },
toView(row) {
ProductIvt.queryIvt({"struct_code": row.struct_code,"page":0,"size":999}).then(res => {
this.mstrow = res.content
})
this.viewShow = true
},
viewCancel(){
this.mstrow = {}
this.viewShow = false
},
close() { close() {
this.crud.resetQuery(false) this.crud.resetQuery(false)
// 清空grid数据 // 清空grid数据