Merge branch 'master' of http://121.40.234.130:8899/root/hl_one
This commit is contained in:
@@ -20,13 +20,13 @@
|
||||
and der.sale_code = #{query.sale_code}
|
||||
</if>
|
||||
<if test="query.status != null">
|
||||
and der.status >= #{query.status}
|
||||
and der.status = #{query.status}
|
||||
</if>
|
||||
<if test="query.sale_type != null">
|
||||
and der.sale_type >= #{query.sale_type}
|
||||
and der.sale_type = #{query.sale_type}
|
||||
</if>
|
||||
<if test="query.cust_code != null">
|
||||
and der.cust_code >= #{query.cust_code}
|
||||
and der.cust_code = #{query.cust_code}
|
||||
</if>
|
||||
|
||||
</where>
|
||||
|
||||
@@ -26,8 +26,10 @@ public enum IOSEnum {
|
||||
, "领料出库", "21", "销售出库", "22", "手工出库", "23")),
|
||||
//单据状态
|
||||
BILL_STATUS(MapOf.of("生成", "10", "分配中", "20", "分配完", "30", "完成", "99")),
|
||||
//单据状态
|
||||
//分配单据状态
|
||||
WORK_STATUS(MapOf.of("未生成", "00", "生成", "10", "执行中", "20", "完成", "99")),
|
||||
//订单/发货单 状态
|
||||
ORDER_STATUS(MapOf.of("生成", "10", "提交", "20", "发货中", "30", "确认", "99")),
|
||||
//锁定类型
|
||||
LOCK_TYPE(MapOf.of("未锁定", "0", "入库锁", "1", "出库锁", "2","盘点锁", "3","损溢锁", "4","其他锁","99")),
|
||||
;
|
||||
|
||||
@@ -110,6 +110,8 @@ public interface IStIvtIostorinvCpOutService extends IService<StIvtIostorinvCp>
|
||||
* @param whereJson
|
||||
* {
|
||||
* iostorinvdis_id : 分配标识
|
||||
* point_code: 出库点位
|
||||
* checked: 是否自动分配
|
||||
* }
|
||||
*/
|
||||
void setPoint(JSONObject whereJson);
|
||||
|
||||
@@ -49,6 +49,8 @@ import org.nl.wms.storage_manage.productmanage.service.iostorInv.dao.StIvtIostor
|
||||
import org.nl.wms.storage_manage.productmanage.service.iostorInv.dao.StIvtIostorinvdtlCp;
|
||||
import org.nl.wms.storage_manage.productmanage.service.iostorInv.dao.mapper.StIvtIostorinvCpMapper;
|
||||
import org.nl.wms.storage_manage.productmanage.service.iostorInv.dto.IostorInvQuery;
|
||||
import org.nl.wms.storage_manage.productmanage.service.moreOrLess.IStIfDeliveryorderCpService;
|
||||
import org.nl.wms.storage_manage.productmanage.service.moreOrLess.dao.StIfDeliveryorderCp;
|
||||
import org.nl.wms.storage_manage.productmanage.service.structIvt.IStIvtStructivtCpService;
|
||||
import org.nl.wms.storage_manage.productmanage.service.structIvt.dao.StIvtStructivtCp;
|
||||
import org.nl.wms.storage_manage.productmanage.util.ChangeIvtUtil;
|
||||
@@ -113,6 +115,9 @@ public class StIvtIostorinvCpOutServiceImpl extends ServiceImpl<StIvtIostorinvCp
|
||||
@Autowired
|
||||
protected IMdPbBucketrecordService iMdPbBucketrecordService; // 包装箱记录表服务
|
||||
|
||||
@Autowired
|
||||
private IStIfDeliveryorderCpService iStIfDeliveryorderCpService; // 发货单服务
|
||||
|
||||
@Override
|
||||
public Object pageQuery(IostorInvQuery query, PageQuery page) {
|
||||
// 查询条件
|
||||
@@ -184,6 +189,21 @@ public class StIvtIostorinvCpOutServiceImpl extends ServiceImpl<StIvtIostorinvCp
|
||||
dao.setIs_delete(true);
|
||||
|
||||
this.updateById(dao);
|
||||
|
||||
// 修改发货单状态
|
||||
List<StIvtIostorinvdtlCp> list = iostorinvdtlCpService.list(
|
||||
new QueryWrapper<StIvtIostorinvdtlCp>().lambda()
|
||||
.eq(StIvtIostorinvdtlCp::getIostorinv_id, id)
|
||||
);
|
||||
|
||||
list.forEach(item -> {
|
||||
iStIfDeliveryorderCpService.update(
|
||||
new UpdateWrapper<StIfDeliveryorderCp>().lambda()
|
||||
.set(StIfDeliveryorderCp::getStatus, IOSEnum.ORDER_STATUS.code("生成"))
|
||||
.eq(StIfDeliveryorderCp::getDeliver_id, item.getSource_billdtl_id())
|
||||
);
|
||||
});
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
@@ -430,7 +450,10 @@ public class StIvtIostorinvCpOutServiceImpl extends ServiceImpl<StIvtIostorinvCp
|
||||
);
|
||||
|
||||
boolean is_dis = dtlDaoList.stream()
|
||||
.allMatch(row -> row.getBill_status().equals(IOSEnum.BILL_STATUS.code("分配完")) || row.getBill_status().equals(IOSEnum.BILL_STATUS.code("完成")));
|
||||
.allMatch(row -> row.getBill_status().equals(IOSEnum.BILL_STATUS.code("分配完"))
|
||||
|| row.getBill_status().equals(IOSEnum.BILL_STATUS.code("完成"))
|
||||
|| row.getBill_status().equals(IOSEnum.BILL_STATUS.code("分配中"))
|
||||
);
|
||||
|
||||
if (!is_dis) throw new BadRequestException("请先分配单据!");
|
||||
|
||||
@@ -635,10 +658,9 @@ public class StIvtIostorinvCpOutServiceImpl extends ServiceImpl<StIvtIostorinvCp
|
||||
param.add(JSON.parseObject(JSONUtil.toJsonStr(taskDao)));
|
||||
// 1.下发任务
|
||||
WmsToAcsService bean = SpringContextHolder.getBean(WmsToAcsService.class);
|
||||
bean.issueTaskToAcs3(param);
|
||||
Map<String, Object> result = bean.issueTaskToAcs3(param);
|
||||
|
||||
// 反馈失败报错
|
||||
Map<String, Object> result = bean.issueTaskToAcs3(param);
|
||||
if (!ObjectUtil.equal(MapUtil.getStr(result, "status"),"200")) {
|
||||
throw new BadRequestException("下发失败:"+MapUtil.getStr(result, "message"));
|
||||
}
|
||||
|
||||
@@ -366,6 +366,20 @@ public class StIvtIostorinvCpServiceImpl extends ServiceImpl<StIvtIostorinvCpMap
|
||||
dao.setIs_delete(true);
|
||||
|
||||
this.updateById(dao);
|
||||
|
||||
// 修改销售单状态
|
||||
List<StIvtIostorinvdtlCp> list = iostorinvdtlCpService.list(
|
||||
new QueryWrapper<StIvtIostorinvdtlCp>().lambda()
|
||||
.eq(StIvtIostorinvdtlCp::getIostorinv_id, id)
|
||||
);
|
||||
|
||||
list.forEach(item -> {
|
||||
iMpsSaleOrderService.update(
|
||||
new UpdateWrapper<MpsSaleOrder>().lambda()
|
||||
.set(MpsSaleOrder::getStatus, IOSEnum.ORDER_STATUS.code("生成"))
|
||||
.eq(MpsSaleOrder::getSale_id, item.getBase_billdtl_id())
|
||||
);
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
@@ -681,7 +695,10 @@ public class StIvtIostorinvCpServiceImpl extends ServiceImpl<StIvtIostorinvCpMap
|
||||
);
|
||||
|
||||
boolean is_dis = dtlDaoList.stream()
|
||||
.allMatch(row -> row.getBill_status().equals(IOSEnum.BILL_STATUS.code("分配完")) || row.getBill_status().equals(IOSEnum.BILL_STATUS.code("完成")));
|
||||
.allMatch(row -> row.getBill_status().equals(IOSEnum.BILL_STATUS.code("分配完"))
|
||||
|| row.getBill_status().equals(IOSEnum.BILL_STATUS.code("完成"))
|
||||
|| row.getBill_status().equals(IOSEnum.BILL_STATUS.code("分配中"))
|
||||
);
|
||||
|
||||
if (!is_dis) throw new BadRequestException("请先分配单据!");
|
||||
|
||||
|
||||
@@ -16,11 +16,15 @@ import org.nl.wms.mps_manage.ordermanage.service.saleOrder.IMpsSaleOrderService;
|
||||
import org.nl.wms.mps_manage.ordermanage.service.saleOrder.dao.MpsSaleOrder;
|
||||
import org.nl.wms.storage_manage.IOSEnum;
|
||||
import org.nl.wms.storage_manage.IVTEnum;
|
||||
import org.nl.wms.storage_manage.productmanage.service.iostorInv.IStIvtIostorinvCpService;
|
||||
import org.nl.wms.storage_manage.productmanage.service.iostorInv.IStIvtIostorinvdisCpService;
|
||||
import org.nl.wms.storage_manage.productmanage.service.iostorInv.IStIvtIostorinvdtlCpService;
|
||||
import org.nl.wms.storage_manage.productmanage.service.iostorInv.dao.StIvtIostorinvCp;
|
||||
import org.nl.wms.storage_manage.productmanage.service.iostorInv.dao.StIvtIostorinvdisCp;
|
||||
import org.nl.wms.storage_manage.productmanage.service.iostorInv.dao.StIvtIostorinvdtlCp;
|
||||
import org.nl.wms.storage_manage.productmanage.service.iostorInv.dao.mapper.StIvtIostorinvdtlCpMapper;
|
||||
import org.nl.wms.storage_manage.productmanage.service.moreOrLess.IStIfDeliveryorderCpService;
|
||||
import org.nl.wms.storage_manage.productmanage.service.moreOrLess.dao.StIfDeliveryorderCp;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.springframework.util.CollectionUtils;
|
||||
@@ -57,6 +61,11 @@ public class StIvtIostorinvdtlCpServiceImpl extends ServiceImpl<StIvtIostorinvdt
|
||||
@Autowired
|
||||
protected IMpsSaleOrderService iMpsSaleOrderService; // 销售订单服务
|
||||
|
||||
@Autowired
|
||||
private IStIvtIostorinvCpService iStIvtIostorinvCpService; // 主表服务
|
||||
|
||||
@Autowired
|
||||
private IStIfDeliveryorderCpService iStIfDeliveryorderCpService; // 发货单服务
|
||||
|
||||
@Override
|
||||
public void batchInsert(Collection<StIvtIostorinvdtlCp> list) {
|
||||
@@ -69,6 +78,8 @@ public class StIvtIostorinvdtlCpServiceImpl extends ServiceImpl<StIvtIostorinvdt
|
||||
public double create(JSONArray rows, String iostorinvCp_id) {
|
||||
double total_qty = 0;
|
||||
|
||||
StIvtIostorinvCp mstDao = iStIvtIostorinvCpService.getById(iostorinvCp_id);
|
||||
|
||||
if (rows.size()>0 && StringUtils.isNotEmpty(iostorinvCp_id)){
|
||||
// 先删除在插入
|
||||
this.remove(new QueryWrapper<StIvtIostorinvdtlCp>().eq("iostorinv_id", iostorinvCp_id));
|
||||
@@ -94,6 +105,20 @@ public class StIvtIostorinvdtlCpServiceImpl extends ServiceImpl<StIvtIostorinvdt
|
||||
row.setBase_bill_code(orderDao.getSale_code());
|
||||
row.setBase_bill_type(orderDao.getSale_type());
|
||||
row.setBase_bill_table(orderDao.getSeq_no().toString());
|
||||
|
||||
if (IOSEnum.IO_TYPE.code("入库").equals(mstDao.getIo_type())){
|
||||
// 入库: 更新销售单状态
|
||||
orderDao.setStatus(IOSEnum.ORDER_STATUS.code("提交"));
|
||||
iMpsSaleOrderService.updateById(orderDao);
|
||||
} else {
|
||||
// 出库: 更新发货单状态
|
||||
iStIfDeliveryorderCpService.update(
|
||||
new UpdateWrapper<StIfDeliveryorderCp>().lambda()
|
||||
.set(StIfDeliveryorderCp::getStatus, IOSEnum.ORDER_STATUS.code("提交"))
|
||||
.eq(StIfDeliveryorderCp::getDeliver_id,row.getSource_billdtl_id())
|
||||
);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
row.setIostorinv_id(iostorinvCp_id);
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
package org.nl.wms.storage_manage.productmanage.service.moreOrLess.dao;
|
||||
|
||||
import com.baomidou.mybatisplus.annotation.TableId;
|
||||
import com.baomidou.mybatisplus.annotation.TableName;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
@@ -26,6 +27,7 @@ public class StIfDeliveryorderCp implements Serializable {
|
||||
/**
|
||||
* 发货单标识
|
||||
*/
|
||||
@TableId
|
||||
private String deliver_id;
|
||||
|
||||
/**
|
||||
|
||||
@@ -285,10 +285,11 @@ public class StIvtIostorinvBcpOutServiceImpl extends ServiceImpl<StIvtIostorinvB
|
||||
checkParam(mst);
|
||||
|
||||
PointEvent event = PointEvent.builder()
|
||||
.type(CHANGE_BILL_TYPE_ENUM.IOSTORINV_IN_SEND.getCode())
|
||||
.type(AcsTaskEnum.TASK_STRUCT_OUT.getCode())
|
||||
.acs_task_type("7")
|
||||
.point_code1(mst.getPoint_code())
|
||||
.point_code2(mst.getStruct_code())
|
||||
.task_group_id(IdUtil.getStringId())
|
||||
.point_code2(mst.getPoint_code())
|
||||
.point_code1(mst.getStruct_code())
|
||||
.vehicle_code(mst.getStoragevehicle_code())
|
||||
.product_area(mst.getWorkshop_id())
|
||||
.callback((Consumer<String>) mst::setTask_id)
|
||||
@@ -315,10 +316,9 @@ public class StIvtIostorinvBcpOutServiceImpl extends ServiceImpl<StIvtIostorinvB
|
||||
param.add(JSON.parseObject(JSONUtil.toJsonStr(taskDao)));
|
||||
// 1.下发任务
|
||||
WmsToAcsService bean = SpringContextHolder.getBean(WmsToAcsService.class);
|
||||
bean.issueTaskToAcs3(param);
|
||||
Map<String, Object> result = bean.issueTaskToAcs3(param);
|
||||
|
||||
// 反馈失败报错
|
||||
Map<String, Object> result = bean.issueTaskToAcs3(param);
|
||||
if (!ObjectUtil.equal(MapUtil.getStr(result, "status"),"200")) {
|
||||
throw new BadRequestException("下发失败:"+MapUtil.getStr(result, "message"));
|
||||
}
|
||||
|
||||
@@ -238,6 +238,7 @@ public class StIvtIostorinvBcpServiceImpl extends ServiceImpl<StIvtIostorinvBcpM
|
||||
PointEvent event = PointEvent.builder()
|
||||
.type(AcsTaskEnum.TASK_STRUCT_IN.getCode())
|
||||
.acs_task_type("7")
|
||||
.task_group_id(IdUtil.getStringId())
|
||||
.point_code1(mst.getPoint_code())
|
||||
.point_code2(stIvtStructattr.getStruct_code())
|
||||
.vehicle_code(mst.getStoragevehicle_code())
|
||||
@@ -354,10 +355,9 @@ public class StIvtIostorinvBcpServiceImpl extends ServiceImpl<StIvtIostorinvBcpM
|
||||
|
||||
// 1.下发任务
|
||||
WmsToAcsService bean = SpringContextHolder.getBean(WmsToAcsService.class);
|
||||
bean.issueTaskToAcs3(param);
|
||||
Map<String, Object> result = bean.issueTaskToAcs3(param);
|
||||
|
||||
// 反馈失败报错
|
||||
Map<String, Object> result = bean.issueTaskToAcs3(param);
|
||||
if (!ObjectUtil.equal(MapUtil.getStr(result, "status"),"200")) {
|
||||
throw new BadRequestException("下发失败:"+MapUtil.getStr(result, "message"));
|
||||
}
|
||||
|
||||
@@ -56,7 +56,7 @@ function CRUD(options) {
|
||||
reset: true
|
||||
},
|
||||
// 自定义一些扩展属性
|
||||
props: {},
|
||||
props: { size: 10 },
|
||||
// 在主页准备
|
||||
queryOnPresenterCreated: true,
|
||||
// 调试开关
|
||||
@@ -97,7 +97,7 @@ function CRUD(options) {
|
||||
// 页码
|
||||
page: 0,
|
||||
// 每页数据条数
|
||||
size: 10,
|
||||
size: options.props.size,
|
||||
// 总数据条数
|
||||
total: 0
|
||||
},
|
||||
|
||||
@@ -83,8 +83,8 @@
|
||||
<label slot="label">明 细 数:</label>
|
||||
<el-input v-model="form.detail_count" size="mini" disabled style="width: 210px" />
|
||||
</el-form-item>
|
||||
<el-form-item label="总重量" prop="total_qty">
|
||||
<label slot="label">总 重 量:</label>
|
||||
<el-form-item label="总数量" prop="total_qty">
|
||||
<label slot="label">总 数 量:</label>
|
||||
<el-input-number
|
||||
v-model="form.total_qty"
|
||||
:controls="false"
|
||||
@@ -219,6 +219,7 @@
|
||||
|
||||
<AddDtl
|
||||
:dialog-show.sync="dtlShow"
|
||||
:is-single="false"
|
||||
@tableChanged="tableChanged2"
|
||||
/>
|
||||
|
||||
@@ -368,30 +369,33 @@ export default {
|
||||
this.nowrow.qty_unit_name = row.unit_name
|
||||
this.nowrow.qty_unit_id = row.base_unit_id
|
||||
},
|
||||
tableChanged2(row) {
|
||||
let same_mater = true
|
||||
this.form.tableData.forEach((item) => {
|
||||
if (item.base_bill_code === row.sale_code && item.base_bill_table === row.seq_no) {
|
||||
same_mater = false
|
||||
tableChanged2(rows) {
|
||||
rows.forEach((row) => {
|
||||
debugger
|
||||
let same_mater = true
|
||||
this.form.tableData.forEach((item) => {
|
||||
if (item.base_bill_code === row.sale_code && item.base_bill_table === row.seq_no) {
|
||||
same_mater = false
|
||||
}
|
||||
})
|
||||
if (same_mater) {
|
||||
const data = {}
|
||||
data.material_id = row.material_id
|
||||
data.material_code = row.material_code
|
||||
data.material_name = row.material_name
|
||||
data.material_spec = row.material_spec
|
||||
data.plan_qty = row.sale_qty
|
||||
data.qty_unit_name = row.qty_unit_name
|
||||
data.qty_unit_id = row.qty_unit_id
|
||||
data.base_billdtl_id = row.sale_id
|
||||
data.base_bill_type = row.sale_type
|
||||
data.base_bill_code = row.sale_code
|
||||
data.base_bill_table = row.seq_no
|
||||
data.edit = true
|
||||
this.form.tableData.splice(-1, 0, data)
|
||||
this.form.total_qty = parseFloat(this.form.total_qty) + parseFloat(data.plan_qty)
|
||||
}
|
||||
})
|
||||
if (same_mater) {
|
||||
const data = {}
|
||||
data.material_id = row.material_id
|
||||
data.material_code = row.material_code
|
||||
data.material_name = row.material_name
|
||||
data.material_spec = row.material_spec
|
||||
data.plan_qty = row.sale_qty
|
||||
data.qty_unit_name = row.qty_unit_name
|
||||
data.qty_unit_id = row.qty_unit_id
|
||||
data.base_billdtl_id = row.sale_id
|
||||
data.base_bill_type = row.sale_type
|
||||
data.base_bill_code = row.sale_code
|
||||
data.base_bill_table = row.seq_no
|
||||
data.edit = true
|
||||
this.form.tableData.splice(-1, 0, data)
|
||||
this.form.total_qty = parseFloat(this.form.total_qty) + parseFloat(data.plan_qty)
|
||||
}
|
||||
},
|
||||
insertEvent(row) {
|
||||
this.dtlShow = true
|
||||
|
||||
@@ -61,10 +61,12 @@
|
||||
v-loading="crud.loading"
|
||||
:data="crud.data"
|
||||
style="width: 100%;"
|
||||
@select="handleSelectionChange"
|
||||
@selection-change="crud.selectionChangeHandler"
|
||||
@current-change="clickChange"
|
||||
>
|
||||
<el-table-column label="选择" width="55">
|
||||
<el-table-column v-if="!isSingle" type="selection" width="55" />
|
||||
<el-table-column v-if="isSingle" label="选择" width="55">
|
||||
<template slot-scope="scope">
|
||||
<el-radio v-model="tableRadio" :label="scope.row"><i /></el-radio>
|
||||
</template>
|
||||
@@ -127,6 +129,10 @@ export default {
|
||||
},
|
||||
opendtlParam: {
|
||||
type: Object
|
||||
},
|
||||
isSingle: {
|
||||
type: Boolean,
|
||||
default: true
|
||||
}
|
||||
},
|
||||
data() {
|
||||
@@ -150,6 +156,7 @@ export default {
|
||||
return true
|
||||
},
|
||||
open() {
|
||||
this.query.status = '10'
|
||||
this.crud.toQuery()
|
||||
},
|
||||
close() {
|
||||
@@ -158,10 +165,31 @@ export default {
|
||||
clickChange(item) {
|
||||
this.tableRadio = item
|
||||
},
|
||||
handleSelectionChange(val, row) {
|
||||
if (this.isSingle) {
|
||||
if (val.length > 1) {
|
||||
this.$refs.table.clearSelection()
|
||||
this.$refs.table.toggleRowSelection(val.pop())
|
||||
} else {
|
||||
this.checkrow = row
|
||||
}
|
||||
}
|
||||
},
|
||||
submit() {
|
||||
this.$emit('update:dialogShow', false)
|
||||
// 处理单选
|
||||
if (this.isSingle && this.tableRadio) {
|
||||
this.$emit('update:dialogShow', false)
|
||||
this.$emit('tableChanged', this.tableRadio)
|
||||
return
|
||||
}
|
||||
this.rows = this.$refs.multipleTable.selection
|
||||
this.$emit('tableChanged', this.tableRadio)
|
||||
if (this.rows.length <= 0) {
|
||||
this.$message('请先勾选物料')
|
||||
return
|
||||
}
|
||||
this.crud.resetQuery(false)
|
||||
this.$emit('update:dialogShow', false)
|
||||
this.$emit('tableChanged', this.rows)
|
||||
},
|
||||
formterType(row) {
|
||||
return this.dict.label.PCS_SAL_TYPE[row.sale_type]
|
||||
|
||||
@@ -38,10 +38,10 @@
|
||||
<el-table-column show-overflow-tooltip prop="material_code" label="物料编码" align="center" />
|
||||
<el-table-column show-overflow-tooltip prop="material_name" label="物料名称" align="center" />
|
||||
<el-table-column show-overflow-tooltip prop="pcsn" label="批次" align="center" />
|
||||
<el-table-column show-overflow-tooltip prop="plan_qty" :formatter="crud.formatNum3" label="重量" align="center" />
|
||||
<el-table-column show-overflow-tooltip prop="plan_qty" :formatter="crud.formatNum3" label="数量" align="center" />
|
||||
<el-table-column show-overflow-tooltip prop="assign_qty" :formatter="crud.formatNum3" label="已分配数量" align="center" />
|
||||
<el-table-column show-overflow-tooltip prop="unassign_qty" :formatter="crud.formatNum3" label="未分配数量" align="center" />
|
||||
<el-table-column show-overflow-tooltip prop="qty_unit_name" label="重量单位" align="center" />
|
||||
<el-table-column show-overflow-tooltip prop="qty_unit_name" label="单位" align="center" />
|
||||
<el-table-column show-overflow-tooltip prop="base_bill_type" label="源单类型" :formatter="formatBaseType" align="center" />
|
||||
<el-table-column show-overflow-tooltip prop="base_bill_code" label="源单号" align="center" />
|
||||
<el-table-column show-overflow-tooltip prop="base_bill_table" label="源单行号" align="center" />
|
||||
@@ -111,7 +111,7 @@
|
||||
<el-table-column show-overflow-tooltip width="150" prop="material_code" label="物料编码" align="center" />
|
||||
<el-table-column show-overflow-tooltip width="150" prop="material_name" label="物料名称" align="center" />
|
||||
<el-table-column show-overflow-tooltip width="170" prop="pcsn" label="批次" align="center" />
|
||||
<el-table-column show-overflow-tooltip prop="plan_qty" :formatter="crud.formatNum3" label="重量" align="center" />
|
||||
<el-table-column show-overflow-tooltip prop="plan_qty" :formatter="crud.formatNum3" label="数量" align="center" />
|
||||
<el-table-column show-overflow-tooltip prop="storagevehicle_code" label="托盘号" align="center" />
|
||||
<el-table-column show-overflow-tooltip prop="bucketunique" label="箱号" align="center" />
|
||||
<el-table-column show-overflow-tooltip prop="point_code1" label="起始位置" align="center" />
|
||||
|
||||
@@ -72,8 +72,8 @@
|
||||
<label slot="label">明 细 数:</label>
|
||||
<el-input v-model="form.detail_count" size="mini" disabled style="width: 210px" />
|
||||
</el-form-item>
|
||||
<el-form-item label="总重量" prop="total_qty">
|
||||
<label slot="label">总 重 量:</label>
|
||||
<el-form-item label="总数量" prop="total_qty">
|
||||
<label slot="label">总 数 量:</label>
|
||||
<el-input-number
|
||||
v-model="form.total_qty"
|
||||
:controls="false"
|
||||
@@ -112,7 +112,7 @@
|
||||
<el-table-column min-width="120" show-overflow-tooltip prop="material_name" label="物料名称" align="center" />
|
||||
<el-table-column min-width="120" show-overflow-tooltip prop="material_spec" label="物料规格" align="center" />
|
||||
<el-table-column prop="pcsn" label="批次" width="150" align="center" />
|
||||
<el-table-column prop="plan_qty" :formatter="crud.formatNum3" label="重量" align="center" />
|
||||
<el-table-column prop="plan_qty" :formatter="crud.formatNum3" label="数量" align="center" />
|
||||
<el-table-column prop="qty_unit_name" label="单位" align="center" />
|
||||
<el-table-column show-overflow-tooltip prop="base_bill_type" label="源单类型" :formatter="formatBaseType" align="center" />
|
||||
<el-table-column show-overflow-tooltip prop="base_bill_code" label="源单号" align="center" />
|
||||
@@ -142,7 +142,7 @@
|
||||
<el-table-column prop="pcsn" label="批次" align="center" width="150" />
|
||||
<el-table-column show-overflow-tooltip prop="storagevehicle_code" label="托盘号" align="center" />
|
||||
<el-table-column show-overflow-tooltip prop="bucketunique" label="箱号" align="center" />
|
||||
<el-table-column prop="plan_qty" :formatter="crud.formatNum3" label="重量" align="center" />
|
||||
<el-table-column prop="plan_qty" :formatter="crud.formatNum3" label="数量 align="center" />
|
||||
<el-table-column prop="point_code1" label="起始位置" align="center" />
|
||||
<el-table-column prop="point_code2" label="目的位置" align="center" />
|
||||
<el-table-column prop="task_code" label="任务号" align="center" />
|
||||
|
||||
@@ -188,7 +188,7 @@
|
||||
<el-table-column show-overflow-tooltip prop="stor_name" label="仓库" min-width="120" />
|
||||
<el-table-column prop="product_area" label="生产车间" width="130" show-overflow-tooltip />
|
||||
<el-table-column show-overflow-tooltip min-width="120" prop="biz_date" label="业务日期" />
|
||||
<el-table-column label="总重量" align="center" prop="total_qty">
|
||||
<el-table-column label="总数量" align="center" prop="total_qty">
|
||||
<template slot-scope="scope">
|
||||
{{ fun(scope.row.total_qty) }}
|
||||
</template>
|
||||
@@ -249,7 +249,10 @@ export default {
|
||||
optShow: { add: true, reset: true },
|
||||
idField: 'iostorinv_id',
|
||||
url: '/api/productIn',
|
||||
crudMethod: { ...productIn }
|
||||
crudMethod: { ...productIn },
|
||||
props: {
|
||||
size: 10
|
||||
}
|
||||
})
|
||||
},
|
||||
mixins: [presenter(), header(), crud()],
|
||||
@@ -320,7 +323,7 @@ export default {
|
||||
} else {
|
||||
this.dis_flag = true
|
||||
}
|
||||
if (currentRow.bill_status === '30') {
|
||||
if (currentRow.bill_status === '30' || currentRow.bill_status === '20') {
|
||||
this.confirm_flag = false
|
||||
} else {
|
||||
this.confirm_flag = true
|
||||
|
||||
@@ -83,8 +83,8 @@
|
||||
<label slot="label">明 细 数:</label>
|
||||
<el-input v-model="form.detail_count" size="mini" disabled style="width: 210px" />
|
||||
</el-form-item>
|
||||
<el-form-item label="总重量" prop="total_qty">
|
||||
<label slot="label">总 重 量:</label>
|
||||
<el-form-item label="总数量" prop="total_qty">
|
||||
<label slot="label">总 数 量:</label>
|
||||
<el-input-number
|
||||
v-model="form.total_qty"
|
||||
:controls="false"
|
||||
@@ -194,11 +194,13 @@
|
||||
|
||||
<AddDtl
|
||||
:dialog-show.sync="dtlShow"
|
||||
:is-single="false"
|
||||
@tableChanged="tableChanged2"
|
||||
/>
|
||||
|
||||
<AddIvt
|
||||
:dialog-show.sync="ivtShow"
|
||||
:is-single="false"
|
||||
@tableChanged="tableChanged3"
|
||||
/>
|
||||
|
||||
@@ -319,16 +321,32 @@ export default {
|
||||
}
|
||||
},
|
||||
deleteRow(index, rows) {
|
||||
const material_code = rows[index].material_code
|
||||
let len = rows.length
|
||||
while (len--) {
|
||||
const obj = rows[len]
|
||||
if (material_code === obj.material_code) {
|
||||
const index = rows.indexOf(obj)
|
||||
if (index > -1) { // 移除找到的指定元素
|
||||
this.form.total_qty = parseFloat(this.form.total_qty) - parseFloat(rows[index].plan_qty)
|
||||
rows.splice(index, 1)
|
||||
this.form.detail_count = this.form.tableData.length
|
||||
const source_bill_code = rows[index].source_bill_code
|
||||
const base_billdtl_id = rows[index].base_billdtl_id
|
||||
if (source_bill_code === undefined) {
|
||||
let len = rows.length
|
||||
while (len--) {
|
||||
const obj = rows[len]
|
||||
if (base_billdtl_id === obj.base_billdtl_id) {
|
||||
const index = rows.indexOf(obj)
|
||||
if (index > -1) { // 移除找到的指定元素
|
||||
this.form.total_qty = parseFloat(this.form.total_qty) - parseFloat(rows[index].plan_qty)
|
||||
rows.splice(index, 1)
|
||||
this.form.detail_count = this.form.tableData.length
|
||||
}
|
||||
}
|
||||
}
|
||||
} else {
|
||||
let len = rows.length
|
||||
while (len--) {
|
||||
const obj = rows[len]
|
||||
if (source_bill_code === obj.source_bill_code) {
|
||||
const index = rows.indexOf(obj)
|
||||
if (index > -1) { // 移除找到的指定元素
|
||||
this.form.total_qty = parseFloat(this.form.total_qty) - parseFloat(rows[index].plan_qty)
|
||||
rows.splice(index, 1)
|
||||
this.form.detail_count = this.form.tableData.length
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -341,58 +359,62 @@ export default {
|
||||
this.nowrow.qty_unit_name = row.unit_name
|
||||
this.nowrow.qty_unit_id = row.base_unit_id
|
||||
},
|
||||
tableChanged2(row) {
|
||||
let same_mater = true
|
||||
this.form.tableData.forEach((item) => {
|
||||
if (item.source_bill_code === row.sale_code) {
|
||||
same_mater = false
|
||||
tableChanged2(rows) {
|
||||
rows.forEach((row) => {
|
||||
let same_mater = true
|
||||
this.form.tableData.forEach((item) => {
|
||||
if (item.source_bill_code === row.deliver_code) {
|
||||
same_mater = false
|
||||
}
|
||||
})
|
||||
if (same_mater) {
|
||||
const data = {}
|
||||
data.material_id = row.material_id
|
||||
data.material_code = row.material_code
|
||||
data.material_name = row.material_name
|
||||
data.material_spec = row.material_spec
|
||||
data.plan_qty = row.delivery_qty
|
||||
data.qty_unit_name = row.qty_unit_name
|
||||
data.qty_unit_id = row.qty_unit_id
|
||||
data.source_billdtl_id = row.deliver_id
|
||||
data.source_bill_type = row.deliver_type
|
||||
data.source_bill_code = row.deliver_code
|
||||
data.base_billdtl_id = row.sale_id
|
||||
data.base_bill_code = row.sale_code
|
||||
data.base_bill_table = row.sale_seq_no
|
||||
data.edit = true
|
||||
this.form.tableData.splice(-1, 0, data)
|
||||
this.form.total_qty = parseFloat(this.form.total_qty) + parseFloat(data.plan_qty)
|
||||
this.form.detail_count = this.form.tableData.length
|
||||
}
|
||||
})
|
||||
if (same_mater) {
|
||||
const data = {}
|
||||
data.material_id = row.material_id
|
||||
data.material_code = row.material_code
|
||||
data.material_name = row.material_name
|
||||
data.material_spec = row.material_spec
|
||||
data.plan_qty = row.delivery_qty
|
||||
data.qty_unit_name = row.qty_unit_name
|
||||
data.qty_unit_id = row.qty_unit_id
|
||||
data.source_billdtl_id = row.deliver_id
|
||||
data.source_bill_type = row.deliver_type
|
||||
data.source_bill_code = row.deliver_code
|
||||
data.base_billdtl_id = row.sale_id
|
||||
data.base_bill_code = row.sale_code
|
||||
data.base_bill_table = row.sale_seq_no
|
||||
data.edit = true
|
||||
this.form.tableData.splice(-1, 0, data)
|
||||
this.form.total_qty = parseFloat(this.form.total_qty) + parseFloat(data.plan_qty)
|
||||
this.form.detail_count = this.form.tableData.length
|
||||
}
|
||||
},
|
||||
tableChanged3(row) {
|
||||
let same_mater = true
|
||||
this.form.tableData.forEach((item) => {
|
||||
if (item.sale_id === row.sale_id) {
|
||||
same_mater = false
|
||||
tableChanged3(rows) {
|
||||
rows.forEach((row) => {
|
||||
let same_mater = true
|
||||
this.form.tableData.forEach((item) => {
|
||||
if (item.base_billdtl_id === row.sale_id) {
|
||||
same_mater = false
|
||||
}
|
||||
})
|
||||
if (same_mater) {
|
||||
const data = {}
|
||||
data.material_id = row.material_id
|
||||
data.material_code = row.material_code
|
||||
data.material_name = row.material_name
|
||||
data.material_spec = row.material_spec
|
||||
data.plan_qty = row.canuse_qty
|
||||
data.qty_unit_name = row.unit_name
|
||||
data.qty_unit_id = row.measure_unit_id
|
||||
data.base_billdtl_id = row.sale_id
|
||||
data.base_bill_code = row.sale_code
|
||||
data.base_bill_table = row.seq_no
|
||||
data.edit = true
|
||||
this.form.tableData.splice(-1, 0, data)
|
||||
this.form.total_qty = parseFloat(this.form.total_qty) + parseFloat(data.plan_qty)
|
||||
this.form.detail_count = this.form.tableData.length
|
||||
}
|
||||
})
|
||||
if (same_mater) {
|
||||
const data = {}
|
||||
data.material_id = row.material_id
|
||||
data.material_code = row.material_code
|
||||
data.material_name = row.material_name
|
||||
data.material_spec = row.material_spec
|
||||
data.plan_qty = row.canuse_qty
|
||||
data.qty_unit_name = row.unit_name
|
||||
data.qty_unit_id = row.measure_unit_id
|
||||
data.base_billdtl_id = row.sale_id
|
||||
data.base_bill_code = row.sale_code
|
||||
data.base_bill_table = row.seq_no
|
||||
data.edit = true
|
||||
this.form.tableData.splice(-1, 0, data)
|
||||
this.form.total_qty = parseFloat(this.form.total_qty) + parseFloat(data.plan_qty)
|
||||
this.form.detail_count = this.form.tableData.length
|
||||
}
|
||||
},
|
||||
insertEvent(row) {
|
||||
this.dtlShow = true
|
||||
|
||||
@@ -72,7 +72,8 @@
|
||||
:header-cell-style="{background:'#f5f7fa',color:'#606266'}"
|
||||
@current-change="clickChange"
|
||||
>
|
||||
<el-table-column label="选择" width="55">
|
||||
<el-table-column v-if="!isSingle" type="selection" width="55" />
|
||||
<el-table-column v-if="isSingle" label="选择" width="55">
|
||||
<template slot-scope="scope">
|
||||
<el-radio v-model="tableRadio" :label="scope.row"><i /></el-radio>
|
||||
</template>
|
||||
@@ -137,6 +138,10 @@ export default {
|
||||
},
|
||||
storId: {
|
||||
type: String
|
||||
},
|
||||
isSingle: {
|
||||
type: Boolean,
|
||||
default: true
|
||||
}
|
||||
},
|
||||
data() {
|
||||
@@ -172,14 +177,27 @@ export default {
|
||||
},
|
||||
open() {
|
||||
this.crud.query.mater_type = this.opendtlParam
|
||||
this.query.status = '10'
|
||||
this.crud.toQuery()
|
||||
},
|
||||
clickChange(item) {
|
||||
this.tableRadio = item
|
||||
},
|
||||
submit() {
|
||||
this.$emit('update:dialogShow', false)
|
||||
// 处理单选
|
||||
if (this.isSingle && this.tableRadio) {
|
||||
this.$emit('update:dialogShow', false)
|
||||
this.$emit('tableChanged', this.tableRadio)
|
||||
return
|
||||
}
|
||||
this.rows = this.$refs.multipleTable.selection
|
||||
this.$emit('tableChanged', this.tableRadio)
|
||||
if (this.rows.length <= 0) {
|
||||
this.$message('请先勾选物料')
|
||||
return
|
||||
}
|
||||
this.crud.resetQuery(false)
|
||||
this.$emit('update:dialogShow', false)
|
||||
this.$emit('tableChanged', this.rows)
|
||||
},
|
||||
formatStatus(row, column) {
|
||||
return this.dict.label.PCS_DELI_STATUS[row.status]
|
||||
|
||||
@@ -81,7 +81,8 @@
|
||||
:header-cell-style="{background:'#f5f7fa',color:'#606266'}"
|
||||
@current-change="clickChange"
|
||||
>
|
||||
<el-table-column label="选择" width="55">
|
||||
<el-table-column v-if="!isSingle" type="selection" width="55" />
|
||||
<el-table-column v-if="isSingle" label="选择" width="55">
|
||||
<template slot-scope="scope">
|
||||
<el-radio v-model="tableRadio" :label="scope.row"><i /></el-radio>
|
||||
</template>
|
||||
@@ -148,6 +149,10 @@ export default {
|
||||
},
|
||||
storId: {
|
||||
type: String
|
||||
},
|
||||
isSingle: {
|
||||
type: Boolean,
|
||||
default: true
|
||||
}
|
||||
},
|
||||
data() {
|
||||
@@ -183,14 +188,26 @@ export default {
|
||||
},
|
||||
open() {
|
||||
this.crud.query.lock_type = '0'
|
||||
this.crud.toQuery()
|
||||
},
|
||||
clickChange(item) {
|
||||
this.tableRadio = item
|
||||
},
|
||||
submit() {
|
||||
this.$emit('update:dialogShow', false)
|
||||
// 处理单选
|
||||
if (this.isSingle && this.tableRadio) {
|
||||
this.$emit('update:dialogShow', false)
|
||||
this.$emit('tableChanged', this.tableRadio)
|
||||
return
|
||||
}
|
||||
this.rows = this.$refs.multipleTable.selection
|
||||
this.$emit('tableChanged', this.tableRadio)
|
||||
if (this.rows.length <= 0) {
|
||||
this.$message('请先勾选物料')
|
||||
return
|
||||
}
|
||||
this.crud.resetQuery(false)
|
||||
this.$emit('update:dialogShow', false)
|
||||
this.$emit('tableChanged', this.rows)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -79,7 +79,7 @@
|
||||
>
|
||||
自动取消
|
||||
</el-button>
|
||||
<el-button
|
||||
<el-button
|
||||
slot="left"
|
||||
class="filter-item"
|
||||
type="primary"
|
||||
@@ -108,9 +108,9 @@
|
||||
<el-table-column show-overflow-tooltip prop="material_code" label="物料编码" align="center" />
|
||||
<el-table-column show-overflow-tooltip prop="material_name" label="物料名称" align="center" />
|
||||
<el-table-column show-overflow-tooltip prop="material_spec" label="物料规格" align="center" />
|
||||
<el-table-column show-overflow-tooltip prop="plan_qty" label="重量" :formatter="crud.formatNum3" align="center" />
|
||||
<el-table-column show-overflow-tooltip prop="assign_qty" label="已分配重量" :formatter="crud.formatNum3" align="center" />
|
||||
<el-table-column show-overflow-tooltip prop="unassign_qty" label="未分配重量" :formatter="crud.formatNum3" align="center" />
|
||||
<el-table-column show-overflow-tooltip prop="plan_qty" label="数量" :formatter="crud.formatNum3" align="center" />
|
||||
<el-table-column show-overflow-tooltip prop="assign_qty" label="已分配数量" :formatter="crud.formatNum3" align="center" />
|
||||
<el-table-column show-overflow-tooltip prop="unassign_qty" label="未分配数量" :formatter="crud.formatNum3" align="center" />
|
||||
<el-table-column show-overflow-tooltip prop="qty_unit_name" label="单位" align="center" />
|
||||
<el-table-column show-overflow-tooltip prop="source_bill_type" label="源单类型" align="center" :formatter="formatSourceType"/>
|
||||
<el-table-column show-overflow-tooltip prop="source_bill_code" label="源单号" align="center" />
|
||||
@@ -141,6 +141,7 @@
|
||||
<el-form-item label="出库点" prop="point_code">
|
||||
<el-select
|
||||
v-model="form2.point_code"
|
||||
:disabled="form2.checked"
|
||||
clearable
|
||||
placeholder="请选择"
|
||||
class="filter-item"
|
||||
@@ -154,6 +155,9 @@
|
||||
/>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<!-- <el-form-item prop="checked">
|
||||
<el-checkbox @change="changeBox" v-model="form2.checked">自动分出库点</el-checkbox>
|
||||
</el-form-item>-->
|
||||
</el-form>
|
||||
</div>
|
||||
<span class="crud-opts-right2">
|
||||
@@ -204,7 +208,7 @@
|
||||
<el-table-column prop="material_code" label="物料编码" width="150px" :min-width="flexWidth('material_code',crud.data,'物料编码')" />
|
||||
<el-table-column prop="material_name" label="物料名称" width="250px" :min-width="flexWidth('material_name',crud.data,'物料名称')" />
|
||||
<el-table-column prop="material_spec" label="物料规格" width="150px" :min-width="flexWidth('material_spec',crud.data,'物料规格')" />
|
||||
<el-table-column show-overflow-tooltip prop="plan_qty" label="出库重量" :formatter="crud.formatNum3" align="center" />
|
||||
<el-table-column show-overflow-tooltip prop="plan_qty" label="出库数量" :formatter="crud.formatNum3" align="center" />
|
||||
<el-table-column show-overflow-tooltip prop="storagevehicle_code" width="150px" label="载具号" align="center" />
|
||||
<el-table-column show-overflow-tooltip prop="struct_code" width="150px" label="仓位编码" align="center" />
|
||||
<el-table-column show-overflow-tooltip prop="struct_name" width="150px" label="仓位名称" align="center" />
|
||||
@@ -268,6 +272,7 @@ export default {
|
||||
gender2: ''
|
||||
},
|
||||
form2: {
|
||||
checked: false,
|
||||
unassign_qty: '0',
|
||||
assign_qty: '0',
|
||||
point_code: ''
|
||||
@@ -453,6 +458,7 @@ export default {
|
||||
this.crud.notify('设置成功!', CRUD.NOTIFICATION_TYPE.SUCCESS)
|
||||
this.queryTableDtl()
|
||||
this.tabledis = []
|
||||
this.form2.point_code = ''
|
||||
}).finally(() => {
|
||||
this.loadingSetAllPoint = false
|
||||
})
|
||||
@@ -466,6 +472,11 @@ export default {
|
||||
return 'background: yellow'
|
||||
}
|
||||
}
|
||||
},
|
||||
changeBox() {
|
||||
if (this.form2.checked) {
|
||||
this.form2.point_code = ''
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -82,8 +82,8 @@
|
||||
<el-table-column show-overflow-tooltip prop="material_code" label="物料编码" align="center" />
|
||||
<el-table-column show-overflow-tooltip prop="material_spec" label="物料规格" align="center" />
|
||||
<el-table-column show-overflow-tooltip prop="material_name" label="物料名称" align="center" />
|
||||
<el-table-column show-overflow-tooltip prop="canuse_qty" label="可出重量" :formatter="crud.formatNum3" align="center" />
|
||||
<el-table-column show-overflow-tooltip prop="plan_qty" label="出库重量" :formatter="crud.formatNum3" width="160" align="center">
|
||||
<el-table-column show-overflow-tooltip prop="canuse_qty" label="可出数量" :formatter="crud.formatNum3" align="center" />
|
||||
<el-table-column show-overflow-tooltip prop="plan_qty" label="出库数量" :formatter="crud.formatNum3" width="160" align="center">
|
||||
<template scope="scope">
|
||||
<el-input-number v-show="!scope.row.edit" v-model="scope.row.plan_qty" :precision="3" :max="100000000" />
|
||||
<span v-show="scope.row.edit">{{ scope.row.plan_qty }}</span>
|
||||
|
||||
@@ -38,10 +38,10 @@
|
||||
<el-table-column show-overflow-tooltip prop="material_code" label="物料编码" align="center" />
|
||||
<el-table-column show-overflow-tooltip width="150" prop="material_spec" label="物料规格" align="center" />
|
||||
<el-table-column show-overflow-tooltip prop="material_name" label="物料名称" align="center" />
|
||||
<el-table-column show-overflow-tooltip prop="plan_qty" :formatter="crud.formatNum3" label="重量" align="center" />
|
||||
<el-table-column show-overflow-tooltip prop="plan_qty" :formatter="crud.formatNum3" label="数量" align="center" />
|
||||
<el-table-column show-overflow-tooltip prop="assign_qty" :formatter="crud.formatNum3" label="已分配数量" align="center" />
|
||||
<el-table-column show-overflow-tooltip prop="unassign_qty" :formatter="crud.formatNum3" label="未分配数量" align="center" />
|
||||
<el-table-column show-overflow-tooltip prop="qty_unit_name" label="重量单位" align="center" />
|
||||
<el-table-column show-overflow-tooltip prop="qty_unit_name" label="单位" align="center" />
|
||||
<el-table-column show-overflow-tooltip prop="source_bill_type" label="源单类型" align="center" :formatter="formatSourceType"/>
|
||||
<el-table-column show-overflow-tooltip prop="source_bill_code" label="源单号" align="center" />
|
||||
</el-table>
|
||||
@@ -111,7 +111,7 @@
|
||||
<el-table-column show-overflow-tooltip width="150" prop="material_spec" label="物料规格" align="center" />
|
||||
<el-table-column show-overflow-tooltip width="150" prop="material_name" label="物料名称" align="center" />
|
||||
<el-table-column show-overflow-tooltip width="170" prop="storagevehicle_code" label="载具号" align="center" />
|
||||
<el-table-column show-overflow-tooltip prop="plan_qty" :formatter="crud.formatNum3" label="重量" align="center" />
|
||||
<el-table-column show-overflow-tooltip prop="plan_qty" :formatter="crud.formatNum3" label="数量" align="center" />
|
||||
<el-table-column show-overflow-tooltip prop="point_code1" label="起始位置" align="center" />
|
||||
<el-table-column show-overflow-tooltip prop="point_code2" label="目的位置" align="center" />
|
||||
<el-table-column show-overflow-tooltip prop="task_code" label="任务号" align="center" />
|
||||
|
||||
@@ -72,8 +72,8 @@
|
||||
<label slot="label">明 细 数:</label>
|
||||
<el-input v-model="form.detail_count" size="mini" disabled style="width: 210px" />
|
||||
</el-form-item>
|
||||
<el-form-item label="总重量" prop="total_qty">
|
||||
<label slot="label">总 重 量:</label>
|
||||
<el-form-item label="总数量" prop="total_qty">
|
||||
<label slot="label">总 数 量:</label>
|
||||
<el-input-number
|
||||
v-model="form.total_qty"
|
||||
:controls="false"
|
||||
@@ -112,7 +112,7 @@
|
||||
<el-table-column min-width="120" show-overflow-tooltip prop="material_name" label="物料名称" align="center" />
|
||||
<el-table-column min-width="120" show-overflow-tooltip prop="material_spec" label="物料规格" align="center" />
|
||||
<el-table-column prop="pcsn" label="批次" width="150" align="center" />
|
||||
<el-table-column prop="plan_qty" :formatter="crud.formatNum3" label="重量" align="center" />
|
||||
<el-table-column prop="plan_qty" :formatter="crud.formatNum3" label="数量" align="center" />
|
||||
<el-table-column prop="qty_unit_name" label="单位" align="center" />
|
||||
<el-table-column show-overflow-tooltip prop="source_bill_type" label="源单类型" :formatter="formatBaseType" align="center" />
|
||||
<el-table-column show-overflow-tooltip prop="source_bill_code" label="源单号" align="center" />
|
||||
@@ -140,7 +140,7 @@
|
||||
<el-table-column min-width="120" show-overflow-tooltip prop="material_spec" label="物料规格" align="center" />
|
||||
<el-table-column prop="pcsn" label="批次" align="center" width="150" />
|
||||
<el-table-column show-overflow-tooltip prop="storagevehicle_code" label="托盘号" align="center" />
|
||||
<el-table-column prop="plan_qty" :formatter="crud.formatNum3" label="重量" align="center" />
|
||||
<el-table-column prop="plan_qty" :formatter="crud.formatNum3" label="数量" align="center" />
|
||||
<el-table-column prop="point_code1" label="起始位置" align="center" />
|
||||
<el-table-column prop="point_code2" label="目的位置" align="center" />
|
||||
<el-table-column prop="task_code" label="任务号" align="center" />
|
||||
|
||||
@@ -166,7 +166,7 @@
|
||||
<el-table-column show-overflow-tooltip prop="stor_name" label="仓库" min-width="120" />
|
||||
<el-table-column prop="product_area" label="生产车间" width="130" show-overflow-tooltip />
|
||||
<el-table-column show-overflow-tooltip min-width="120" prop="biz_date" label="业务日期" />
|
||||
<el-table-column label="总重量" align="center" prop="total_qty">
|
||||
<el-table-column label="总数量" align="center" prop="total_qty">
|
||||
<template slot-scope="scope">
|
||||
{{ fun(scope.row.total_qty) }}
|
||||
</template>
|
||||
|
||||
@@ -115,6 +115,7 @@
|
||||
slot="right"
|
||||
class="filter-item"
|
||||
type="success"
|
||||
:loading="loadingAutodiv"
|
||||
:disabled="confirm_flag"
|
||||
icon="el-icon-position"
|
||||
size="mini"
|
||||
@@ -235,6 +236,7 @@ export default {
|
||||
openParam: [],
|
||||
currentRow: null,
|
||||
storlist: [],
|
||||
loadingAutodiv: false,
|
||||
storId: null
|
||||
}
|
||||
},
|
||||
@@ -324,9 +326,12 @@ export default {
|
||||
this.crud.notify('请选择一条单据', CRUD.NOTIFICATION_TYPE.INFO)
|
||||
return
|
||||
}
|
||||
this.loadingAutodiv = true
|
||||
crudsemiproductIn.confirmTask(this.currentRow).then(res => {
|
||||
this.crud.notify('单据下发任务成功!', CRUD.NOTIFICATION_TYPE.SUCCESS)
|
||||
this.crud.toQuery()
|
||||
}).finally(() => {
|
||||
this.loadingAutodiv = false
|
||||
})
|
||||
},
|
||||
stateFormat(row, column) {
|
||||
|
||||
@@ -121,8 +121,8 @@
|
||||
<el-table-column prop="qty_unit_name" label="单位" align="center" />
|
||||
<el-table-column prop="unit_weight" label="单重" align="center" />
|
||||
<el-table-column prop="storagevehicle_code" label="载具号" align="center" />
|
||||
<el-table-column prop="point_code" label="起始位置" align="center" />
|
||||
<el-table-column prop="struct_code" label="目的位置" align="center" />
|
||||
<el-table-column prop="struct_code" label="起始位置" align="center" />
|
||||
<el-table-column prop="point_code" label="目的位置" align="center" />
|
||||
<el-table-column prop="task_code" label="任务号" align="center" />
|
||||
<el-table-column prop="task_status" label="任务状态" align="center" :formatter="formatStatus"/>
|
||||
</el-table>
|
||||
|
||||
@@ -115,6 +115,7 @@
|
||||
slot="right"
|
||||
class="filter-item"
|
||||
type="success"
|
||||
:loading="loadingAutodiv"
|
||||
:disabled="confirm_flag"
|
||||
icon="el-icon-position"
|
||||
size="mini"
|
||||
@@ -231,6 +232,7 @@ export default {
|
||||
mstrow: {},
|
||||
divShow: false,
|
||||
openParam: [],
|
||||
loadingAutodiv: false,
|
||||
currentRow: null,
|
||||
storlist: [],
|
||||
storId: null
|
||||
@@ -322,9 +324,12 @@ export default {
|
||||
this.crud.notify('请选择一条单据', CRUD.NOTIFICATION_TYPE.INFO)
|
||||
return
|
||||
}
|
||||
this.loadingAutodiv = true
|
||||
crudsemiproductout.confirmTask(this.currentRow).then(res => {
|
||||
this.crud.notify('单据下发任务成功!', CRUD.NOTIFICATION_TYPE.SUCCESS)
|
||||
this.crud.toQuery()
|
||||
}).finally(() => {
|
||||
this.loadingAutodiv = false
|
||||
})
|
||||
},
|
||||
stateFormat(row, column) {
|
||||
|
||||
@@ -148,17 +148,17 @@ public class NDCSocketConnectionAutoRun extends AbstractAutoRunnable {
|
||||
}
|
||||
}
|
||||
}
|
||||
} else if (phase == 0x1A) {
|
||||
instructionService.finishByLinkNum(String.valueOf(ikey));
|
||||
data = ndcAgvService.sendAgvTwoModeInst(phase, index, 0);
|
||||
} else if (phase == 0x30) {
|
||||
}else if (phase == 0x30) {
|
||||
//请求删除任务
|
||||
data = ndcAgvService.sendAgvTwoModeInst(143, index, 0);
|
||||
} else if (phase == 0xFF) {
|
||||
//任务删除确认
|
||||
instructionService.forceCancelByLinkNum(String.valueOf(ikey));
|
||||
data = ndcAgvService.sendAgvTwoModeInst(phase, index, 0);
|
||||
} else {
|
||||
} else if (phase == 0x1A) {
|
||||
instructionService.finishByLinkNum(String.valueOf(ikey));
|
||||
data = ndcAgvService.sendAgvTwoModeInst(phase, index, 0);
|
||||
} else {
|
||||
if (phase == 0x67) {
|
||||
//agv上报异常
|
||||
device = deviceAppService.findDeviceByCode(Integer.toString(arr[27]));
|
||||
|
||||
@@ -115,16 +115,13 @@ public class OneNDCSocketConnectionAutoRun extends AbstractAutoRunnable {
|
||||
}
|
||||
data = ndcAgvService.sendAgvOneModeInst(phase, index, 0);
|
||||
}
|
||||
} else if (phase == 0x0A) {
|
||||
|
||||
instructionService.finishByLinkNum(String.valueOf(ikey));
|
||||
data = ndcAgvService.sendAgvOneModeInst(phase, index, 0);
|
||||
|
||||
} else if (phase == 0x30) {
|
||||
data = ndcAgvService.sendAgvOneModeInst(143, index, 0);
|
||||
|
||||
} else if (phase == 0xFF) {
|
||||
instructionService.cancelByLinkNum(String.valueOf(ikey));
|
||||
instructionService.forceCancelByLinkNum(String.valueOf(ikey));
|
||||
data = ndcAgvService.sendAgvOneModeInst(phase, index, 0);
|
||||
} else if (phase == 0x0A) {
|
||||
instructionService.finishByLinkNum(String.valueOf(ikey));
|
||||
data = ndcAgvService.sendAgvOneModeInst(phase, index, 0);
|
||||
} else if (phase == 0x50) {
|
||||
//离开区域
|
||||
|
||||
@@ -163,7 +163,6 @@ public class HailiangAutoCacheLineDeviceDriver extends AbstractOpcDeviceDriver i
|
||||
this.index = index;
|
||||
this.inst = inst;
|
||||
logServer.deviceExecuteLog(device_code, "", "", "设置phase值--->" + agvphase + ",index值--->" + index + ",指令信息关联编号--->" + (inst == null ? "" : inst.getLink_num()));
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@@ -6,8 +6,10 @@ import com.alibaba.fastjson.JSONObject;
|
||||
import lombok.Data;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.nl.acs.acsEnum.InstActionEnum;
|
||||
import org.nl.acs.agv.server.AgvService;
|
||||
import org.nl.acs.agv.server.NDCAgvService;
|
||||
import org.nl.acs.auto.run.OneNDCSocketConnectionAutoRun;
|
||||
import org.nl.acs.device.service.DeviceService;
|
||||
import org.nl.acs.device_driver.DeviceDriver;
|
||||
import org.nl.acs.device_driver.RouteableDeviceDriver;
|
||||
@@ -122,6 +124,7 @@ public class StandardOrdinarySiteDeviceDriver extends AbstractDeviceDriver imple
|
||||
this.agvphase = agvphase;
|
||||
this.index = index;
|
||||
this.inst = inst;
|
||||
logServer.deviceExecuteLog(device_code, "", "", "设置phase值--->" + agvphase + ",index值--->" + index + ",指令信息关联编号--->" + (inst == null ? "" : inst.getLink_num()));
|
||||
}
|
||||
|
||||
int mode = 2;
|
||||
@@ -136,63 +139,41 @@ public class StandardOrdinarySiteDeviceDriver extends AbstractDeviceDriver imple
|
||||
|
||||
if (agvphase == 0x03) {
|
||||
if (ObjectUtil.isNotEmpty(inst)) {
|
||||
inst.setExecute_status("1");
|
||||
inst.setExecute_status(InstActionEnum.EXECUTE_TO_GET.getCode());
|
||||
instructionService.update(inst);
|
||||
byte[] data = agvService.sendAgvOneModeInst(agvphase, index, 0);
|
||||
agvphase = 0;
|
||||
index = 0;
|
||||
inst = null;
|
||||
logServer.deviceExecuteLog(this.device_code, "", "", "agvphase:" + agvphase + "反馈成功");
|
||||
} else {
|
||||
logServer.deviceExecuteLog(this.device_code, "", "", "agvphase:" + agvphase + "等待反馈");
|
||||
|
||||
OneNDCSocketConnectionAutoRun.write(data);
|
||||
this.set(0, 0, null);
|
||||
}
|
||||
}
|
||||
|
||||
if (agvphase == 0x05) {
|
||||
if (ObjectUtil.isNotEmpty(inst)) {
|
||||
inst.setExecute_status("2");
|
||||
inst.setExecute_status(InstActionEnum.EXECUTE_GET_FINISH.getCode());
|
||||
instructionService.update(inst);
|
||||
byte[] data = agvService.sendAgvOneModeInst(agvphase, index, 0);
|
||||
// OneNDCSocketConnectionAutoRun.write(data);
|
||||
agvphase = 0;
|
||||
index = 0;
|
||||
inst = null;
|
||||
logServer.deviceExecuteLog(this.device_code, "", "", "agvphase:" + agvphase + "反馈成功");
|
||||
} else {
|
||||
logServer.deviceExecuteLog(this.device_code, "", "", "agvphase:" + agvphase + "等待反馈");
|
||||
|
||||
OneNDCSocketConnectionAutoRun.write(data);
|
||||
this.set(0, 0, null);
|
||||
}
|
||||
}
|
||||
|
||||
if (agvphase == 0x07) {
|
||||
if (ObjectUtil.isNotEmpty(inst)) {
|
||||
inst.setExecute_status("5");
|
||||
inst.setExecute_status(InstActionEnum.EXECUTE_TO_PUT_FALL_SEND_FULL.getCode());
|
||||
instructionService.update(inst);
|
||||
byte[] data = agvService.sendAgvOneModeInst(agvphase, index, 0);
|
||||
// OneNDCSocketConnectionAutoRun.write(data);
|
||||
agvphase = 0;
|
||||
index = 0;
|
||||
inst = null;
|
||||
logServer.deviceExecuteLog(this.device_code, "", "", "agvphase:" + agvphase + "反馈成功");
|
||||
} else {
|
||||
logServer.deviceExecuteLog(this.device_code, "", "", "agvphase:" + agvphase + "等待反馈");
|
||||
OneNDCSocketConnectionAutoRun.write(data);
|
||||
this.set(0, 0, null);
|
||||
}
|
||||
}
|
||||
|
||||
if (agvphase == 0x09) {
|
||||
if (ObjectUtil.isNotEmpty(inst)) {
|
||||
inst.setExecute_status("6");
|
||||
inst.setExecute_status(InstActionEnum.EXECUTE_PUT_FALL_SEND_FULL_FINISH.getCode());
|
||||
instructionService.update(inst);
|
||||
byte[] data = agvService.sendAgvOneModeInst(agvphase, index, 0);
|
||||
// OneNDCSocketConnectionAutoRun.write(data);
|
||||
agvphase = 0;
|
||||
index = 0;
|
||||
inst = null;
|
||||
logServer.deviceExecuteLog(this.device_code, "", "", "agvphase:" + agvphase + "反馈成功");
|
||||
} else {
|
||||
logServer.deviceExecuteLog(this.device_code, "", "", "agvphase:" + agvphase + "等待反馈");
|
||||
|
||||
OneNDCSocketConnectionAutoRun.write(data);
|
||||
this.set(0, 0, null);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -199,6 +199,7 @@ public interface InstructionService {
|
||||
*/
|
||||
void cancelByLinkNum(String linkNum) throws Exception;
|
||||
|
||||
|
||||
/**
|
||||
* 根据指令Id强制取消指令
|
||||
*
|
||||
|
||||
Reference in New Issue
Block a user