库存修改

This commit is contained in:
lyd
2022-11-03 10:35:20 +08:00
parent bdc86d6e28
commit 3bdbf389d4
9 changed files with 385 additions and 70 deletions

View File

@@ -45,12 +45,16 @@ class MaterialLabelServiceImpl implements MaterialLabelService {
@Override
public Map<String, Object> queryAll(Map whereJson, Pageable page) {
//物料模糊查询
String bullery = MapUtil.getStr(whereJson, "bullery");
String material_name = MapUtil.getStr(whereJson, "material_name");
String formula = MapUtil.getStr(whereJson, "formula");
String pcsn = MapUtil.getStr(whereJson, "pcsn");
HashMap<String, String> map = new HashMap<>();
map.put("bullery", bullery);
map.put("flag", "1");
map.put("material_name", material_name);
map.put("formula", formula);
map.put("pcsn", pcsn);
JSONObject json = WQL.getWO("QMD_materialLab_01").addParam("flag", "1").addParamMap(map).pageQuery(WqlUtil.getHttpContext(page), "update_time desc");
JSONObject json = WQL.getWO("QMD_materialLab_01").addParamMap(map).pageQuery(WqlUtil.getHttpContext(page), "update_time desc");
//处理标签码
JSONArray arr = json.optJSONArray("content");

View File

@@ -1,10 +1,10 @@
[交易说明]
交易名: 配方分页查询
所属模块:
功能简述:
版权所有:
表引用:
版本经历:
所属模块:
功能简述:
版权所有:
表引用:
版本经历:
[数据库]
--指定数据库为空采用默认值默认为db.properties中列出的第一个库
@@ -14,47 +14,49 @@
## 表字段对应输入参数
#################################################
输入.flag TYPEAS s_string
输入.label_code TYPEAS s_string
输入.material_name TYPEAS s_string
输入.pcsn TYPEAS s_string
输入.formula TYPEAS s_string
输入.bullery TYPEAS s_string
输入.formula TYPEAS s_string
[临时表]
--这边列出来的临时表就会在运行期动态创建
[临时变量]
--所有中间过程变量均可在此处定义
[业务过程]
##########################################
# 1、输入输出检查 #
##########################################
##########################################
# 2、主过程前处理 #
##########################################
##########################################
# 3、业务主过程 #
##########################################
IF 输入.flag = "1"
PAGEQUERY
SELECT
SELECT
*
FROM
md_base_materialLabelMst m
WHERE
m.is_delete = '0'
OPTION 输入.bullery <> ""
(m.material_name like "%" 输入.bullery "%" or m.material_code like "%" 输入.bullery "%" or m.material_spec like "%" 输入.bullery)
OPTION 输入.material_name <> ""
m.material_name like "%" 输入.material_name "%"
ENDOPTION
OPTION 输入.bullery <> ""
(m.formula like "%" 输入.bullery "%" or m.pcsn like "%" 输入.bullery "%")
OPTION 输入.formula <> ""
m.formula like "%" 输入.formula "%"
ENDOPTION
OPTION 输入.pcsn <> ""
m.pcsn like "%" 输入.pcsn "%"
ENDOPTION
ENDSELECT
ENDPAGEQUERY

View File

@@ -91,4 +91,12 @@ public class PointDto implements Serializable {
* 所属区域
*/
private String area_type;
/**
* 物料标签id
*/
private String label_uuid;
private String material_uuid;
}

View File

@@ -2,6 +2,7 @@ package org.nl.wms.sch.service.impl;
import cn.hutool.core.date.DateUtil;
import cn.hutool.core.util.IdUtil;
import cn.hutool.core.util.ObjectUtil;
import cn.hutool.core.util.StrUtil;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
@@ -112,9 +113,71 @@ public class PointServiceImpl implements PointService {
dto.setUpdate_time(now);
dto.setUpdate_by(currentUsername);
WQLObject wo = WQLObject.getWQLObject("sch_base_point");
// 获取数据
String label_uuid = dto.getLabel_uuid();
String point_type1 = dto.getPoint_type1(); // 点位类型
String struct_code = dto.getPoint_code(); // 点位编码就是仓位编码
String point_status = dto.getPoint_status();
String vehicle_code = dto.getVehicle_code();
String material_uuid = dto.getMaterial_uuid();
WQLObject structIvtTab = WQLObject.getWQLObject("ST_IVT_StructIvt");
WQLObject materialLabelTab = WQLObject.getWQLObject("md_base_materialLabelMst");
WQLObject pointTab = WQLObject.getWQLObject("SCH_BASE_Point");
WQLObject structTab = WQLObject.getWQLObject("st_base_struct");
JSONObject structIvtObj = null;
JSONObject structObj = null;
JSONObject materialLabelObj = null;
if (ObjectUtil.isNotEmpty(struct_code)) {
structObj = structTab.query("struct_code = '" + struct_code + "'").uniqueResult(0);
}
// 通过载具号获取仓位库存信息
if (ObjectUtil.isNotEmpty(structObj)) {
structIvtObj = structIvtTab.query("struct_uuid = '" + structObj.getString("struct_uuid") + "'").uniqueResult(0);
}
if (ObjectUtil.isNotEmpty(label_uuid)) {
materialLabelObj = materialLabelTab.query("label_uuid = '" + label_uuid + "'").uniqueResult(0);
}
if (point_type1.equals("01")) { // 仓位的时候需要对仓位库存进行操作
if (point_status.equals("00")) { // 空位
// 删除仓位库存
if (ObjectUtil.isNotEmpty(structIvtObj)) structIvtTab.delete(structIvtObj);
vehicle_code = null;
} else if (point_status.equals("01")) { // 空载具
if (ObjectUtil.isNotEmpty(structIvtObj)) structIvtTab.delete(structIvtObj);
} else { // 有箱有料
if (ObjectUtil.isEmpty(materialLabelObj)) throw new BadRequestException("物料不能为空");
if (ObjectUtil.isEmpty(vehicle_code)) throw new BadRequestException("载具编码不能为空");
if (ObjectUtil.isEmpty(structIvtObj)) { // 仓位库存为空就插入
JSONObject structIvt = new JSONObject();
structIvt.put("stockrecord_uuid", IdUtil.simpleUUID());
structIvt.put("struct_uuid", structObj.getString("struct_uuid"));
structIvt.put("stand_hour", materialLabelObj.getString("stand_hour"));
structIvt.put("label_uuid", label_uuid);
structIvt.put("material_uuid", material_uuid);
structIvt.put("vehicle_code", vehicle_code);
structIvt.put("instorage_time", DateUtil.now());
structIvtTab.insert(structIvt);
} else { // 修改
structIvtObj.put("struct_uuid", structObj.getString("struct_uuid"));
structIvtObj.put("label_uuid", label_uuid);
structIvtObj.put("stand_hour", materialLabelObj.getString("stand_hour"));
structIvtObj.put("material_uuid", material_uuid);
structIvtObj.put("vehicle_code", vehicle_code);
structIvtObj.put("instorage_time", DateUtil.now());
structIvtTab.update(structIvtObj);
}
}
}
// 点位修改
dto.setVehicle_code(vehicle_code);
JSONObject json = JSONObject.fromObject(dto);
wo.update(json);
pointTab.update(json);
}
@Override

View File

@@ -1,10 +1,10 @@
[交易说明]
交易名: 库区分页查询
所属模块:
功能简述:
版权所有:
表引用:
版本经历:
所属模块:
功能简述:
版权所有:
表引用:
版本经历:
[数据库]
--指定数据库为空采用默认值默认为db.properties中列出的第一个库
@@ -24,26 +24,26 @@
[临时表]
--这边列出来的临时表就会在运行期动态创建
[临时变量]
--所有中间过程变量均可在此处定义
[业务过程]
##########################################
# 1、输入输出检查 #
##########################################
##########################################
# 2、主过程前处理 #
##########################################
##########################################
# 3、业务主过程 #
##########################################
IF 输入.flag = "1"
PAGEQUERY
SELECT
@@ -66,13 +66,16 @@
point.create_by,
point.create_time,
point.update_by,
point.update_time
point.update_time,
material.material_name
FROM
sch_base_point point
LEFT JOIN sys_dict_detail d1 ON point.point_type1 = d1.value and d1.name='point_type1'
LEFT JOIN sys_dict_detail d2 ON point.area_type = d2.value and d2.name='sch_area_type'
LEFT JOIN sys_dict_detail d3 ON point.lock_type = d3.value and d3.name='lock_type'
LEFT JOIN sys_dict_detail d4 ON point.point_status = d4.value and d4.name='sch_point_status'
LEFT JOIN st_ivt_structivt structivt ON structivt.vehicle_code = point.vehicle_code
LEFT JOIN md_base_material material ON material.material_uuid = structivt.material_uuid
WHERE
point.is_delete = '0'
OPTION 输入.area_type <> ""
@@ -98,4 +101,4 @@
ENDIF