fix 晟华ERP对接及特殊电气交互

This commit is contained in:
张江玮
2023-07-03 11:29:49 +08:00
parent df1b5c5498
commit 6f078b894b
12 changed files with 0 additions and 222 deletions

View File

@@ -157,59 +157,7 @@ public class MaterialbaseServiceImpl implements MaterialbaseService {
@Override
public void synchronize(Map whereJson) {
JSONArray erp_materials = WQL.getWO("QMD_ME_MATERIAL").setDbname("dataSource1").addParam("flag", "2").process().getResultJSONArray(0);
if (ObjectUtil.isNotEmpty(erp_materials)) {
WQLObject material_table = WQLObject.getWQLObject("md_me_materialbase");
List<String> material_codes = material_table.query().getResultJSONArray(0).stream().map(o -> ((JSONObject) o).getString("material_code")).collect(Collectors.toList());
WQLObject dict_detail_table = WQLObject.getWQLObject("sys_dict_detail");
Long user_id = SecurityUtils.getCurrentUserId();
String nick_name = SecurityUtils.getCurrentNickName();
String now = DateUtil.now();
erp_materials.forEach(o -> {
JSONObject erp_material = (JSONObject) o;
String material_code = erp_material.getString("cinvcode").substring(1);
if (!material_codes.contains(material_code)) {
JSONObject material = new JSONObject();
long id = IdUtil.getSnowflake(1L, 1L).nextId();
material.put("material_id", id);
material.put("material_code", material_code);
material.put("material_name", erp_material.getString("cinvname"));
material.put("weight", String.format("%.2f", erp_material.getDoubleValue("changerate") * 1000));
String qty = String.format("%.0f", erp_material.getDoubleValue("qty") * 1000);
material.put("qty", qty);
material.put("surplus_qty", qty);
String aux_qty = String.format("%.0f", erp_material.getDoubleValue("auxqty"));
material.put("aux_qty", aux_qty);
material.put("surplus_aux_qty", aux_qty);
material.put("order_code", erp_material.getString("free1"));
String furnace_code = material_code.substring(0, 2);
JSONObject furnace_name = dict_detail_table.query("name = 'furnace' AND value = '" + furnace_code + "'").uniqueResult(0);
if (ObjectUtil.isNotEmpty(furnace_name)) {
material.put("furnace", furnace_name.getString("label"));
} else {
material.put("furnace", furnace_code);
}
String material_brick_code = material_code.substring(2, 5);
JSONObject material_brick_type = dict_detail_table.query("name = 'material_brick_type' AND value = '" + material_brick_code + "'").uniqueResult(0);
if (ObjectUtil.isNotEmpty(material_brick_type)) {
material.put("material_brick_type", material_brick_type.getString("label"));
} else {
material.put("material_brick_type", material_brick_code);
}
material.put("product_grade", erp_material.getString("free3"));
material.put("brick_type", erp_material.getString("free4"));
material.put("create_id", user_id);
material.put("create_name", nick_name);
material.put("create_time", now);
material_table.insert(material);
}
});
}
}
@Override

View File

@@ -728,10 +728,6 @@ public class AcsToWmsServiceImpl implements AcsToWmsService {
if (StrUtil.isNotBlank(unqualified_qty) && !"0".equals(unqualified_qty)) {
workorder.put("unqualified_qty", unqualified_qty);
}
if (!"0".equals(workorder.getString("unqualified_qty"))) {
JSONObject regionIn = TaskUtils.buildRegionInFromWorkorder(workorder);
WQLObject.getWQLObject("st_ivt_regionio").insert(regionIn);
}
String qualified_qty = jsonObject.getString("qualified_qty");
if (StrUtil.isNotBlank(qualified_qty) && !"0".equals(qualified_qty)) {
workorder.put("qualified_qty", qualified_qty);
@@ -953,9 +949,6 @@ public class AcsToWmsServiceImpl implements AcsToWmsService {
vd.put("is_in_kiln", "0");
vd_table.update(vd);
JSONObject pn = TaskUtils.buildPN(PickType.GZ, vd.getLongValue("qty"), null);
WQLObject.getWQLObject("das_produce_number").insert(pn);
JSONObject workorder = WQLObject.getWQLObject("pdm_bd_workorder").query("workorder_id = " + vd.getString("workorder_id")).uniqueResult(0);
to_package = TrueOrFalse.trueOrFalse(workorder.getString("is_pri"));
}

View File

@@ -450,11 +450,6 @@ public class WorkorderServiceImpl implements WorkordeService {
workorder.put("unqualified_qty", unqualified_qty);
}
if (!"0".equals(workorder.getString("unqualified_qty"))) {
JSONObject regionIn = TaskUtils.buildRegionInFromWorkorder(workorder);
WQLObject.getWQLObject("st_ivt_regionio").insert(regionIn);
}
String qualified_qty = row.getString("qualified_qty");
if (StrUtil.isNotBlank(qualified_qty) && !"0".equals(qualified_qty)) {
workorder.put("qualified_qty", qualified_qty);

View File

@@ -22,8 +22,6 @@ import org.springframework.stereotype.Component;
@Component
public class FJCallEmptyTask extends AbstractAcsTask {
private final WmsToAcsService wmsToAcsService;
@Override
public void updateTaskStatus(JSONObject task, String status) {
if (TaskStatus.EXECUTING.value().equals(status)) {
@@ -114,12 +112,6 @@ public class FJCallEmptyTask extends AbstractAcsTask {
.uniqueResult(0);
if (ObjectUtil.isNotEmpty(point)) {
JSONArray request_param = new JSONArray();
request_param.add(point.getString("point_code"));
JSONObject result = wmsToAcsService.getTray(request_param);
if (!"200".equals(result.getString("status"))) {
continue;
}
task.put("task_status", TaskStatus.START_AND_END.value());
task.put("point_code1", point.getString("device_code"));

View File

@@ -213,9 +213,6 @@ public class FJCallMaterialTask extends AbstractAcsTask {
}
point_table.update(point2, "point_code = '" + point_code2 + "'");
}
JSONObject regionOut = TaskUtils.buildRegionOut(task, RegionOutType.BCPCK);
WQLObject.getWQLObject("st_ivt_regionout").insert(regionOut);
}
}
}

View File

@@ -23,8 +23,6 @@ import org.springframework.stereotype.Component;
@Component
public class FJSendMaterialTask extends AbstractAcsTask {
private final WmsToAcsService wmsToAcsService;
@Override
public void updateTaskStatus(JSONObject task, String status) {
if (TaskStatus.EXECUTING.value().equals(status)) {
@@ -65,10 +63,6 @@ public class FJSendMaterialTask extends AbstractAcsTask {
);
if (TrueOrFalse.trueOrFalse(vd.getString("is_full"))) {
JSONObject pn = TaskUtils.buildPN(PickType.CP, vd.getLongValue("qty"), vd.getLongValue("workorder_id"));
WQLObject.getWQLObject("das_produce_number").insert(pn);
material_task.put("table_fk_id", pn.getLong("data_id"));
JSONObject empty_task = TaskUtils.buildTask(
"分拣区叫空",
TaskType.CALL_EMPTY.value(),
@@ -148,13 +142,6 @@ public class FJSendMaterialTask extends AbstractAcsTask {
.uniqueResult(0);
if (ObjectUtil.isNotEmpty(fmj_point)) {
JSONArray request_param = new JSONArray();
request_param.add(fmj_point.getString("point_code"));
JSONObject result = wmsToAcsService.getTray(request_param);
if (!"200".equals(result.getString("status"))) {
continue;
}
empty_task.put("task_status", TaskStatus.START_AND_END.value());
empty_task.put("point_code1", fmj_point.getString("device_code"));
empty_task.put("vehicle_code", TaskUtils.formatVehicleCode(fmj_point.getString("vehicle_code")));
@@ -310,20 +297,6 @@ public class FJSendMaterialTask extends AbstractAcsTask {
if (TaskType.SEND_MATERIAL.value().equals(task.getString("task_type"))) {
JSONObject point2 = WQLObject.getWQLObject("sch_base_point").query("point_code = '" + point_code2 + "'").uniqueResult(0);
if (Region.FJ.value().equals(point2.getString("region_code")) && "5".equals(point2.getString("point_type"))) {
JSONObject regionIn = TaskUtils.buildRegionInFromTask(task, RegionInType.WGRK);
WQLObject.getWQLObject("st_ivt_regionio").insert(regionIn);
JSONObject vd = WQLObject.getWQLObject("st_ivt_vehicle_detail").query("vd_id = " + task.getString("group_id")).uniqueResult(0);
JSONArray param = new JSONArray();
JSONObject info = new JSONObject();
info.put("device_code", point_code2);
info.put("vehicle_type", task.getIntValue("vehicle_type") - 2);
info.put("vehicle_code", task.getString("vehicle_code"));
info.put("is_package", vd.getString("is_package"));
param.add(info);
wmsToAcsService.writeVehicle(param);
}
JSONObject workorder = WQL
.getWO("SEND_MATERIAL_TASK")

View File

@@ -46,9 +46,6 @@ public class HLSendMaterialTask extends AbstractAcsTask {
int priority = TrueOrFalse.trueOrFalse(work_order.getString("is_urgent")) ? 50 : 1;
JSONObject vd = form.getJSONObject("vd");
JSONObject pn = TaskUtils.buildPN(PickType.YL, vd.getLongValue("weight"), vd.getLongValue("workorder_id"));
WQLObject.getWQLObject("das_produce_number").insert(pn);
JSONObject task = TaskUtils.buildTask(
"混料区送料",
TaskType.SEND_MATERIAL.value(),
@@ -66,7 +63,6 @@ public class HLSendMaterialTask extends AbstractAcsTask {
form.getString("create_id"),
form.getString("create_name")
);
task.put("table_fk_id", pn.getLong("data_id"));
WQLObject.getWQLObject("sch_base_task").insert(task);
point.put("lock_type", LockType.TASK_LOCKED.value());

View File

@@ -220,9 +220,6 @@ public class SZSendMaterialTask extends AbstractAcsTask {
}
point_table.update(point2, "point_code = '" + point_code2 + "'");
}
JSONObject regionIn = TaskUtils.buildRegionInFromTask(task, RegionInType.BCPRK);
WQLObject.getWQLObject("st_ivt_regionio").insert(regionIn);
}
}
}

View File

@@ -44,9 +44,6 @@ public class YZSendMaterialTask extends AbstractAcsTask {
int priority = TrueOrFalse.trueOrFalse(work_order.getString("is_urgent")) ? 50 : 1;
JSONObject vd = form.getJSONObject("vd");
JSONObject pn = TaskUtils.buildPN(PickType.YZ, vd.getLongValue("qty"), vd.getLongValue("workorder_id"));
WQLObject.getWQLObject("das_produce_number").insert(pn);
JSONObject task = TaskUtils.buildTask(
"压制区送料",
TaskType.SEND_MATERIAL.value(),
@@ -64,7 +61,6 @@ public class YZSendMaterialTask extends AbstractAcsTask {
form.getString("create_id"),
form.getString("create_name")
);
task.put("table_fk_id", pn.getLong("data_id"));
WQLObject.getWQLObject("sch_base_task").insert(task);
point.put("lock_type", LockType.TASK_LOCKED.value());

View File

@@ -43,9 +43,6 @@ public class BTHCToPackageTask extends AbstractAcsTask {
JSONObject point = form.getJSONObject("point");
JSONObject vd = form.getJSONObject("vd");
JSONObject pn = TaskUtils.buildPN(PickType.CP, vd.getLongValue("qty"), vd.getLongValue("workorder_id"));
WQLObject.getWQLObject("das_produce_number").insert(pn);
JSONObject task = TaskUtils.buildTask(
"半托缓存区去包装",
TaskType.TO_PACKAGE.value(),
@@ -63,7 +60,6 @@ public class BTHCToPackageTask extends AbstractAcsTask {
form.getString("create_id"),
form.getString("create_name")
);
task.put("table_fk_id", pn.getLong("data_id"));
WQLObject.getWQLObject("sch_base_task").insert(task);
point.put("lock_type", LockType.TASK_LOCKED.value());
@@ -227,19 +223,6 @@ public class BTHCToPackageTask extends AbstractAcsTask {
}
point_table.update(point2, "point_code = '" + point_code2 + "'");
}
JSONObject regionIn = TaskUtils.buildRegionInFromTask(task, RegionInType.WGRK);
WQLObject.getWQLObject("st_ivt_regionio").insert(regionIn);
JSONObject vd = WQLObject.getWQLObject("st_ivt_vehicle_detail").query("vd_id = " + task.getString("group_id")).uniqueResult(0);
JSONArray param = new JSONArray();
JSONObject info = new JSONObject();
info.put("device_code", point_code2);
info.put("vehicle_type", task.getIntValue("vehicle_type") - 2);
info.put("vehicle_code", task.getString("vehicle_code"));
info.put("is_package", vd.getString("is_package"));
param.add(info);
wmsToAcsService.writeVehicle(param);
}
}
}

View File

@@ -45,9 +45,6 @@ public class FJToPackageTask extends AbstractAcsTask {
int priority = TrueOrFalse.trueOrFalse(work_order.getString("is_urgent")) ? 50 : 1;
JSONObject vd = form.getJSONObject("vd");
JSONObject pn = TaskUtils.buildPN(PickType.CP, vd.getLongValue("qty"), vd.getLongValue("workorder_id"));
WQLObject.getWQLObject("das_produce_number").insert(pn);
JSONObject task = TaskUtils.buildTask(
"分拣区去包装",
TaskType.TO_PACKAGE.value(),
@@ -65,7 +62,6 @@ public class FJToPackageTask extends AbstractAcsTask {
form.getString("create_id"),
form.getString("create_name")
);
task.put("table_fk_id", pn.getLong("data_id"));
WQLObject.getWQLObject("sch_base_task").insert(task);
point.put("lock_type", LockType.TASK_LOCKED.value());
@@ -229,19 +225,6 @@ public class FJToPackageTask extends AbstractAcsTask {
}
point_table.update(point2, "point_code = '" + point_code2 + "'");
}
JSONObject regionIn = TaskUtils.buildRegionInFromTask(task, RegionInType.WGRK);
WQLObject.getWQLObject("st_ivt_regionio").insert(regionIn);
JSONObject vd = WQLObject.getWQLObject("st_ivt_vehicle_detail").query("vd_id = " + task.getString("group_id")).uniqueResult(0);
JSONArray param = new JSONArray();
JSONObject info = new JSONObject();
info.put("device_code", point_code2);
info.put("vehicle_type", task.getIntValue("vehicle_type") - 2);
info.put("vehicle_code", task.getString("vehicle_code"));
info.put("is_package", vd.getString("is_package"));
param.add(info);
wmsToAcsService.writeVehicle(param);
}
}
}

View File

@@ -158,79 +158,4 @@ public class TaskUtils {
row.put("update_optname", form.getString("create_name"));
row.put("update_time", DateUtil.now());
}
public static JSONObject buildPN(PickType pickType, long real_qty, Long workorder_id) {
JSONObject pn = new JSONObject();
pn.put("data_id", IdUtil.getSnowflake(1L, 1L).nextId());
pn.put("pick_type", pickType.value());
pn.put("real_qty", real_qty);
pn.put("workorder_id", workorder_id);
pn.put("create_time", DateUtil.now());
return pn;
}
public static JSONObject buildRegionInFromTask(JSONObject task, RegionInType regionInType) {
JSONObject detail = WQL.getWO("TASK_UTILS").addParam("flag", "1").addParam("vd_id", task.getString("group_id")).process().uniqueResult(0);
JSONObject regionIn = new JSONObject();
regionIn.put("id", IdUtil.getSnowflake(1L, 1L).nextId());
regionIn.put("cCode", CodeUtil.getNewCode("IN_STORE_CODE"));
regionIn.put("dDate", DateUtil.now());
regionIn.put("cVouchType", regionInType.label());
String material_code = detail.getString("material_code");
String order_code = detail.getString("order_code");
regionIn.put("cMocode", order_code);
regionIn.put("cInvCode", regionInType.value() + material_code);
double vd_weight = detail.getDoubleValue("vd_weight");
int qty = detail.getIntValue("qty");
double material_weight = detail.getDoubleValue("material_weight");
if (vd_weight == 0) {
vd_weight = qty * material_weight;
}
regionIn.put("iQuantity", String.format("%.3f", vd_weight / 1000));
regionIn.put("iNum", qty);
regionIn.put("iinvexchrate", String.format("%.5f", material_weight / 1000));
regionIn.put("cBatch", order_code);
return regionIn;
}
public static JSONObject buildRegionInFromWorkorder(JSONObject workorder) {
JSONObject detail = WQL.getWO("TASK_UTILS").addParam("flag", "2").addParam("workorder_id", workorder.getString("workorder_id")).process().uniqueResult(0);
RegionInType regionInType = RegionInType.BCPFPRK;
if (Region.FJ.value().equals(detail.getString("region_code"))) {
regionInType = RegionInType.CCPFPRK;
}
JSONObject regionIn = new JSONObject();
regionIn.put("id", IdUtil.getSnowflake(1L, 1L).nextId());
regionIn.put("cCode", CodeUtil.getNewCode("IN_STORE_CODE"));
regionIn.put("dDate", DateUtil.now());
regionIn.put("cVouchType", regionInType.label());
String material_code = detail.getString("material_code");
String order_code = detail.getString("order_code");
regionIn.put("cMocode", order_code);
regionIn.put("cInvCode", regionInType.value() + material_code);
int qty = workorder.getIntValue("unqualified_qty");
regionIn.put("iNum", qty);
double material_weight = detail.getDoubleValue("material_weight");
regionIn.put("iinvexchrate", String.format("%.5f", material_weight / 1000));
regionIn.put("iQuantity", String.format("%.3f", qty * material_weight / 1000));
regionIn.put("cBatch", order_code);
return regionIn;
}
public static JSONObject buildRegionOut(JSONObject task, RegionOutType regionOutType) {
JSONObject detail = WQL.getWO("TASK_UTILS").addParam("flag", "1").addParam("vd_id", task.getString("group_id")).process().uniqueResult(0);
JSONObject regionIn = new JSONObject();
regionIn.put("id", IdUtil.getSnowflake(1L, 1L).nextId());
regionIn.put("cCode", CodeUtil.getNewCode("IN_STORE_CODE"));
regionIn.put("dDate", DateUtil.now());
String material_code = detail.getString("material_code");
String order_code = detail.getString("order_code");
regionIn.put("cMocode", order_code);
regionIn.put("cInvCode", regionOutType.value() + material_code);
regionIn.put("iQuantity", String.format("%.3f", detail.getDoubleValue("vd_weight") / 1000));
regionIn.put("iNum", detail.getString("qty"));
regionIn.put("iinvexchrate", String.format("%.5f", detail.getDoubleValue("material_weight") / 1000));
regionIn.put("cBatch", order_code);
return regionIn;
}
}