Browse Source

更新

master
张江玮 2 years ago
parent
commit
91a07d3ae8
  1. 8
      lms/nladmin-system/src/main/java/org/nl/wms/ext/acs/rest/AcsToWmsController.java
  2. 3
      lms/nladmin-system/src/main/java/org/nl/wms/ext/acs/service/AcsToWmsService.java
  3. 4
      lms/nladmin-system/src/main/java/org/nl/wms/ext/acs/service/WmsToAcsService.java
  4. 60
      lms/nladmin-system/src/main/java/org/nl/wms/ext/acs/service/impl/AcsToWmsServiceImpl.java
  5. 6
      lms/nladmin-system/src/main/java/org/nl/wms/ext/acs/service/impl/WmsToAcsServiceImpl.java
  6. 23
      lms/nladmin-system/src/main/java/org/nl/wms/ext/acs/wql/ACS_TO_WMS.wql
  7. 2
      lms/nladmin-system/src/main/java/org/nl/wms/pdm/service/impl/WorkorderServiceImpl.java
  8. 3
      lms/nladmin-system/src/main/java/org/nl/wms/sch/manage/RegionInType.java
  9. 1
      lms/nladmin-system/src/main/java/org/nl/wms/sch/task/call/empty/FJCallEmptyTask.java
  10. 1
      lms/nladmin-system/src/main/java/org/nl/wms/sch/task/call/empty/wql/CALL_EMPTY_TASK.wql
  11. 10
      lms/nladmin-system/src/main/java/org/nl/wms/sch/task/send/material/FJSendMaterialTask.java
  12. 12
      lms/nladmin-system/src/main/java/org/nl/wms/sch/task/send/material/HLSendMaterialTask.java
  13. 15
      lms/nladmin-system/src/main/java/org/nl/wms/sch/task/send/material/wql/SEND_MATERIAL_TASK.wql
  14. 11
      lms/nladmin-system/src/main/java/org/nl/wms/sch/task/to/pack/BTHCToPackageTask.java
  15. 11
      lms/nladmin-system/src/main/java/org/nl/wms/sch/task/to/pack/FJToPackageTask.java
  16. 38
      lms/nladmin-system/src/main/java/org/nl/wms/sch/task/util/TaskUtils.java
  17. 8
      lms/nladmin-system/src/main/java/org/nl/wms/sch/task/util/wql/TASK_UTILS.wql

8
lms/nladmin-system/src/main/java/org/nl/wms/ext/acs/rest/AcsToWmsController.java

@ -201,4 +201,12 @@ public class AcsToWmsController {
public ResponseEntity<Object> outKiln(@RequestBody JSONObject whereJson) {
return new ResponseEntity<>(acsToWmsService.outKiln(whereJson), HttpStatus.OK);
}
@PostMapping("/mark")
@Log("打印唛头")
@ApiOperation("打印唛头")
@SaIgnore
public ResponseEntity<Object> mark(@RequestBody JSONObject whereJson) {
return new ResponseEntity<>(acsToWmsService.mark(whereJson), HttpStatus.OK);
}
}

3
lms/nladmin-system/src/main/java/org/nl/wms/ext/acs/service/AcsToWmsService.java

@ -115,4 +115,7 @@ public interface AcsToWmsService {
JSONObject getVehicleInfo(JSONObject whereJson);
JSONObject outKiln(JSONObject whereJson);
JSONObject mark(JSONObject whereJson);
}

4
lms/nladmin-system/src/main/java/org/nl/wms/ext/acs/service/WmsToAcsService.java

@ -71,7 +71,5 @@ public interface WmsToAcsService {
JSONObject light(JSONArray whereJson);
/**
* 获取点位
*/
JSONObject writeVehicle(JSONArray whereJson);
}

60
lms/nladmin-system/src/main/java/org/nl/wms/ext/acs/service/impl/AcsToWmsServiceImpl.java

