add 手持叫料

This commit is contained in:
张江玮
2023-05-11 18:32:58 +08:00
parent d05e0af2c1
commit 5ffca09127
9 changed files with 94 additions and 24 deletions

View File

@@ -67,8 +67,6 @@ public class MaterialbaseServiceImpl implements MaterialbaseService {
public MaterialbaseDto findById(Long material_id) {
WQLObject wo = WQLObject.getWQLObject("md_me_materialbase");
JSONObject json = wo.query("material_id =" + material_id + "").uniqueResult(0);
String unit_name = WQLObject.getWQLObject("md_pb_measureunit").query("measure_unit_id= '" + json.getString("base_unit_id") + "'").uniqueResult(0).getString("unit_name");
json.put("base_unit_name", unit_name);
final MaterialbaseDto obj = json.toJavaObject(MaterialbaseDto.class);
return obj;
}

View File

@@ -126,4 +126,18 @@ public class PdaController {
pdaService.sendMaterial(point_code, vehicle_code, qty, weight, is_full, param.toJSONString());
return PdaUtils.buildSuccessResultJSON(null);
}
@PostMapping("/callMaterial")
@Log("叫料")
@ApiOperation("叫料")
@PdaAnnotation
public JSONObject callMaterial(@RequestBody JSONObject param) {
String point_code = param.getString("point_code");
if (StrUtil.isBlank(point_code)) {
throw new BadRequestException("点位编码不能为空!");
}
pdaService.callMaterial(point_code, param.toJSONString());
return PdaUtils.buildSuccessResultJSON(null);
}
}

View File

