add:型材出库添加强制出库功能
This commit is contained in:
@@ -9,6 +9,7 @@ import com.alibaba.fastjson.JSONArray;
|
||||
import com.alibaba.fastjson.JSONObject;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
import org.nl.modules.system.service.UserService;
|
||||
import org.nl.modules.system.service.dto.UserDto;
|
||||
import org.nl.modules.system.util.CodeUtil;
|
||||
@@ -30,6 +31,7 @@ import java.math.BigDecimal;
|
||||
import java.util.*;
|
||||
import java.util.concurrent.TimeUnit;
|
||||
import java.util.stream.Collectors;
|
||||
import java.util.stream.Stream;
|
||||
|
||||
@Service
|
||||
@RequiredArgsConstructor
|
||||
@@ -56,6 +58,7 @@ public class HandXCOutIvtServiceImpl implements HandXCOutIvtService {
|
||||
@Override
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
public Map<String, Object> queryStoragevehicle(Map<String, String> jsonObject) {
|
||||
Boolean result =Boolean.TRUE;
|
||||
JSONObject returnjo = new JSONObject();
|
||||
String storagevehicle_code = jsonObject.get("storagevehicle_code");
|
||||
String workorder_code = jsonObject.get("workorder_code");
|
||||
@@ -68,26 +71,31 @@ public class HandXCOutIvtServiceImpl implements HandXCOutIvtService {
|
||||
// 仓位属性表【ST_IVT_StructAttr】
|
||||
WQLObject PDM_BI_ProcedureOffline = WQLObject.getWQLObject("PDM_BI_ProcedureOffline");
|
||||
WQLObject pdm_bi_workorder = WQLObject.getWQLObject("pdm_bi_workorder");
|
||||
JSONObject workorder = pdm_bi_workorder.query("workorder_code='" + workorder_code + "'").uniqueResult(0);
|
||||
String workorderId = workorder.getString("workorder_id");
|
||||
|
||||
JSONObject jo = PDM_BI_ProcedureOffline.query("storagevehicle_code='"+storagevehicle_code+"'").uniqueResult(0);
|
||||
if(jo==null){
|
||||
JSONArray jo = PDM_BI_ProcedureOffline.query("storagevehicle_code='"+storagevehicle_code+"'").getResultJSONArray(0);
|
||||
if(jo==null || jo.size() == 0){
|
||||
throw new PdaRequestException("该载具"+storagevehicle_code+"无组盘记录!");
|
||||
}
|
||||
String is_send = jo.getString("is_send");
|
||||
if("1".equals(is_send)){
|
||||
throw new PdaRequestException("该载具"+storagevehicle_code+"已发货,不允许再次发货!");
|
||||
}
|
||||
String workorder_id = jo.getString("workorder_id");
|
||||
JSONObject wo = pdm_bi_workorder.query("workorder_id='"+workorder_id+"'").uniqueResult(0);
|
||||
if(wo == null ||!workorder_code.equals(wo.getString("workorder_code"))){
|
||||
throw new PdaRequestException("该载具"+storagevehicle_code+"组盘工令与所选工令不一致!");
|
||||
Optional<Object> has = jo.stream().filter(o -> workorderId.equals(((JSONObject) o).get("workorder_id"))).findAny();
|
||||
if(!has.isPresent()){
|
||||
result = Boolean.FALSE;
|
||||
}else {
|
||||
JSONObject o = (JSONObject)has.get();
|
||||
String is_send = o.getString("is_send");
|
||||
if("1".equals(is_send)){
|
||||
throw new PdaRequestException("该载具"+storagevehicle_code+"已发货,不允许再次发货!");
|
||||
}
|
||||
}
|
||||
//3、 通过托盘,查询【桶记录表】状态=入库,得到载具桶库存信息,无结果提示错误;
|
||||
JSONArray bucketrow = WQL.getWO("QPADST_OUT_SERVICE2").addParam("flag", "2").addParam("storagevehicle_code", storagevehicle_code).process().getResultJSONArray(0);
|
||||
//4通过工令查询
|
||||
JSONArray bucketrow = WQL.getWO("QPADST_OUT_SERVICE2").addParam("flag", "3").addParam("workorderId",workorderId).process().getResultJSONArray(0);
|
||||
|
||||
returnjo.put("code", "1");
|
||||
returnjo.put("desc", "查询成功");
|
||||
returnjo.put("content", bucketrow);
|
||||
returnjo.put("result", result);
|
||||
return returnjo;
|
||||
}
|
||||
|
||||
@@ -103,9 +111,6 @@ public class HandXCOutIvtServiceImpl implements HandXCOutIvtService {
|
||||
String storagevehicle_code = mst.getString("vehicle_code");
|
||||
String workorder_code = mst.getString("workorder_code");
|
||||
|
||||
if (StrUtil.isEmpty(storagevehicle_code)) {
|
||||
throw new PdaRequestException("载具不能为空!");
|
||||
}
|
||||
if (StrUtil.isEmpty(workorder_code)) {
|
||||
throw new PdaRequestException("工令不能为空!");
|
||||
}
|
||||
@@ -113,22 +118,26 @@ public class HandXCOutIvtServiceImpl implements HandXCOutIvtService {
|
||||
// 仓位属性表【ST_IVT_StructAttr】
|
||||
WQLObject PDM_BI_ProcedureOffline = WQLObject.getWQLObject("PDM_BI_ProcedureOffline");
|
||||
WQLObject pdm_bi_workorder = WQLObject.getWQLObject("pdm_bi_workorder");
|
||||
|
||||
JSONObject jo = PDM_BI_ProcedureOffline.query("storagevehicle_code='"+storagevehicle_code+"'").uniqueResult(0);
|
||||
if(jo==null){
|
||||
throw new PdaRequestException("该载具"+storagevehicle_code+"无组盘记录!");
|
||||
JSONObject workorder = pdm_bi_workorder.query("workorder_code='" + workorder_code + "'").uniqueResult(0);
|
||||
String workorderId = workorder.getString("workorder_id");
|
||||
if (StringUtils.isNotEmpty(storagevehicle_code)){
|
||||
JSONArray jo = PDM_BI_ProcedureOffline.query("storagevehicle_code='"+storagevehicle_code+"'").getResultJSONArray(0);
|
||||
if(jo==null ||jo.size() == 0){
|
||||
throw new PdaRequestException("该载具"+storagevehicle_code+"无组盘记录!");
|
||||
}
|
||||
Optional<Object> any = jo.stream().filter(o -> workorderId.equals(((JSONObject) o).get("workorder_id"))).findAny();
|
||||
if(!any.isPresent()){
|
||||
throw new PdaRequestException("该载具"+storagevehicle_code+"无对应工令的组盘信息!");
|
||||
}else {
|
||||
JSONObject o = (JSONObject)any.get();
|
||||
String is_send = o.getString("is_send");
|
||||
if("1".equals(is_send)){
|
||||
throw new PdaRequestException("该载具"+storagevehicle_code+"已发货,不允许再次发货!");
|
||||
}
|
||||
}
|
||||
}
|
||||
String is_send = jo.getString("is_send");
|
||||
if("1".equals(is_send)){
|
||||
throw new PdaRequestException("该载具"+storagevehicle_code+"已发货,不允许再次发货!");
|
||||
}
|
||||
String workorder_id = jo.getString("workorder_id");
|
||||
JSONObject wo = pdm_bi_workorder.query("workorder_id='"+workorder_id+"'").uniqueResult(0);
|
||||
String workorder_code2 = wo.getString("workorder_code");
|
||||
if(!workorder_code2.equals(workorder_code)){
|
||||
throw new PdaRequestException("该载具"+storagevehicle_code+"组盘工令与所选工令不一致!");
|
||||
}
|
||||
JSONArray dtls = jsonObject.getJSONArray("dtl");
|
||||
//4通过工令查询
|
||||
JSONArray dtls = WQL.getWO("QPADST_OUT_SERVICE2").addParam("flag", "3").addParam("workorderId",workorderId).process().getResultJSONArray(0);
|
||||
Set set = new HashSet();
|
||||
for(int i=0;i<dtls.size();i++){
|
||||
JSONObject dtl = dtls.getJSONObject(i);
|
||||
|
||||
@@ -15,6 +15,7 @@
|
||||
#################################################
|
||||
输入.flag TYPEAS s_string
|
||||
输入.storagevehicle_code TYPEAS s_string
|
||||
输入.workorderId TYPEAS s_string
|
||||
输入.bucketunique TYPEAS s_string
|
||||
输入.material_id TYPEAS s_string
|
||||
输入.height TYPEAS s_string
|
||||
@@ -98,3 +99,27 @@
|
||||
ENDSELECT
|
||||
ENDQUERY
|
||||
ENDIF
|
||||
|
||||
IF 输入.flag = "3"
|
||||
QUERY
|
||||
SELECT
|
||||
mb.material_code,
|
||||
mb.material_name,
|
||||
procedureoffline.material_id,
|
||||
procedureoffline.diskrecord_id,
|
||||
procedureoffline.pcsn,
|
||||
procedureoffline.qty,
|
||||
procedureoffline.bucketunique,
|
||||
procedureoffline.storagevehicle_code
|
||||
|
||||
FROM
|
||||
pdm_bi_procedureoffline procedureoffline
|
||||
LEFT JOIN md_me_materialbase mb ON mb.material_id = procedureoffline.material_id
|
||||
WHERE
|
||||
1 = 1
|
||||
OPTION 输入.workorderId <> ""
|
||||
procedureoffline.workorder_id = 输入.workorderId
|
||||
ENDOPTION
|
||||
ENDSELECT
|
||||
ENDQUERY
|
||||
ENDIF
|
||||
|
||||
@@ -591,11 +591,14 @@ public class StatisticalReportServiceImpl implements StatisticalReportService {
|
||||
WQLObject PDM_BI_ProcedureOffline = WQLObject.getWQLObject("PDM_BI_ProcedureOffline");
|
||||
|
||||
JSONArray array = PDM_BI_ProcedureOffline.query("storagevehicle_code='" + storagevehicle_code + "'").getResultJSONArray(0);
|
||||
if(array==null || array.size() == 0){
|
||||
String pcsn = jsonObject.getString("pcsn");
|
||||
Optional<Object> any = array.stream().filter(o -> pcsn.equals(((JSONObject) o).get("pcsn"))).findAny();
|
||||
if(!any.isPresent()){
|
||||
throw new BadRequestException("该载具"+storagevehicle_code+"无组盘记录!");
|
||||
}
|
||||
List<Object> collect1 = array.stream().filter(o -> pcsn.equals(((JSONObject) o).get("pcsn"))).collect(Collectors.toList());
|
||||
List<String> diskrecordIds = new ArrayList<>();
|
||||
for (Object o : array) {
|
||||
for (Object o : collect1) {
|
||||
JSONObject jo = (JSONObject) o;
|
||||
String is_send = jo.getString("is_send");
|
||||
if(!"1".equals(is_send)){
|
||||
|
||||
Reference in New Issue
Block a user