@ -42,6 +42,8 @@ import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.lang.reflect.Method;
import java.math.BigDecimal;
import java.util.Date;
import java.util.Map;
@Service
@ -249,9 +251,6 @@ public class AcsToWmsServiceImpl implements AcsToWmsService {
if (StrUtil.isBlank(weight)) {
throw new BadRequestException("重量不能为空!");
}
workorder.put("real_qty", workorder.getIntValue("real_qty") + Integer.parseInt(weight));
TaskUtils.addACSUpdateColum(workorder);
WQLObject.getWQLObject("pdm_bd_workorder").update(workorder);
WQLObject vd_table = WQLObject.getWQLObject("st_ivt_vehicle_detail");
JSONObject vd_update = new JSONObject();
@ -706,7 +705,7 @@ public class AcsToWmsServiceImpl implements AcsToWmsService {
workorder.put("unqualified_qty", unqualified_qty);
}
if (!"0".equals(workorder.getString("unqualified_qty"))) {
JSONObject regionIn = TaskUtils.buildRegionInFromWorkorder(workorder, RegionInType.FPRK);
JSONObject regionIn = TaskUtils.buildRegionInFromWorkorder(workorder);
WQLObject.getWQLObject("st_ivt_regionio").insert(regionIn);
}
String qualified_qty = jsonObject.getString("qualified_qty");
@ -948,4 +947,57 @@ public class AcsToWmsServiceImpl implements AcsToWmsService {
public JSONObject transApply(JSONObject param) {
return null;
}
@Override
public JSONObject mark(JSONObject whereJson) {
int vehicle_type = whereJson.getIntValue("vehicle_type");
if (vehicle_type == 0) {
throw new BadRequestException("载具类型不能为空!");
}
vehicle_type = vehicle_type + 2;
String vehicle_code = TaskUtils.formatVehicleCode(whereJson.getString("vehicle_code"));
if ("0000".equals(vehicle_code)) {
throw new BadRequestException("载具编码不能为空!");
}
JSONObject info = WQL
.getWO("ACS_TO_WMS")
.addParam("flag", "3")
.addParam("vehicle_type", vehicle_type)
.addParam("vehicle_code", vehicle_code)
.process()
.uniqueResult(0);
if (ObjectUtil.isNotEmpty(info)) {
JSONObject data = new JSONObject();
data.put("is_package", info.getString("is_package"));
String material_code = info.getString("material_code");
data.put("order_code", material_code.substring(11, 16));
data.put("customer", material_code.substring(16, 21));
data.put("product_name", info.getString("furnace") + info.getString("material_brick_type"));
data.put("product_grade", info.getString("product_grade"));
double single_weight = info.getDoubleValue("single_weight");
data.put("single_weight", String.valueOf(single_weight));
int qty = info.getIntValue("qty");
data.put("qty", String.valueOf(qty));
int weight = info.getIntValue("weight");
if (weight == 0) {
weight = Math.toIntExact(Math.round(single_weight * qty));
}
data.put("weight", String.valueOf(weight));
data.put("date", DateUtil.format(new Date(), "yyyyMMdd"));
data.put("material_code", material_code.substring(0, 11));
data.put("brick_type", info.getString("brick_type"));
JSONObject result = new JSONObject();
result.put("status", HttpStatus.OK.value());
result.put("message", "信息已下发!");
result.put("data", data);
return result;
} else {
throw new BadRequestException("[" + VehicleType.get(String.valueOf(vehicle_type)).label() + "] [" + vehicle_code + "] 无信息!");
}
}
}

6
lms/nladmin-system/src/main/java/org/nl/wms/ext/acs/service/impl/WmsToAcsServiceImpl.java

@ -72,4 +72,10 @@ public class WmsToAcsServiceImpl implements WmsToAcsService {
return AcsUtil.notifyAcs(api, whereJson);
}
@Override
public JSONObject writeVehicle(JSONArray whereJson) {
String api = "api/wms/writeVehicle";
return AcsUtil.notifyAcs(api, whereJson);
}
}

23
lms/nladmin-system/src/main/java/org/nl/wms/ext/acs/wql/ACS_TO_WMS.wql

@ -73,3 +73,26 @@
ENDSELECT
ENDQUERY
ENDIF
IF 输入.flag = "3"
QUERY
SELECT
vd.is_package,
material.material_code,
material.furnace,
material.material_brick_type,
material.product_grade,
material.weight AS single_weight,
vd.qty,
vd.weight,
material.brick_type
FROM
st_ivt_vehicle_detail vd
LEFT JOIN md_me_materialbase material ON vd.material_id = material.material_id
WHERE
vd.is_delete = '0'
AND vd.vehicle_type = 输入.vehicle_type
AND vd.vehicle_code = 输入.vehicle_code
ENDSELECT
ENDQUERY
ENDIF

2
lms/nladmin-system/src/main/java/org/nl/wms/pdm/service/impl/WorkorderServiceImpl.java