@@ -13,6 +13,7 @@ public interface PdaService {
/**
* 查询区域
*
* @param func 手持功能
* @return 区域编码 区域名称
*/
@@ -20,7 +21,8 @@ public interface PdaService {
/**
* 查询点位
* @param func 手持功能
*
* @param func 手持功能
* @param region_code 区域编码
* @return 点位编码 点位名称
*/
@@ -28,6 +30,7 @@ public interface PdaService {
/**
* 查询设备
*
* @param func 手持功能
* @return 设备编码 设备名称
*/
@@ -35,18 +38,27 @@ public interface PdaService {
/**
* 不合格品上报
* @param device_code 设备编码
*
* @param device_code 设备编码
* @param unqualified_qty 不合格数量
*/
void report(String device_code, String unqualified_qty);
/**
* 送料
* @param point_code 点位编码
*
* @param point_code 点位编码
* @param vehicle_code 载具编码
* @param qty 数量
* @param weight 重量
* @param is_full 是否满垛
* @param qty 数量
* @param weight 重量
* @param is_full 是否满垛
*/
void sendMaterial(String point_code, String vehicle_code, String qty, String weight, String is_full, String request_param);
/**
* 叫料
*
* @param point_code 点位编码
*/
void callMaterial(String point_code, String request_param);
}

View File

@@ -17,6 +17,9 @@ import org.nl.wms.pda.service.PdaService;
import org.nl.wms.sch.manage.ACSSystem;
import org.nl.wms.sch.manage.CreateMode;
import org.nl.wms.sch.manage.Region;
import org.nl.wms.sch.task.call.material.FJCallMaterialTask;
import org.nl.wms.sch.task.call.material.YZCallMaterialTask;
import org.nl.wms.sch.task.send.material.FJSendMaterialTask;
import org.nl.wms.sch.task.send.material.HLSendMaterialTask;
import org.nl.wms.sch.task.send.material.YZSendMaterialTask;
import org.nl.wms.sch.task.util.TaskUtils;
@@ -36,6 +39,12 @@ public class PdaServiceImpl implements PdaService {
private final YZSendMaterialTask yzSendMaterialTask;
private final FJSendMaterialTask fjSendMaterialTask;
private final YZCallMaterialTask yzCallMaterialTask;
private final FJCallMaterialTask fjCallMaterialTask;
@Override
public JSONArray region(String func) {
switch (func) {
@@ -204,6 +213,7 @@ public class PdaServiceImpl implements PdaService {
method_param.put("request_param", request_param);
method_param.put("create_id", SecurityUtils.getCurrentUserId());
method_param.put("create_name", SecurityUtils.getCurrentNickName());
switch (region) {
case HL:
hlSendMaterialTask.createTask(method_param);
@@ -211,8 +221,43 @@ public class PdaServiceImpl implements PdaService {
case YZ:
yzSendMaterialTask.createTask(method_param);
break;
case FJ:
fjSendMaterialTask.createTask(method_param);
default:
throw new BadRequestException("[" + region.label() + "] 不能发起送料任务!");
}
}
@Override
public void callMaterial(String point_code, String request_param) {
JSONObject point = WQLObject
.getWQLObject("sch_base_point")
.query("is_used = '1' AND point_code = '" + point_code + "'")
.uniqueResult(0);
if (ObjectUtil.isEmpty(point)) {
throw new BadRequestException("[" + point_code + "] 已删除或未启用!");
}
JSONObject workorder = TaskUtils.hasWorkOrder(point);
Region region = Region.get(point.getString("region_code"));
JSONObject method_param = new JSONObject();
method_param.put("point", point);
method_param.put("workorder", workorder);
method_param.put("create_mode", CreateMode.SCCJ.value());
method_param.put("request_param", request_param);
method_param.put("create_id", SecurityUtils.getCurrentUserId());
method_param.put("create_name", SecurityUtils.getCurrentNickName());
switch (region) {
case YZ:
yzCallMaterialTask.createTask(method_param);
break;
case FJ:
fjCallMaterialTask.createTask(method_param);
break;
default:
throw new BadRequestException("[" + region.label() + "] 不能发起叫料任务!");
}
}
}

View File

@@ -414,7 +414,8 @@ public class WorkorderServiceImpl implements WorkordeService {
@Override
@Transactional(rollbackFor = Exception.class)
public void finish(JSONObject param) {
String workorder_id = param.getString("workorder_id");
JSONObject row = param.getJSONObject("row");
String workorder_id = row.getString("workorder_id");
WQLObject workorder_table = WQLObject.getWQLObject("pdm_bd_workorder");
JSONObject workorder = workorder_table.query("is_delete = '0' AND workorder_id = " + workorder_id).uniqueResult(0);
if (ObjectUtil.isEmpty(workorder)) {
@@ -423,7 +424,7 @@ public class WorkorderServiceImpl implements WorkordeService {
if (workorder.getIntValue("order_status") < 5) {
workorder.put("order_status", WorkOrderEnum.ORDER_STATUS_FINISH.value());
String qty = param.getString("qty");
String qty = row.getString("qty");
if (StrUtil.isBlank(qty)) {
JSONObject device = WQLObject.getWQLObject("pdm_bi_device").query("device_id = " + workorder.getString("device_id")).uniqueResult(0);
if (Region.HL.value().equals(device.getString("region_code"))) {
@@ -432,11 +433,11 @@ public class WorkorderServiceImpl implements WorkordeService {
throw new BadRequestException("数量不能为空!");
}
workorder.put("real_qty", qty);
String unqualified_qty = param.getString("unqualified_qty");
String unqualified_qty = row.getString("unqualified_qty");
if (StrUtil.isNotBlank(unqualified_qty) && !"0".equals(unqualified_qty)) {
workorder.put("unqualified_qty", unqualified_qty);
}
String qualified_qty = param.getString("qualified_qty");
String qualified_qty = row.getString("qualified_qty");
if (StrUtil.isNotBlank(qualified_qty) && !"0".equals(qualified_qty)) {
workorder.put("qualified_qty", qualified_qty);
} else {

View File

@@ -22,14 +22,14 @@ public class PointTest {
JSONObject point = new JSONObject();
WQLObject point_table = WQLObject.getWQLObject("sch_base_point");
String now = DateUtil.now();
for (int i = 0; i < 48; i++) {
for (int i = 1; i < 10; i++) {
point.put("point_id", IdUtil.getSnowflake(1L, 1L).nextId());
point.put("point_code", "KLHW" + String.format("%02d", i + 1));
point.put("point_name", "困料货位" + (i + 1));
point.put("region_id", "1643186988158947328");
point.put("region_code", "KLHJ");
point.put("region_name", "困料货架");
point.put("point_type", "1");
point.put("point_code", "YJ" + String.format("%02d", i + 1) + "SL01");
point.put("point_name", "压机" + (i + 1) + "上料位");
point.put("region_id", "1643438714497667072");
point.put("region_code", "YZ");
point.put("region_name", "压制区");
point.put("point_type", "2");
point.put("lock_type", "1");
point.put("create_id", 1);
point.put("create_name", "管理员");