代码更新

This commit is contained in:
2022-10-26 19:58:51 +08:00
parent db1baf70a7
commit 4630e6138b
15 changed files with 188 additions and 264 deletions

View File

@@ -12,6 +12,7 @@ import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.nl.modules.common.exception.BadRequestException;
import org.nl.modules.common.utils.SecurityUtils;
import org.nl.wms.sch.manage.RegionTypeEnum;
import org.nl.wms.sch.service.PointService;
import org.nl.wms.sch.service.dto.PointDto;
import org.nl.modules.wql.WQL;
@@ -212,10 +213,10 @@ public class PointServiceImpl implements PointService {
for (int i = 0; i < arrStruct.size(); i++) {
JSONObject json = arrStruct.getJSONObject(i);
JSONObject structMap = new JSONObject();
structMap.put("point_id", json.getString("struct_id"));
structMap.put("point_id", IdUtil.getSnowflake(1,1).nextId());
structMap.put("point_code", json.getString("struct_code"));
structMap.put("point_name", json.getString("struct_name"));
structMap.put("region_id", json.getString("region_id"));
structMap.put("region_id", RegionTypeEnum.A_HKZC.getId());
structMap.put("source_id", json.getString("struct_id"));
structMap.put("point_type", "01");
structMap.put("is_host", "0");

View File

@@ -117,11 +117,9 @@
IF 输入.flag = "2"
QUERY
SELECT
struct.*,region.region_id
struct.*
FROM
ST_IVT_StructAttr struct
left join
SCH_BASE_Region region on struct.region_id = region.region_id
WHERE
struct.is_delete = '0'
ENDSELECT

View File

@@ -45,7 +45,7 @@ public interface CheckOutBillService {
* {bill_code=, stor_id=1473161852946092032, stor_code=01, stor_name=原材料库, bill_status=10, total_qty=2, detail_count=1, bill_type=010201, remark=, biz_date=2022-01-08, create_mode=, tableData=[{material_id=1309, material_code=090301010001, bill_status=10, material_name=碳化钨粉 02, pcsn=, quality_scode=02, ivt_level=01, is_active=1, plan_qty=2, qty_unit_name=千克\公斤, qty_unit_id=1, remark=, edit=true}]}
* /
*/
void insertDtl (Map whereJson);
void insertDtl (JSONObject whereJson);
/**
* 新增出库单
* @param whereJson
@@ -82,7 +82,7 @@ public interface CheckOutBillService {
* 修改出库单
* @param whereJson /
*/
void update(Map whereJson);
void update(JSONObject whereJson);
/**
* 全部分配,对同一出库单明细进行分配
* @param whereJson /

View File

@@ -431,8 +431,6 @@ public class StorPublicServiceImpl implements StorPublicService {
WQLObject wo_Point = WQLObject.getWQLObject("SCH_BASE_Point");
//载具表
WQLObject wo_Storage = WQLObject.getWQLObject("MD_PB_StorageVehicleInfo");
//载具表
WQLObject bucketrecord = WQLObject.getWQLObject("md_pb_bucketrecord");
String struct_id = from.getString("struct_id");
String point_code = from.getString("point_code");
//锁定类型
@@ -456,13 +454,10 @@ public class StorPublicServiceImpl implements StorPublicService {
HashMap<String,String> map = new HashMap<>();
if(lock_type.equals("00")){//解锁
map.put("lock_type",lock_type);
map.put("taskdtl_type","");
map.put("taskdtl_id","");
map.put("task_code","");
map.put("inv_type","");
map.put("inv_id","");
map.put("inv_code","");
String area_type = jo.getString("area_type");
//是否清空载具
if("1".equals(from.getString("is_free"))){
map.put("storagevehicle_code","");
@@ -480,35 +475,15 @@ public class StorPublicServiceImpl implements StorPublicService {
}
map.put("storagevehicle_code",Storage.getString("storagevehicle_code"));
map.put("storagevehicle_qty","1");
map.put("storagevehicle_type",Storage.getString("storagevehicle_type"));
map.put("storagevehicle_id",Storage.getString("storagevehicle_id"));
map.put("vehicle_code",Storage.getString("storagevehicle_code"));
map.put("point_status","01");
JSONArray bus = bucketrecord.query("storagevehicle_code='"+storagevehicle_code+"'").getResultJSONArray(0);
if(bus.size()>0){
map.put("point_status","02");
map.put("is_emptyvehicle","0");
}else{
map.put("is_emptyvehicle","1");
}
}else{
map.put("is_emptyvehicle","0");
if(StrUtil.isNotEmpty(jo.getString("storagevehicle_code"))){
String storagevehicle = jo.getString("storagevehicle_code");
JSONArray bus = bucketrecord.query("storagevehicle_code='"+storagevehicle+"'").getResultJSONArray(0);
if(bus.size()>0){
map.put("is_emptyvehicle","0");
}else{
map.put("is_emptyvehicle","1");
}
}
}
}
//区域类型非输送线才需解锁
if(!area_type.equals("21")){
wo_Point.update(map,"point_id='"+jo.getString("point_id")+"'");
wo_Struct.update(map,"struct_id='"+jo.getString("struct_id")+"'");
}
}else{//锁定
map.put("lock_type",lock_type);
map.put("taskdtl_type",from.getString("taskdtl_type"));
@@ -517,7 +492,6 @@ public class StorPublicServiceImpl implements StorPublicService {
map.put("inv_type",from.getString("inv_type"));
map.put("inv_id",from.getString("inv_id"));
map.put("inv_code",from.getString("inv_code"));
String area_type = jo.getString("area_type");
if (StrUtil.isNotEmpty(storagevehicle_code)) {
JSONObject Storage = wo_Storage.query("storagevehicle_code='"+storagevehicle_code+"'").uniqueResult(0);
if(ObjectUtil.isEmpty(Storage)){
@@ -529,18 +503,6 @@ public class StorPublicServiceImpl implements StorPublicService {
map.put("storagevehicle_id",Storage.getString("storagevehicle_id"));
map.put("vehicle_code",Storage.getString("storagevehicle_code"));
map.put("point_status","01");
JSONArray bus = bucketrecord.query("storagevehicle_code='"+storagevehicle_code+"'").getResultJSONArray(0);
if(bus.size()>0){
map.put("point_status","02");
map.put("is_emptyvehicle","0");
}else{
map.put("is_emptyvehicle","1");
}
}
//区域类型非输送线才需解锁
if(!area_type.equals("21")){
wo_Point.update(map,"point_id='"+jo.getString("point_id")+"'");
wo_Struct.update(map,"struct_id='"+jo.getString("struct_id")+"'");
}
}
}

View File

@@ -94,7 +94,6 @@
struct.struct_code,
point.point_code,
point.point_id,
point.area_type,
struct.storagevehicle_code
FROM
SCH_BASE_Point point

View File

@@ -31,24 +31,24 @@ public class CheckOutBillController {
}
@GetMapping("/addDtl")
@Log("查询出库单")
@ApiOperation("查询出库单")
@Log("查询库存")
@ApiOperation("查询库存")
//@PreAuthorize("@el.check('checkoutbill:list')")
public ResponseEntity<Object> queryAddDtl(@RequestParam Map whereJson, Pageable page){
return new ResponseEntity<>(checkOutBillService.queryAddDtl(whereJson,page), HttpStatus.OK);
}
@GetMapping("/queryDtl")
@Log("查询出库单")
@ApiOperation("查询出库单")
@Log("查询库存")
@ApiOperation("查询库存")
//@PreAuthorize("@el.check('checkoutbill:list')")
public ResponseEntity<Object> queryDtl(@RequestParam Map whereJson, Pageable page){
return new ResponseEntity<>(checkOutBillService.queryDtl(whereJson,page), HttpStatus.OK);
}
@GetMapping("/getOutBillDtl")
@Log("查询出库单")
@ApiOperation("查询出库单")
@Log("查询明细")
@ApiOperation("查询明细")
public ResponseEntity<Object> getOutBillDtl(@RequestParam Map whereJson){
return new ResponseEntity<>(checkOutBillService.getOutBillDtl(whereJson), HttpStatus.OK);
}
@@ -64,14 +64,14 @@ public class CheckOutBillController {
@PutMapping
@Log("修改出库单")
@ApiOperation("修改出库单")
public ResponseEntity<Object> update(@RequestBody Map whereJson){
public ResponseEntity<Object> update(@RequestBody JSONObject whereJson){
checkOutBillService.update(whereJson);
return new ResponseEntity<>(HttpStatus.NO_CONTENT);
}
@PostMapping()
@Log("新增出库单")
@ApiOperation("新增出库单")
public ResponseEntity<Object> insertDtl(@RequestBody Map whereJson){
public ResponseEntity<Object> insertDtl(@RequestBody JSONObject whereJson){
checkOutBillService.insertDtl(whereJson);
return new ResponseEntity<>(HttpStatus.CREATED);
}

View File

@@ -34,7 +34,8 @@ import java.util.*;
@Slf4j
public class CheckOutBillServiceImpl implements CheckOutBillService {
private StorPublicService storPublicService;
@Autowired
private final StorPublicService storPublicService;
@Override
public Map<String, Object> pageQuery(Map whereJson, Pageable page) {
@@ -64,12 +65,14 @@ public class CheckOutBillServiceImpl implements CheckOutBillService {
public Map<String, Object> queryAddDtl(Map whereJson, Pageable page) {
HashMap<String, String> map = new HashMap<>(whereJson);
map.put("flag", "7");
map.put("begin_time", MapUtil.getStr(whereJson,"begin_time"));
map.put("end_time", MapUtil.getStr(whereJson,"end_time"));
if (StrUtil.isNotEmpty(map.get("bill_code"))) {
map.put("bill_code", "%" + map.get("bill_code") + "%");
if (StrUtil.isNotEmpty(map.get("material_code"))) {
map.put("material_code", "%" + map.get("material_code") + "%");
}
if (StrUtil.isNotEmpty(map.get("remark"))) {
map.put("remark", "%" + map.get("remark") + "%");
if (StrUtil.isNotEmpty(map.get("pcsn"))) {
map.put("pcsn", "%" + map.get("pcsn") + "%");
}
JSONObject jo = WQL.getWO("QST_IVT_CHECKOUTBILL").addParamMap(map).pageQuery(WqlUtil.getHttpContext(page), "");
return jo;
@@ -175,10 +178,10 @@ public class CheckOutBillServiceImpl implements CheckOutBillService {
@Override
@Transactional(rollbackFor = Exception.class)
public void insertDtl(Map map) {
public void insertDtl(JSONObject map) {
//明细另一种写法
//JSONArray jsonArr = JSONArray.fromObject(whereJson.get("tableData"));
ArrayList<HashMap> rows = (ArrayList<HashMap>) map.get("tableData");
JSONArray rows = map.getJSONArray("tableData");
map.remove("tableData");
Long currentUserId = SecurityUtils.getCurrentUserId();
String nickName = SecurityUtils.getCurrentNickName();
@@ -189,6 +192,7 @@ public class CheckOutBillServiceImpl implements CheckOutBillService {
JSONObject jsonStor = WQLObject.getWQLObject("st_ivt_bsrealstorattr").query("stor_id ='" + MapUtil.getStr(map, "stor_id") + "'").uniqueResult(0);
map.put("iostorinv_id", iostorinv_id);
map.put("bill_code", bill_code);
map.put("biz_date", map.getString("biz_date").substring(0,10));
String bill_type = (String) map.get("bill_type");
map.put("buss_type", bill_type.substring(0, 4));
map.put("io_type", "1");
@@ -209,13 +213,23 @@ public class CheckOutBillServiceImpl implements CheckOutBillService {
map.put("syscompanyid", deptId);
for (int i = 0; i < rows.size(); i++) {
HashMap<String, String> row = rows.get(i);
row.put("iostorinvdtl_id", IdUtil.getSnowflake(1, 1).nextId() + "");
row.put("iostorinv_id", iostorinv_id);
row.put("seq_no", (i + 1) + "");
row.put("assign_qty", "0");
row.put("unassign_qty", row.get("plan_qty"));
WQLObject.getWQLObject("ST_IVT_IOStorInvDtl").insert(row);
JSONObject row = rows.getJSONObject(i);
JSONObject jsonDtl = new JSONObject();
jsonDtl.put("iostorinvdtl_id", IdUtil.getSnowflake(1, 1).nextId() + "");
jsonDtl.put("iostorinv_id", iostorinv_id);
jsonDtl.put("seq_no", (i + 1) + "");
jsonDtl.put("material_id", row.getString("material_id"));
jsonDtl.put("pcsn", row.getString("pcsn"));
jsonDtl.put("box_no", row.getString("box_no"));
jsonDtl.put("quality_scode", "01");
jsonDtl.put("bill_status", "10");
jsonDtl.put("qty_unit_id", row.get("qty_unit_id"));
jsonDtl.put("qty_unit_name", row.getString("qty_unit_name"));
jsonDtl.put("plan_qty", row.get("plan_qty"));
jsonDtl.put("remark", row.getString("remark"));
jsonDtl.put("assign_qty", "0");
jsonDtl.put("unassign_qty", row.get("plan_qty"));
WQLObject.getWQLObject("ST_IVT_IOStorInvDtl").insert(jsonDtl);
}
WQLObject.getWQLObject("ST_IVT_IOStorInv").insert(map);
}
@@ -269,7 +283,7 @@ public class CheckOutBillServiceImpl implements CheckOutBillService {
@Override
@Transactional(rollbackFor = Exception.class)
public void update(Map whereJson) {
public void update(JSONObject whereJson) {
Long currentUserId = SecurityUtils.getCurrentUserId();
String nickName = SecurityUtils.getCurrentNickName();
@@ -284,16 +298,25 @@ public class CheckOutBillServiceImpl implements CheckOutBillService {
//先删除该单据下的所有明细
String iostorinv_id = (String) whereJson.get("iostorinv_id");
wo_dtl.delete("iostorinv_id = '" + iostorinv_id + "'");
ArrayList<HashMap> rows = (ArrayList<HashMap>) whereJson.get("tableData");
JSONArray rows = whereJson.getJSONArray("tableData");
for (int i = 0; i < rows.size(); i++) {
HashMap<String, String> row = rows.get(i);
row.put("iostorinvdtl_id", IdUtil.getSnowflake(1, 1).nextId() + "");
row.put("iostorinv_id", iostorinv_id);
row.put("seq_no", (i + 1) + "");
row.put("bill_status", "10");
row.put("assign_qty", "0");
row.put("unassign_qty", row.get("plan_qty"));
WQLObject.getWQLObject("ST_IVT_IOStorInvDtl").insert(row);
JSONObject row = rows.getJSONObject(i);
JSONObject jsonDtl = new JSONObject();
jsonDtl.put("iostorinvdtl_id", IdUtil.getSnowflake(1, 1).nextId() + "");
jsonDtl.put("iostorinv_id", iostorinv_id);
jsonDtl.put("seq_no", (i + 1) + "");
jsonDtl.put("material_id", row.getString("material_id"));
jsonDtl.put("pcsn", row.getString("pcsn"));
jsonDtl.put("box_no", row.getString("box_no"));
jsonDtl.put("quality_scode", "01");
jsonDtl.put("bill_status", "10");
jsonDtl.put("qty_unit_id", row.get("qty_unit_id"));
jsonDtl.put("qty_unit_name", row.getString("qty_unit_name"));
jsonDtl.put("plan_qty", row.get("plan_qty"));
jsonDtl.put("remark", row.getString("remark"));
jsonDtl.put("assign_qty", "0");
jsonDtl.put("unassign_qty", row.get("plan_qty"));
WQLObject.getWQLObject("ST_IVT_IOStorInvDtl").insert(jsonDtl);
}
}
@@ -657,12 +680,9 @@ public class CheckOutBillServiceImpl implements CheckOutBillService {
.addParam("material_id", map.get("material_id"))
.addParam("quality_scode", map.get("quality_scode"))
.addParam("pcsn", map.get("pcsn"))
.addParam("ivt_level", map.get("ivt_level"))
.addParam("is_active", map.get("is_active"))
.addParam("iostorinv_id", map.get("iostorinv_id"))
.addParam("stor_id", map.get("stor_id"))
.addParam("sect_id", map.get("sect_id"))
.addParam("remark", map.get("remark"))
.process()
.getResultJSONArray(0);
return jo;

View File

@@ -67,60 +67,45 @@
IF 输入.flag = "1"
PAGEQUERY
SELECT
ios.iostorinv_id AS id,
ios.*,
user.nick_name AS upload_optname
ios.*
FROM
ST_IVT_IOStorInv ios
inner join (SELECT
invdtl.iostorinv_id
FROM
st_ivt_iostorinvdtl invdtl
LEFT JOIN md_me_materialbase mb ON mb.material_id = invdtl.material_id
where 1=1
OPTION 输入.quality_scode <> ""
invdtl.quality_scode = 输入.quality_scode
ENDOPTION
OPTION 输入.pcsn <> ""
invdtl.pcsn like 输入.pcsn
ENDOPTION
OPTION 输入.material_code <> ""
(mb.material_code like 输入.material_code or mb.material_name like 输入.material_code)
ENDOPTION
group by iostorinv_id) dtlcopy on dtlcopy.iostorinv_id = ios.iostorinv_id
LEFT JOIN sys_user user ON user.user_id = ios.upload_optid
WHERE 1=1
WHERE
io_type = '1'
and ios.is_delete='0'
OPTION 输入.bill_code <> ""
ios.bill_code like 输入.bill_code
ENDOPTION
OPTION 输入.io_type <> ""
ios.io_type = 输入.io_type
ENDOPTION
OPTION 输入.buss_type <> ""
ios.buss_type like 输入.buss_type
ENDOPTION
OPTION 输入.bill_type <> ""
ios.bill_type = 输入.bill_type
ENDOPTION
OPTION 输入.stor_id <> ""
ios.stor_id = 输入.stor_id
ENDOPTION
OPTION 输入.deptIds <> ""
ios.sysdeptid in 输入.deptIds
ENDOPTION
OPTION 输入.create_mode <> ""
ios.create_mode = 输入.create_mode
ENDOPTION
OPTION 输入.bill_status <> ""
ios.bill_status = 输入.bill_status
ENDOPTION
OPTION 输入.begin_time <> ""
ios.input_time >= 输入.begin_time
ENDOPTION
OPTION 输入.end_time <> ""
ios.input_time <= 输入.end_time
ENDOPTION
ENDSELECT
ENDPAGEQUERY
ENDIF
@@ -168,7 +153,6 @@
struct.sect_code,
struct.storagevehicle_id,
struct.storagevehicle_code,
struct.storagevehicle_type,
point.point_id
FROM
ST_IVT_StructIvt ivt
@@ -226,7 +210,6 @@
struct.sect_code,
struct.storagevehicle_id,
struct.storagevehicle_code,
struct.storagevehicle_type,
point.point_id
FROM
ST_IVT_StructIvt ivt2
@@ -305,16 +288,13 @@
mb.material_name,
task.task_code,
task.task_status,
task.taskdtl_type,
point.point_code AS start_point_code,
point2.area_type,
point2.source_id
task.task_type,
point2.point_code
FROM
ST_IVT_IOStorInvDis dis
LEFT JOIN ST_IVT_IOStorInv ios ON ios.iostorinv_id = dis.iostorinv_id
LEFT JOIN md_me_materialbase mb ON mb.material_id = dis.material_id
LEFT JOIN SCH_BASE_Task task ON task.task_id = dis.task_id AND task.is_delete = '0' and task.vehicle_code = dis.storagevehicle_code
LEFT JOIN SCH_BASE_Point point ON point.source_id = dis.struct_id
LEFT JOIN SCH_BASE_Task task ON task.task_id = dis.task_id
LEFT JOIN SCH_BASE_Point point2 ON point2.point_id = dis.point_id
WHERE
1 = 1
@@ -448,41 +428,49 @@
IF 输入.flag = "7"
PAGEQUERY
SELECT
qldtl.inspectiondtl_id AS source_billdtl_id,
qlmst.inspection_type AS source_bill_type,
qlmst.inspection_code AS source_bill_code,
'QL_TEST_InspectionSheetMst' AS source_bill_table,
qldtl.base_bill_code,
qldtl.base_bill_id,
qldtl.base_bill_table,
qldtl.base_bill_type,
qlmst.biz_date,
mb.material_code,
mb.material_name,
qldtl.pcsn,
'2' AS plan_qty,
qldtl.material_id,
qldtl.qty_unit_id,
qldtl.qty_unit_name
ivt.stockrecord_id,
ivt.struct_id,
ivt.struct_code,
ivt.struct_name,
ivt.region_id,
ivt.material_id,
ivt.quality_scode,
ivt.pcsn,
ivt.canuse_qty,
ivt.frozen_qty,
ivt.ivt_qty AS plan_qty,
ivt.warehousing_qty,
ivt.qty_unit_id,
ivt.instorage_time,
mater.material_name,
mater.material_code,
unit.unit_name AS qty_unit_name,
attr.storagevehicle_code AS box_no
FROM
ql_test_inspectionsheetdtl qldtl
LEFT JOIN ql_test_inspectionsheetmst qlmst ON qlmst.inspection_id = qldtl.inspection_id
LEFT JOIN md_me_materialbase mb ON mb.material_id = qldtl.material_id
ST_IVT_StructIvt ivt
LEFT JOIN md_me_materialbase mater ON mater.material_id = ivt.material_id
LEFT JOIN md_pb_measureunit unit ON unit.measure_unit_id = ivt.qty_unit_id
LEFT JOIN ST_IVT_StructAttr attr ON attr.struct_id = ivt.struct_id
LEFT JOIN PDM_BI_SubPackageRelation sub ON ivt.pcsn = sub.container_name AND sub.status = '2'
WHERE
qlmst.is_delete = '0'
AND qldtl.bill_status IN ('10', '20', '30', '40', '50')
AND qlmst.inspection_type IN ('10', '20')
OPTION 输入.remark <> ""
(mb.material_code like 输入.remark or mb.material_name like 输入.remark)
attr.is_delete = '0'
AND attr.is_used = '1'
OPTION 输入.material_code <> ""
(mater.material_code like 输入.material_code or
mater.material_name like 输入.material_code)
ENDOPTION
OPTION 输入.bill_code <> ""
qlmst.inspection_code like 输入.bill_code
OPTION 输入.pcsn <> ""
ivt.pcsn like 输入.pcsn
ENDOPTION
OPTION 输入.begin_time <> ""
qlmst.biz_date >= 输入.begin_time
ivt.instorage_time >= 输入.begin_time
ENDOPTION
OPTION 输入.end_time <> ""
qlmst.biz_date <= 输入.end_time
ivt.instorage_time <= 输入.end_time
ENDOPTION
ENDSELECT
ENDPAGEQUERY
@@ -537,35 +525,21 @@
QUERY
SELECT
dis.*,
disdtl.real_qty AS total_storage_qty,
disdtl.bucket_num,
mater.material_code,
mater.material_name,
task.start_point_code,
task.next_point_code,
task.taskdtl_id,
task.point_code1 AS start_point_code,
task.point_code2 AS next_point_code,
task.task_id,
task.task_code,
task.taskdtl_type,
task.task_type,
task.task_status
FROM
st_ivt_iostorinvdis dis
LEFT JOIN md_me_materialbase mater ON dis.material_id = mater.material_id
LEFT JOIN sch_base_task task ON dis.task_id = task.task_id and task.vehicle_code = dis.storagevehicle_code AND task.is_delete = '0'
LEFT JOIN (
SELECT
sum( real_qty ) AS real_qty,
count(iostorinvdtl_id) AS bucket_num,
iostorinvdtl_id,
storagevehicle_id
FROM
st_ivt_iostorinvdisdtl
GROUP BY
storagevehicle_id,iostorinvdtl_id
) AS disdtl ON dis.iostorinvdtl_id = disdtl.iostorinvdtl_id
AND dis.storagevehicle_id = disdtl.storagevehicle_id
LEFT JOIN sch_base_task task ON dis.task_id = task.task_id
WHERE
1=1
OPTION 输入.iostorinvdtl_id <> ""
dis.iostorinvdtl_id = 输入.iostorinvdtl_id
ENDOPTION

View File

@@ -110,7 +110,19 @@
</div>
<!--如果想在工具栏加入更多按钮可以使用插槽方式 slot = 'left' or 'right'-->
<crudOperation :permission="permission" />
<crudOperation :permission="permission">
<el-button
slot="right"
class="filter-item"
type="info"
:loading="syncLoading"
icon="el-icon-refresh"
size="mini"
@click="sync()"
>
仓位同步
</el-button>
</crudOperation>
<!--表单组件-->
<el-dialog
:close-on-click-modal="false"

View File

@@ -118,7 +118,7 @@
size="mini"
@click="queryDtl()"
>
添加质检物料
添加物料
</el-button>
<el-button
slot="left"
@@ -142,7 +142,6 @@
:header-cell-style="{background:'#f5f7fa',color:'#606266'}"
>
<el-table-column type="index" label="序号" width="50" align="center" />
<el-table-column prop="bill_status" label="订单状态" align="center" :formatter="bill_statusFormat" />
<el-table-column show-overflow-tooltip prop="material_code" label="物料编码" width="190" align="center">
<template scope="scope">
<el-input v-show="!scope.row.edit" v-model="scope.row.material_code" disabled class="input-with-select">
@@ -152,19 +151,20 @@
</template>
</el-table-column>
<el-table-column prop="material_name" label="物料名称" align="center" min-width="150px" show-overflow-tooltip />
<el-table-column show-overflow-tooltip prop="pcsn" label="批次" align="center">
<el-table-column show-overflow-tooltip prop="pcsn" label="子卷" align="center">
<template scope="scope">
<el-input v-show="!scope.row.edit" v-model="scope.row.pcsn" size="mini" />
<span v-show="scope.row.edit">{{ scope.row.pcsn }}</span>
</template>
</el-table-column>
<el-table-column prop="plan_qty" label="重量" width="150" align="center">
<el-table-column prop="plan_qty" label="出库重量" width="150" align="center">
<template scope="scope">
<el-input-number v-model="scope.row.plan_qty" :disabled="scope.row.edit" :precision="3" :controls="false" :min="0" style="width: 120px" />
<el-input-number v-model="scope.row.plan_qty" v-show="!scope.row.edit" :precision="3" :controls="false" :min="1" style="width: 120px" />
<span v-show="scope.row.edit">{{ scope.row.plan_qty }}</span>
</template>
</el-table-column>
<el-table-column prop="qty_unit_name" label="单位" align="center" />
<el-table-column prop="quality_scode" label="品质类型" align="center" width="110px">
<!-- <el-table-column prop="quality_scode" label="品质类型" align="center" width="110px">
<template slot-scope="scope">
<el-select
v-model="scope.row.quality_scode"
@@ -212,27 +212,25 @@
/>
</el-select>
</template>
</el-table-column>
</el-table-column>-->
<el-table-column prop="source_bill_type" label="源单类型" align="center" width="130px" :formatter="invtypeFormat" show-overflow-tooltip />
<el-table-column prop="source_bill_code" label="源单号" align="center" width="130px" show-overflow-tooltip />
<el-table-column show-overflow-tooltip prop="remark" label="明细备注" align="center">
<template scope="scope">
<el-input v-show="!scope.row.edit" v-model="scope.row.remark" size="mini" />
<span v-show="scope.row.edit">{{ scope.row.remark }}</span>
<el-input v-model="scope.row.remark" size="mini" />
<span>{{ scope.row.remark }}</span>
</template>
</el-table-column>
<el-table-column v-if="crud.status.cu > 0" align="center" label="操作" width="160" fixed="right">
<template scope="scope">
<el-button type="danger" class="filter-item" size="mini" icon="el-icon-delete" @click.native.prevent="deleteRow(scope.$index, form.tableData)" />
<el-button v-show="!scope.row.edit" type="primary" class="filter-item" size="mini" icon="el-icon-edit" @click="handleEdit(scope.$index, scope.row)">编辑</el-button>
<el-button v-show="scope.row.edit" type="success" class="filter-item" size="mini" icon="el-icon-check" @click="handleEdit(scope.$index, scope.row)">完成</el-button>
</template>
</el-table-column>
</el-table>
<AddDtl :dialog-show.sync="dtlShow" :open-param="materType" @tableChanged="tableChanged" />
<MaterDialog :dialog-show.sync="materShow" :mater-opt-code.sync="materType" @tableChanged2="tableChanged2" />
<MaterDialog :dialog-show.sync="materShow" :mater-opt-code.sync="materType" @setMaterValue="setMaterValue" />
</el-dialog>
</template>
@@ -279,7 +277,9 @@ export default {
nowrow: {},
nowindex: '',
storlist: [],
billtypelist: [],
billtypelist: [
{ 'name': '发货出库', 'code': '111111' }
],
invtypelist: [],
rules: {
stor_id: [
@@ -304,19 +304,25 @@ export default {
methods: {
open() {
// 查询原材料库的仓库
crudStorattr.getStor({ 'is_materialstore': '1' }).then(res => {
crudStorattr.getStor({ 'is_productstore': '1' }).then(res => {
this.storlist = res.content
})
crudRawAssist.getType({ 'io_code': '0101', 'io_flag': '01' }).then(res => {
/* crudRawAssist.getType({ 'io_code': '0101', 'io_flag': '01' }).then(res => {
this.billtypelist = res
})
checkoutbill.getInvTypes().then(res => {
this.invtypelist = res
})
})*/
},
close() {
this.$emit('AddChanged')
},
[CRUD.HOOK.beforeSubmit]() {
if (this.form.tableData.length === 0) {
this.crud.notify('请至少选择一条明细', CRUD.NOTIFICATION_TYPE.INFO)
return false
}
},
[CRUD.HOOK.afterToEdit]() {
checkoutbill.getOutBillDtl({ 'iostorinv_id': this.form.iostorinv_id }).then(res => {
this.form.tableData = res
@@ -346,9 +352,6 @@ export default {
}
}
},
bill_statusFormat(row, column) {
return this.dict.label.io_bill_status[row.bill_status]
},
storChange(row) {
this.storlist.forEach((item) => {
if (item.stor_id === row) {
@@ -362,22 +365,22 @@ export default {
this.crud.notify('请选择业务类型!', CRUD.NOTIFICATION_TYPE.INFO)
return
}
checkoutbill.paramByCodeType({ 'bill_type': this.form.bill_type }).then(res => {
this.materType = res.materType
this.materShow = true
this.nowindex = index
this.nowrow = row
})
this.materShow = true
/* checkoutbill.paramByCodeType({ 'bill_type': this.form.bill_type }).then(res => {
this.materType = res.materType
this.nowindex = index
this.nowrow = row
})*/
},
async queryDtl(index, row) {
if (this.form.bill_type === '') {
this.crud.notify('请选择业务类型!', CRUD.NOTIFICATION_TYPE.INFO)
return
}
checkoutbill.paramByCodeType({ 'bill_type': this.form.bill_type }).then(res => {
this.materType = res.materType
this.dtlShow = true
})
this.dtlShow = true
/* checkoutbill.paramByCodeType({ 'bill_type': this.form.bill_type }).then(res => {
this.materType = res.materType
})*/
},
tableChanged(rows) {
const tablemap = new Map()
@@ -392,17 +395,11 @@ export default {
if (!this.flagnow) {
item.edit = true
item.quality_scode = '00'
item.ivt_level = '01'
item.is_active = '1'
item.bill_status = '10'
tablemap.set(item.material_id, item)
}
} else {
item.edit = true
item.quality_scode = '00'
item.ivt_level = '01'
item.is_active = '1'
item.bill_status = '10'
tablemap.set(item.material_id, item)
}
})
@@ -411,7 +408,7 @@ export default {
}
this.form.detail_count = this.form.tableData.length
},
tableChanged2(row) {
setMaterValue(row) {
for (let i = 0; i < this.form.tableData.length; i++) {
if (this.form.tableData[i].material_id === row.material_id) {
this.crud.notify('不允许添加相同物料!')
@@ -423,6 +420,8 @@ export default {
this.nowrow.material_name = row.material_name
this.nowrow.qty_unit_id = row.base_unit_id
this.nowrow.qty_unit_name = row.unit_name
this.nowrow.plan_qty = '1'
this.nowrow.edit = false
this.form.tableData.splice(this.nowindex, 1, this.nowrow) // 通过splice 替换数据 触发视图更新
},
async insertdtl() {
@@ -430,56 +429,15 @@ export default {
this.crud.notify('请选择业务类型!', CRUD.NOTIFICATION_TYPE.INFO)
return
}
this.form.tableData.push({ material_id: '', material_code: '', bill_status: '10', material_name: '', pcsn: '', quality_scode: '00', ivt_level: '01', is_active: '1', plan_qty: '2', qty_unit_name: '', qty_unit_id: '', remark: '', edit: false })
this.form.tableData.push({ material_id: '', material_code: '', material_name: '', pcsn: '', quality_scode: '00', plan_qty: '1', qty_unit_name: '', qty_unit_id: '', remark: '', edit: false })
this.form.detail_count = this.form.tableData.length
},
handleEdit(index, row) {
// 判断是否可以关闭编辑状态
if (!row.edit) {
if (!row.material_id || !row.plan_qty || parseFloat(row.plan_qty) <= 0) {
this.crud.notify('物料、数量不可为空!', CRUD.NOTIFICATION_TYPE.INFO)
return false
}
if (row.quality_scode !== '00') {
this.crud.notify('请校验物料' + row.material_code + ',品质类型是否正确', CRUD.NOTIFICATION_TYPE.INFO)
return false
}
if (row.ivt_level !== '01') {
this.crud.notify('请校验物料' + row.material_code + ',库存等级是否正确', CRUD.NOTIFICATION_TYPE.INFO)
return false
}
if (row.is_active !== '1') {
this.crud.notify('请校验物料' + row.material_code + ',是否可用是否正确', CRUD.NOTIFICATION_TYPE.INFO)
return false
}
}
row.edit = !row.edit
this.form.tableData.splice(index, 1, row) // 通过splice 替换数据 触发视图更新
if (row.edit) {
this.form.total_qty = 0
this.form.tableData.forEach((item) => {
this.form.total_qty = this.form.total_qty + item.plan_qty
})
}
},
deleteRow(index, rows) {
this.form.total_qty = parseFloat(this.form.total_qty) - parseFloat(rows[index].plan_qty)
rows.splice(index, 1)
this.nowindex = ''
this.nowrow = {}
this.form.detail_count = this.form.tableData.length
},
[CRUD.HOOK.beforeSubmit]() {
if (this.form.tableData.length === 0) {
this.crud.notify('请至少选择一条明细', CRUD.NOTIFICATION_TYPE.INFO)
return false
}
for (let i = 0; i < this.form.tableData.length; i++) {
if (!this.form.tableData[i].edit) {
this.crud.notify('尚有未完成编辑的物料明细序号' + (i + 1) + ',请检查!')
return false
}
}
}
}
}

View File

@@ -14,19 +14,19 @@
<!-- 搜索 -->
<date-range-picker v-model="query.createTime" class="date-item" />
<el-input
v-model="query.bill_code"
v-model="query.material_code"
clearable
size="mini"
placeholder="质检单号模糊查询"
placeholder="物料编码、名称"
style="width: 200px;"
class="filter-item"
@keyup.enter.native="crud.toQuery"
/>
<el-input
v-model="query.remark"
v-model="query.pcsn"
clearable
size="mini"
placeholder="物料"
placeholder="子卷号"
style="width: 200px;"
class="filter-item"
@keyup.enter.native="crud.toQuery"
@@ -44,12 +44,12 @@
:header-cell-style="{background:'#f5f7fa',color:'#606266'}"
>
<el-table-column type="selection" width="55" />
<el-table-column show-overflow-tooltip prop="biz_date" label="日期" />
<el-table-column show-overflow-tooltip prop="source_bill_code" label="单据号" />
<el-table-column show-overflow-tooltip prop="instorage_time" label="入库日期" />
<el-table-column show-overflow-tooltip prop="material_code" label="物料编码" />
<el-table-column show-overflow-tooltip prop="material_name" label="物料名称" />
<el-table-column show-overflow-tooltip prop="pcsn" label="批次" />
<el-table-column show-overflow-tooltip prop="plan_qty" :formatter="crud.formatNum3" label="检测重量" />
<el-table-column show-overflow-tooltip prop="box_no" label="箱号" />
<el-table-column show-overflow-tooltip prop="pcsn" label="子卷号" />
<el-table-column show-overflow-tooltip prop="plan_qty" :formatter="crud.formatNum3" label="重量" />
<el-table-column show-overflow-tooltip prop="qty_unit_name" label="重量单位" />
</el-table>
<!--分页组件-->

View File

@@ -111,8 +111,6 @@
<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 prop="quality_scode" label="品质类型" align="center" width="110px" :formatter="quality_scodeFormat" />
<el-table-column prop="ivt_level" label="库存等级" align="center" width="100px" :formatter="ivt_levelFormat" />
<el-table-column prop="is_active" label="是否可用" align="center" width="110px" :formatter="is_activeFormat" />
<el-table-column prop="source_bill_type" label="源单类型" align="center" width="130px" :formatter="invtypeFormat" />
<el-table-column show-overflow-tooltip prop="source_bill_code" label="源单编号" align="center" />
<el-table-column show-overflow-tooltip prop="qty_unit_name" label="单位" align="center" />
@@ -193,12 +191,12 @@
</el-table-column>
<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="pcsn" 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="struct_code" label="仓位编码" align="center" />
<el-table-column show-overflow-tooltip prop="struct_name" label="仓位名称" align="center" />
<el-table-column show-overflow-tooltip prop="task_code" label="任务号" align="center" />
<el-table-column show-overflow-tooltip prop="point_name" label="出库点" align="center" />
<el-table-column show-overflow-tooltip prop="point_code" label="出库点" align="center" />
<el-table-column align="center" label="操作" width="160" fixed="right">
<template scope="scope">
<el-button :disabled="tabledisabled(scope.row)" type="danger" class="filter-item" size="mini" icon="el-icon-delete" @click.native.prevent="deleteRow(scope.row)" />

View File

@@ -78,9 +78,9 @@
<el-table-column type="index" label="序号" width="50" align="center" />
<el-table-column show-overflow-tooltip prop="sect_name" label="库区" align="center" />
<el-table-column show-overflow-tooltip prop="struct_code" label="仓位" align="center" />
<el-table-column show-overflow-tooltip prop="storagevehicle_code" label="载具号" align="center" />
<el-table-column show-overflow-tooltip prop="storagevehicle_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="pcsn" 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">
<template scope="scope">
@@ -176,7 +176,11 @@ export default {
}
},
handleEdit(index, row) {
debugger
// 判断是否可以关闭编辑状态
if (row.edit === undefined) {
row.edit = false
}
if (!row.edit) {
if (row.plan_qty > this.queryrow.unassign_qty) {
this.crud.notify('出库重量不能超过未分配数', CRUD.NOTIFICATION_TYPE.INFO)

View File

@@ -135,14 +135,13 @@
>
<el-table-column min-width="120" show-overflow-tooltip prop="material_code" label="物料编码" align="center" />
<el-table-column min-width="120" show-overflow-tooltip prop="material_name" label="物料名称" align="center" />
<el-table-column prop="pcsn" label="批次号" align="center" />
<el-table-column prop="storagevehicle_code" label="载具号" align="center" />
<el-table-column prop="bucket_num" label="桶数" :formatter="crud.formatNum0" align="center" />
<el-table-column prop="total_storage_qty" :formatter="crud.formatNum3" label="重量" align="center" />
<el-table-column prop="pcsn" label="子卷批次号" align="center" />
<el-table-column prop="storagevehicle_code" label="号" align="center" />
<el-table-column prop="plan_qty" :formatter="crud.formatNum3" label="重量" align="center" />
<el-table-column prop="start_point_code" label="起始位置" align="center" />
<el-table-column prop="next_point_code" label="目的位置" align="center" />
<el-table-column prop="task_code" label="任务号" align="center" />
<el-table-column prop="taskdtl_type" label="任务类型" align="center" width="150px" :formatter="taskdtl_typeFormat" />
<el-table-column prop="task_type" label="任务类型" align="center" width="150px" :formatter="taskdtl_typeFormat" />
<el-table-column prop="task_status" label="状态" align="center" width="110px" :formatter="task_statusFormat" />
</el-table>
</el-card>

View File

@@ -172,7 +172,7 @@
</template>
</el-table-column>
<el-table-column :selectable="checkboxT" type="selection" width="55" />
<el-table-column show-overflow-tooltip prop="bill_code" width="130" label="单编码">
<el-table-column show-overflow-tooltip prop="bill_code" width="130" label="单编码">
<template slot-scope="scope">
<el-link type="warning" @click="toView(scope.$index, scope.row)">{{ scope.row.bill_code }}</el-link>
</template>
@@ -270,7 +270,6 @@ export default {
this.viewShow = true
},
[CRUD.HOOK.beforeRefresh]() {
this.crud.query.buss_type = '0101'
this.handleCurrentChange(null)
},
handleSelectionChange(val, row) {