@ -441,7 +441,7 @@ public class WorkorderServiceImpl implements WorkordeService {
}
if (!"0".equals(workorder.getString("unqualified_qty"))) {
JSONObject regionIn = TaskUtils.buildRegionInFromWorkorder(workorder, RegionInType.FPRK);
JSONObject regionIn = TaskUtils.buildRegionInFromWorkorder(workorder);
WQLObject.getWQLObject("st_ivt_regionio").insert(regionIn);
}

3
lms/nladmin-system/src/main/java/org/nl/wms/sch/manage/RegionInType.java

@ -16,7 +16,8 @@ public enum RegionInType {
WGRK("完工入库", "F"),
BCPRK("半成品入库", "W"),
FPRK("废品入库", "W");
BCPFPRK("半成品废品入库", "W"),
CCPFPRK("产成品废品入库", "F");
private final String label;
private final String value;

1
lms/nladmin-system/src/main/java/org/nl/wms/sch/task/call/empty/FJCallEmptyTask.java

@ -87,6 +87,7 @@ public class FJCallEmptyTask extends AbstractAcsTask {
.addParam("flag", "6")
.addParam("vehicle_type", task.getString("vehicle_type"))
.addParam("material_id", task.getString("material_id"))
.addParam("point_code", task.getString("point_code2"))
.process()
.uniqueResult(0);
if (ObjectUtil.isNotEmpty(bthc_point)) {

1
lms/nladmin-system/src/main/java/org/nl/wms/sch/task/call/empty/wql/CALL_EMPTY_TASK.wql

@ -155,6 +155,7 @@
AND point.point_status = '1'
AND point.vehicle_type = 输入.vehicle_type
AND vd.material_id = 输入.material_id
AND vd.point_code = 输入.point_code
ENDSELECT
ENDQUERY
ENDIF

10
lms/nladmin-system/src/main/java/org/nl/wms/sch/task/send/material/FJSendMaterialTask.java

@ -308,13 +308,19 @@ public class FJSendMaterialTask extends AbstractAcsTask {
point_table.update(point2, "point_code = '" + task.getString("point_code2") + "'");
}
// todo 如果是送料任务需要发送唛头信息到包装机
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);
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"));
param.add(info);
wmsToAcsService.writeVehicle(param);
}
}
}

12
lms/nladmin-system/src/main/java/org/nl/wms/sch/task/send/material/HLSendMaterialTask.java

@ -255,6 +255,18 @@ public class HLSendMaterialTask extends AbstractAcsTask {
}
point_table.update(point2, "point_code = '" + point_code2 + "'");
}
JSONObject workorder = WQL
.getWO("SEND_MATERIAL_TASK")
.addParam("flag", "7")
.addParam("vd_id", task.getLongValue("group_id"))
.process()
.uniqueResult(0);
JSONObject workorder_update = new JSONObject();
workorder_update.put("real_qty", workorder.getIntValue("real_qty") + workorder.getIntValue("weight"));
TaskUtils.addACSUpdateColum(workorder_update);
WQLObject.getWQLObject("pdm_bd_workorder").update(workorder_update, "workorder_id = " + workorder.getString("workorder_id"));
}
}
}

15
lms/nladmin-system/src/main/java/org/nl/wms/sch/task/send/material/wql/SEND_MATERIAL_TASK.wql

@ -151,3 +151,18 @@
ENDSELECT
ENDQUERY
ENDIF
IF 输入.flag = "7"
QUERY
SELECT
vd.weight,
workorder.workorder_id
workorder.real_qty
FROM
st_ivt_vehicle_detail vd
LEFT JOIN pdm_bd_workorder workorder ON vd.workorder_id = workorder.workorder_id
WHERE
vd.vd_id = 输入.vd_id
ENDSELECT
ENDQUERY
ENDIF

11
lms/nladmin-system/src/main/java/org/nl/wms/sch/task/to/pack/BTHCToPackageTask.java

@ -10,6 +10,7 @@ import org.nl.modules.wql.WQL;
import org.nl.modules.wql.core.bean.WQLObject;
import org.nl.wms.basedata.eum.TrueOrFalse;
import org.nl.wms.common.PickType;
import org.nl.wms.ext.acs.service.WmsToAcsService;
import org.nl.wms.sch.manage.*;
import org.nl.wms.sch.task.util.TaskUtils;
import org.springframework.stereotype.Component;
@ -22,6 +23,8 @@ import org.springframework.stereotype.Component;
@Component
public class BTHCToPackageTask extends AbstractAcsTask {
private final WmsToAcsService wmsToAcsService;
@Override
public void updateTaskStatus(JSONObject task, String status) {
if (TaskStatus.EXECUTING.value().equals(status)) {
@ -227,6 +230,14 @@ public class BTHCToPackageTask extends AbstractAcsTask {
JSONObject regionIn = TaskUtils.buildRegionInFromTask(task, RegionInType.WGRK);
WQLObject.getWQLObject("st_ivt_regionio").insert(regionIn);
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"));
param.add(info);
wmsToAcsService.writeVehicle(param);
}
}
}

11
lms/nladmin-system/src/main/java/org/nl/wms/sch/task/to/pack/FJToPackageTask.java

@ -10,6 +10,7 @@ import org.nl.modules.wql.WQL;
import org.nl.modules.wql.core.bean.WQLObject;
import org.nl.wms.basedata.eum.TrueOrFalse;
import org.nl.wms.common.PickType;
import org.nl.wms.ext.acs.service.WmsToAcsService;
import org.nl.wms.sch.manage.*;
import org.nl.wms.sch.task.util.TaskUtils;
import org.springframework.stereotype.Component;
@ -22,6 +23,8 @@ import org.springframework.stereotype.Component;
@Component
public class FJToPackageTask extends AbstractAcsTask {
private final WmsToAcsService wmsToAcsService;
@Override
public void updateTaskStatus(JSONObject task, String status) {
if (TaskStatus.EXECUTING.value().equals(status)) {
@ -229,6 +232,14 @@ public class FJToPackageTask extends AbstractAcsTask {
JSONObject regionIn = TaskUtils.buildRegionInFromTask(task, RegionInType.WGRK);
WQLObject.getWQLObject("st_ivt_regionio").insert(regionIn);
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"));
param.add(info);
wmsToAcsService.writeVehicle(param);
}
}
}

38
lms/nladmin-system/src/main/java/org/nl/wms/sch/task/util/TaskUtils.java

@ -174,36 +174,46 @@ public class TaskUtils {
JSONObject regionIn = new JSONObject();
regionIn.put("id", IdUtil.getSnowflake(1L, 1L).nextId());
regionIn.put("cCode", CodeUtil.getNewCode("IN_STORE_CODE"));
regionIn.put("dDate", DateUtil.today());
regionIn.put("dDate", DateUtil.now());
regionIn.put("cVouchType", regionInType.label());
String material_code = detail.getString("material_code");
String cMocode = material_code.substring(11, 16);
regionIn.put("cMocode", cMocode);
String order_code = detail.getString("order_code");
regionIn.put("cMocode", order_code);
regionIn.put("cInvCode", regionInType.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", cMocode);
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, RegionInType regionInType) {
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 cMocode = material_code.substring(11, 16);
regionIn.put("cMocode", cMocode);
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", cMocode);
regionIn.put("cBatch", order_code);
return regionIn;
}
@ -214,13 +224,13 @@ public class TaskUtils {
regionIn.put("cCode", CodeUtil.getNewCode("IN_STORE_CODE"));
regionIn.put("dDate", DateUtil.now());
String material_code = detail.getString("material_code");
String cMocode = material_code.substring(11, 16);
regionIn.put("cMocode", cMocode);
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", cMocode);
regionIn.put("cBatch", order_code);
return regionIn;
}
}

8
lms/nladmin-system/src/main/java/org/nl/wms/sch/task/util/wql/TASK_UTILS.wql

@ -45,7 +45,8 @@
vd.qty,
vd.weight AS vd_weight,
material.weight AS material_weight,
material.material_code
material.material_code,
material.order_code
FROM
st_ivt_vehicle_detail vd
LEFT JOIN md_me_materialbase material ON vd.material_id = material.material_id
@ -60,9 +61,12 @@
SELECT
workorder.unqualified_qty AS qty,
material.material_code AS material_code,
material.weight AS material_weight
material.weight AS material_weight,
material.order_code,
device.region_code
FROM
pdm_bd_workorder workorder
LEFT JOIN pdm_bi_device device ON workorder.device_id = device.device_id
LEFT JOIN md_me_materialbase material ON workorder.material_id = material.material_id
WHERE
workorder.workorder_id = 输入.workorder_id

Loading…
Cancel
Save