rev:修改回传公共代码
This commit is contained in:
@@ -44,7 +44,7 @@ public class GateWayActivityBehavior extends FlowNodeActivityBehavior<JSONObject
|
|||||||
String skipExpression = sequenceFlow.getSkipExpression();
|
String skipExpression = sequenceFlow.getSkipExpression();
|
||||||
if (StringUtils.isEmpty(skipExpression)){
|
if (StringUtils.isEmpty(skipExpression)){
|
||||||
targetSequence = sequenceFlow;
|
targetSequence = sequenceFlow;
|
||||||
break;
|
continue;
|
||||||
}
|
}
|
||||||
Boolean parse = SpelUtil.parse(entity.getT().getJSONObject("t"),skipExpression, Boolean.class);
|
Boolean parse = SpelUtil.parse(entity.getT().getJSONObject("t"),skipExpression, Boolean.class);
|
||||||
if (parse){
|
if (parse){
|
||||||
|
|||||||
@@ -13,6 +13,7 @@ import org.apache.commons.lang3.StringUtils;
|
|||||||
import org.apache.poi.ss.formula.functions.T;
|
import org.apache.poi.ss.formula.functions.T;
|
||||||
import org.nl.common.domain.exception.BadRequestException;
|
import org.nl.common.domain.exception.BadRequestException;
|
||||||
import org.nl.common.utils.ListOf;
|
import org.nl.common.utils.ListOf;
|
||||||
|
import org.nl.common.utils.MapOf;
|
||||||
import org.nl.common.utils.SpelUtil;
|
import org.nl.common.utils.SpelUtil;
|
||||||
import org.nl.wms.config_manage.form_struc.service.IBmFormStrucService;
|
import org.nl.wms.config_manage.form_struc.service.IBmFormStrucService;
|
||||||
import org.nl.wms.config_manage.form_struc.service.dao.BmFormStruc;
|
import org.nl.wms.config_manage.form_struc.service.dao.BmFormStruc;
|
||||||
@@ -71,24 +72,13 @@ public class MappingHandler extends TypeHandler<JSONObject, JSONObject> {
|
|||||||
Map<String, String> formDataSpelMap = new HashMap<>();
|
Map<String, String> formDataSpelMap = new HashMap<>();
|
||||||
JSONObject form_data = new JSONObject();
|
JSONObject form_data = new JSONObject();
|
||||||
for (String item : form_param.keySet()) {
|
for (String item : form_param.keySet()) {
|
||||||
String value = "";
|
Object struc = form_param.get(item);
|
||||||
if (formDataMapping!=null){
|
if (formDataMapping!=null){
|
||||||
JSONObject formDataMappingJson = (JSONObject) formDataMapping;
|
Object value = velueMapping(sourceFormData, item, struc, (JSONObject) formDataMapping);
|
||||||
String skip = formDataMappingJson.getString(item);
|
form_data.put(item,value);
|
||||||
if (StringUtils.isNotEmpty(skip)){
|
}else {
|
||||||
if (skip.contains("#M")){
|
form_data.put(item,"");
|
||||||
formDataSpelMap.put(item,skip);
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
if(skip.contains("#V[]")){
|
|
||||||
//直接指定参数
|
|
||||||
value = sourceFormData.getString(skip);
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
value = sourceFormData.getString(skip);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
form_data.put(item,value);
|
|
||||||
}
|
}
|
||||||
form_data.putAll(SpelUtil.parse(sourceFormData, formDataSpelMap));
|
form_data.putAll(SpelUtil.parse(sourceFormData, formDataSpelMap));
|
||||||
t.put("form_data",form_data);
|
t.put("form_data",form_data);
|
||||||
@@ -118,4 +108,57 @@ public class MappingHandler extends TypeHandler<JSONObject, JSONObject> {
|
|||||||
resultT.put("t",t);
|
resultT.put("t",t);
|
||||||
return resultT;
|
return resultT;
|
||||||
}
|
}
|
||||||
|
private Object velueMapping(JSONObject sourceFormData,String key,Object valueStruc,JSONObject formDataMapping){
|
||||||
|
Object value = null;
|
||||||
|
String skip = formDataMapping.getString(key);
|
||||||
|
if (valueStruc instanceof String){
|
||||||
|
if (StringUtils.isNotEmpty(skip)){
|
||||||
|
if (skip.contains("#M")){
|
||||||
|
value = SpelUtil.parse(sourceFormData, skip, String.class);
|
||||||
|
}else if(skip.contains("#V[")){
|
||||||
|
//直接指定参数#V['value'] = value
|
||||||
|
value = skip.split("'")[1];
|
||||||
|
}else {
|
||||||
|
value = sourceFormData.getString(skip);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (valueStruc instanceof Map){
|
||||||
|
Map<String, Object> valueStrucMap = (Map<String, Object>) valueStruc;
|
||||||
|
Map<String, Object> valueMap = new HashMap<>();
|
||||||
|
|
||||||
|
if (StringUtils.isNotEmpty(skip)){
|
||||||
|
if (skip.contains("#M")){
|
||||||
|
value = SpelUtil.parse(sourceFormData, skip, String.class);
|
||||||
|
}else if(skip.contains("#V[")){
|
||||||
|
//直接指定参数#V['value'] = value
|
||||||
|
value = skip.split("'")[1];
|
||||||
|
}else {
|
||||||
|
value = sourceFormData.getString(skip);
|
||||||
|
}
|
||||||
|
for (String innerKey : valueStrucMap.keySet()) {
|
||||||
|
valueMap.put(innerKey,value);
|
||||||
|
}
|
||||||
|
}else {
|
||||||
|
for (String innerKey : valueStrucMap.keySet()) {
|
||||||
|
Object innerValueStruc = valueStrucMap.get(innerKey);
|
||||||
|
Object innerValue = this.velueMapping(sourceFormData, innerKey, innerValueStruc, formDataMapping);
|
||||||
|
valueMap.put(innerKey,innerValue);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
value = valueMap;
|
||||||
|
}
|
||||||
|
return value;
|
||||||
|
}
|
||||||
|
|
||||||
|
public static void main(String[] args) {
|
||||||
|
|
||||||
|
String struc = "{\"Model\":{\"FBillTypeID\":\"单据类型\",\"FStockOrgId\":{\"FNumber\":\"入库日期\"}}}";
|
||||||
|
JSONObject strucJson = JSON.parseObject(struc);
|
||||||
|
JSONObject sourceData = new JSONObject(MapOf.of("Model", MapOf.of("FBillTypeID", "123", "FStockOrgId", MapOf.of("FNumber", "shouliao"))));
|
||||||
|
JSONObject formDataMapping = new JSONObject(MapOf.of("FBillTypeID", "#M['Model']['FBillTypeID']", "FStockOrgId", "#M['Model']['FStockOrgId']['FNumber']"));
|
||||||
|
MappingHandler handler = new MappingHandler();
|
||||||
|
Object result = handler.velueMapping(sourceData, "Model", strucJson.get("Model"), formDataMapping);
|
||||||
|
System.out.println(result);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -75,20 +75,29 @@ public class MdGruopDickServiceImpl extends ServiceImpl<MdGruopDickMapper, MdGru
|
|||||||
@Override
|
@Override
|
||||||
@Transactional
|
@Transactional
|
||||||
public void groupDick(JSONObject forms) {
|
public void groupDick(JSONObject forms) {
|
||||||
|
List<Map> tableData = (List)forms.remove("item");
|
||||||
|
if (CollectionUtils.isEmpty(forms)){
|
||||||
|
throw new BadRequestException("入库失败:入库明细数据不能为空");
|
||||||
|
}
|
||||||
|
JSONObject item0 = new JSONObject(tableData.get(0));
|
||||||
|
String vehicle0 = item0.getString("vehicle_code");
|
||||||
|
BmVehicleInfo vehicleInfo = iBmVehicleInfoService.vehileInfo(vehicle0);
|
||||||
|
Integer h = vehicleInfo.getH();
|
||||||
RedissonUtils.lock(()->{
|
RedissonUtils.lock(()->{
|
||||||
QueryWrapper<StIvtStructattr> query = new QueryWrapper<StIvtStructattr>()
|
QueryWrapper<StIvtStructattr> query = new QueryWrapper<StIvtStructattr>()
|
||||||
.eq("is_used", true)
|
.eq("is_used", true)
|
||||||
.eq("lock_type", StatusEnum.LOCK.code("无锁"))
|
.eq("lock_type", StatusEnum.LOCK.code("无锁"))
|
||||||
.eq("stor_code", forms.getString("stor_code"))
|
.eq("stor_code", forms.getString("stor_code"))
|
||||||
.isNull("vehicle_code");;
|
.isNull("vehicle_code");
|
||||||
|
if (h!=null){
|
||||||
|
query.ge("h",h);
|
||||||
|
}
|
||||||
int structCount = iStIvtStructattrService.count(query);
|
int structCount = iStIvtStructattrService.count(query);
|
||||||
if (structCount< DictConstantPool.STRUCT_COUNT){
|
if (structCount< DictConstantPool.STRUCT_COUNT){
|
||||||
throw new BadRequestException("入库失败:当前仓库可用库位小于"+DictConstantPool.STRUCT_COUNT);
|
throw new BadRequestException("入库失败:当前仓库可用库位小于"+DictConstantPool.STRUCT_COUNT);
|
||||||
}
|
}
|
||||||
}, StatusEnum.STRATEGY_TYPE.code("入库")+forms.getString("stor_code"),5);
|
}, StatusEnum.STRATEGY_TYPE.code("入库")+forms.getString("stor_code"),5);
|
||||||
|
|
||||||
List<Map> tableData = (List)forms.remove("item");
|
|
||||||
String now = DateUtil.now();
|
String now = DateUtil.now();
|
||||||
forms.put("create_name",SecurityUtils.getCurrentNickName());
|
forms.put("create_name",SecurityUtils.getCurrentNickName());
|
||||||
forms.put("create_time", now);
|
forms.put("create_time", now);
|
||||||
@@ -101,7 +110,6 @@ public class MdGruopDickServiceImpl extends ServiceImpl<MdGruopDickMapper, MdGru
|
|||||||
JSONObject item = new JSONObject(itemMap);
|
JSONObject item = new JSONObject(itemMap);
|
||||||
String vehicle_code = item.getString("vehicle_code");
|
String vehicle_code = item.getString("vehicle_code");
|
||||||
MdPbVehicleMater vehicleMater = item.toJavaObject(MdPbVehicleMater.class);
|
MdPbVehicleMater vehicleMater = item.toJavaObject(MdPbVehicleMater.class);
|
||||||
|
|
||||||
MdGruopDick mdGruopDick = map.get(vehicle_code);
|
MdGruopDick mdGruopDick = map.get(vehicle_code);
|
||||||
if (mdGruopDick ==null){
|
if (mdGruopDick ==null){
|
||||||
MdGruopDick dick = forms.toJavaObject(MdGruopDick.class);
|
MdGruopDick dick = forms.toJavaObject(MdGruopDick.class);
|
||||||
@@ -111,6 +119,7 @@ public class MdGruopDickServiceImpl extends ServiceImpl<MdGruopDickMapper, MdGru
|
|||||||
dick.setStatus(StatusEnum.FORM_STATUS.code("完成"));
|
dick.setStatus(StatusEnum.FORM_STATUS.code("完成"));
|
||||||
dick.setCreate_name(SecurityUtils.getCurrentNickName());
|
dick.setCreate_name(SecurityUtils.getCurrentNickName());
|
||||||
dick.setCreate_time(now);
|
dick.setCreate_time(now);
|
||||||
|
dick.setForm_data(forms.getJSONObject("form_data"));
|
||||||
map.put(vehicle_code,dick);
|
map.put(vehicle_code,dick);
|
||||||
vehicleMater.setGroup_id(dick.getId());
|
vehicleMater.setGroup_id(dick.getId());
|
||||||
}else {
|
}else {
|
||||||
@@ -118,6 +127,7 @@ public class MdGruopDickServiceImpl extends ServiceImpl<MdGruopDickMapper, MdGru
|
|||||||
mdGruopDick.setStatus(StatusEnum.FORM_STATUS.code("完成"));
|
mdGruopDick.setStatus(StatusEnum.FORM_STATUS.code("完成"));
|
||||||
mdGruopDick.setUpdate_name(SecurityUtils.getCurrentNickName());
|
mdGruopDick.setUpdate_name(SecurityUtils.getCurrentNickName());
|
||||||
mdGruopDick.setUpdate_time(now);
|
mdGruopDick.setUpdate_time(now);
|
||||||
|
mdGruopDick.setForm_data(forms.getJSONObject("form_data"));
|
||||||
}
|
}
|
||||||
vehicleMater.setId(IdUtil.getStringId());
|
vehicleMater.setId(IdUtil.getStringId());
|
||||||
vehicleMater.setCreate_time(now);
|
vehicleMater.setCreate_time(now);
|
||||||
|
|||||||
@@ -1,5 +1,8 @@
|
|||||||
package org.nl.wms.pda_manage.group.dto;
|
package org.nl.wms.pda_manage.group.dto;
|
||||||
|
|
||||||
|
import com.alibaba.fastjson.JSONObject;
|
||||||
|
import com.baomidou.mybatisplus.annotation.TableField;
|
||||||
|
import com.baomidou.mybatisplus.extension.handlers.FastjsonTypeHandler;
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
@@ -27,6 +30,11 @@ public class MaterGroupDto {
|
|||||||
* 备注
|
* 备注
|
||||||
*/
|
*/
|
||||||
private String remark;
|
private String remark;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 存储业务数据
|
||||||
|
*/
|
||||||
|
private JSONObject form_data;
|
||||||
/**
|
/**
|
||||||
* 组盘物料明细数据
|
* 组盘物料明细数据
|
||||||
*/
|
*/
|
||||||
|
|||||||
@@ -47,7 +47,7 @@ public class PdaInController {
|
|||||||
private PdaIOService pdaIOService;
|
private PdaIOService pdaIOService;
|
||||||
|
|
||||||
@PostMapping("/confirm")
|
@PostMapping("/confirm")
|
||||||
@Log("单据入库组盘确认")
|
@Log("合格证入库确认")
|
||||||
public ResponseEntity<TableDataInfo> confirm(@RequestBody PdaFormInMst pdaFormInMst) {
|
public ResponseEntity<TableDataInfo> confirm(@RequestBody PdaFormInMst pdaFormInMst) {
|
||||||
RedissonUtils.lock(() -> {
|
RedissonUtils.lock(() -> {
|
||||||
pdaInIOService.pdaInIostorUseCode(pdaFormInMst);
|
pdaInIOService.pdaInIostorUseCode(pdaFormInMst);
|
||||||
|
|||||||
@@ -1,6 +1,7 @@
|
|||||||
package org.nl.wms.pda_manage.iostorage.server.dto;
|
package org.nl.wms.pda_manage.iostorage.server.dto;
|
||||||
|
|
||||||
import com.alibaba.fastjson.JSONObject;
|
import com.alibaba.fastjson.JSONObject;
|
||||||
|
import com.fasterxml.jackson.annotation.JsonProperty;
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
import org.springframework.util.CollectionUtils;
|
import org.springframework.util.CollectionUtils;
|
||||||
|
|
||||||
@@ -36,11 +37,13 @@ public class PdaFormInMst implements Serializable {
|
|||||||
/**
|
/**
|
||||||
* 订单号
|
* 订单号
|
||||||
*/
|
*/
|
||||||
|
@JsonProperty("MONumber")
|
||||||
private String MONumber;
|
private String MONumber;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 订单号
|
* 订单号
|
||||||
*/
|
*/
|
||||||
|
@JsonProperty("MOSeq")
|
||||||
private String MOSeq;
|
private String MOSeq;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -73,22 +76,29 @@ public class PdaFormInMst implements Serializable {
|
|||||||
/**
|
/**
|
||||||
* 入库数量
|
* 入库数量
|
||||||
*/
|
*/
|
||||||
private String qty;
|
private Integer qty;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 组织
|
* 组织
|
||||||
*/
|
*/
|
||||||
|
@JsonProperty("StockOrgId")
|
||||||
private String StockOrgId;
|
private String StockOrgId;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 货主
|
* 货主
|
||||||
*/
|
*/
|
||||||
|
@JsonProperty("OwnerId_Id")
|
||||||
private String OwnerId_Id;
|
private String OwnerId_Id;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* ERP仓库
|
* ERP仓库
|
||||||
*/
|
*/
|
||||||
private String stockId;
|
private String stockId;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 入库仓库
|
||||||
|
*/
|
||||||
|
private String stor_code;
|
||||||
/**
|
/**
|
||||||
* 单重
|
* 单重
|
||||||
*/
|
*/
|
||||||
|
|||||||
@@ -10,10 +10,20 @@ import org.apache.commons.lang3.StringUtils;
|
|||||||
import org.nl.common.domain.exception.BadRequestException;
|
import org.nl.common.domain.exception.BadRequestException;
|
||||||
import org.nl.common.enums.StatusEnum;
|
import org.nl.common.enums.StatusEnum;
|
||||||
import org.nl.common.utils.*;
|
import org.nl.common.utils.*;
|
||||||
|
import org.nl.wms.base_manage.material.service.IMdMeMaterialbaseService;
|
||||||
|
import org.nl.wms.base_manage.material.service.dao.MdMeMaterialbase;
|
||||||
|
import org.nl.wms.base_manage.measure.service.IBmMeasureUnitService;
|
||||||
|
import org.nl.wms.base_manage.measure.service.dao.BmMeasureUnit;
|
||||||
|
import org.nl.wms.base_manage.vehicle.service.IBmVehicleInfoService;
|
||||||
|
import org.nl.wms.base_manage.vehicle.service.dao.BmVehicleInfo;
|
||||||
import org.nl.wms.config_manage.form_struc.service.IBmFormStrucService;
|
import org.nl.wms.config_manage.form_struc.service.IBmFormStrucService;
|
||||||
import org.nl.wms.config_manage.form_struc.service.dao.BmFormStruc;
|
import org.nl.wms.config_manage.form_struc.service.dao.BmFormStruc;
|
||||||
import org.nl.wms.external_system.erp.dto.ErpQuery;
|
import org.nl.wms.external_system.erp.dto.ErpQuery;
|
||||||
import org.nl.wms.external_system.erp.dto.ErpSec;
|
import org.nl.wms.external_system.erp.dto.ErpSec;
|
||||||
|
import org.nl.wms.md_manage.group_dick.service.IMdGruopDickService;
|
||||||
|
import org.nl.wms.pda_manage.group.dto.GroupItemData;
|
||||||
|
import org.nl.wms.pda_manage.group.dto.MaterGroupDto;
|
||||||
|
import org.nl.wms.pda_manage.group.dto.MaterItem;
|
||||||
import org.nl.wms.pda_manage.iostorage.server.dto.PdaFormInMst;
|
import org.nl.wms.pda_manage.iostorage.server.dto.PdaFormInMst;
|
||||||
import org.nl.wms.pda_manage.iostorage.server.dto.PdaFormOutDtl;
|
import org.nl.wms.pda_manage.iostorage.server.dto.PdaFormOutDtl;
|
||||||
import org.nl.wms.pda_manage.iostorage.server.dto.PdaFormOutMst;
|
import org.nl.wms.pda_manage.iostorage.server.dto.PdaFormOutMst;
|
||||||
@@ -26,6 +36,7 @@ import org.springframework.beans.BeanUtils;
|
|||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
import org.springframework.transaction.annotation.Transactional;
|
import org.springframework.transaction.annotation.Transactional;
|
||||||
|
import org.springframework.util.Assert;
|
||||||
import org.springframework.util.CollectionUtils;
|
import org.springframework.util.CollectionUtils;
|
||||||
|
|
||||||
import java.math.BigDecimal;
|
import java.math.BigDecimal;
|
||||||
@@ -37,137 +48,67 @@ import java.util.List;
|
|||||||
public class PdaInIOService {
|
public class PdaInIOService {
|
||||||
|
|
||||||
@Autowired
|
@Autowired
|
||||||
ErpSec erpSec;
|
IMdGruopDickService iMdGruopDickService;
|
||||||
|
|
||||||
@Autowired
|
@Autowired
|
||||||
IBmFormStrucService iBmFormStrucService;
|
IMdMeMaterialbaseService iMdMeMaterialbaseService;
|
||||||
@Autowired
|
@Autowired
|
||||||
IStIvtIostorinvService iStIvtIostorinvService;
|
IBmVehicleInfoService iBmVehicleInfoService;
|
||||||
|
|
||||||
@Autowired
|
@Autowired
|
||||||
IStIvtIostorinvdtlService iStIvtIostorinvdtlService;
|
IBmMeasureUnitService iBmMeasureUnitService;
|
||||||
|
|
||||||
|
|
||||||
public void pdaInIostorUseCode(PdaFormInMst pdaFormInMst) {
|
|
||||||
// PdaInIOService ioService = SpringContextHolder.getBean(PdaInIOService.class);
|
|
||||||
// //创建单据分配货位
|
|
||||||
// StIvtIostorinv ivtIostorinv = ioService.createPadIvtAndoutDispense(pdaFormOutMst);
|
|
||||||
// StIvtIostorinv byId = iStIvtIostorinvService.getById(ivtIostorinv.getId());
|
|
||||||
// //生成流程
|
|
||||||
// this.pdaTaskOpen(byId);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Transactional
|
|
||||||
public StIvtIostorinv createPadIvtAndoutDispense(PdaFormOutMst pdaFormOutMst) {
|
|
||||||
// || StringUtils.isEmpty(pdaFormOutMst.getStor_code())
|
|
||||||
if (pdaFormOutMst == null || !pdaFormOutMst.getHasChildren()) {
|
|
||||||
throw new BadRequestException("出库申请失败:请求参数异常");
|
|
||||||
}
|
|
||||||
List<PdaFormOutDtl> dtls = pdaFormOutMst.getChildren();
|
|
||||||
if (CollectionUtils.isEmpty(dtls)) {
|
|
||||||
throw new BadRequestException("出库申请失败:出库明细不能为空");
|
|
||||||
}
|
|
||||||
BmFormStruc formType = iBmFormStrucService.getFormType(pdaFormOutMst.getForm_type());
|
|
||||||
String billType = StatusEnum.IOBILL_TYPE_OUT.code(formType.getForm_desc());
|
|
||||||
|
|
||||||
StIvtIostorinv mst = new StIvtIostorinv();
|
|
||||||
mst.setId(IdUtil.getStringId());
|
|
||||||
mst.setCreate_name(SecurityUtils.getCurrentNickName());
|
|
||||||
mst.setCreate_time(DateUtil.now());
|
|
||||||
mst.setCode(CodeUtil.getNewCode("IO_CODE"));
|
|
||||||
mst.setStatus(StatusEnum.FORM_STATUS.code("生成"));
|
|
||||||
mst.setSource_form_id(pdaFormOutMst.getId());
|
|
||||||
mst.setSource_form_type(pdaFormOutMst.getForm_type());
|
|
||||||
mst.setProduct_area(mst.getForm_data().getString("product_area"));
|
|
||||||
mst.setBill_type(billType);
|
|
||||||
mst.setIn_storage(false);
|
|
||||||
mst.setForm_data(new JSONObject(MapOf.of("shipper",null,"product_area",null)));
|
|
||||||
List<StIvtIostorinvdtl> list = new ArrayList<>();
|
|
||||||
for (PdaFormOutDtl dtl : dtls) {
|
|
||||||
BigDecimal now_assign_qty = dtl.getNow_assign_qty();
|
|
||||||
if (now_assign_qty==null || now_assign_qty.intValue()==0){
|
|
||||||
throw new BadRequestException("出库申请失败:当前"+dtl.getMaterial_name()+"明细申请数量为0");
|
|
||||||
}
|
|
||||||
StIvtIostorinvdtl ivtDtl = new StIvtIostorinvdtl();
|
|
||||||
ivtDtl.setSource_form_id(dtl.getId());
|
|
||||||
ivtDtl.setSource_form_type(dtl.getForm_type());
|
|
||||||
ivtDtl.setMaterial_id(dtl.getMaterial_id());
|
|
||||||
String productArea = dtl.getProduct_area();
|
|
||||||
if (StringUtils.isEmpty(productArea) || !"A1A2A3".contains(productArea)){
|
|
||||||
throw new BadRequestException("出库申请失败:明细数据车间字段未指定或不正确");
|
|
||||||
}
|
|
||||||
String storCode = dtl.getStor_code();
|
|
||||||
if (StringUtils.isEmpty(storCode)){
|
|
||||||
throw new BadRequestException("出库申请失败:明细数据仓库字段未指定");
|
|
||||||
}
|
|
||||||
HashMap map = MapOf.of("end_struct_code", "", "start_struct_code", "", "order", "", "product_area", productArea);
|
|
||||||
ivtDtl.setForm_data(new JSONObject(map));
|
|
||||||
ivtDtl.setQty(now_assign_qty);
|
|
||||||
ivtDtl.setPcsn(dtl.getPcsn());
|
|
||||||
ivtDtl.setStor_code(storCode);//pdaFormOutMst.getStor_code()
|
|
||||||
ivtDtl.setId(IdUtil.getStringId());
|
|
||||||
ivtDtl.setInv_id(mst.getId());
|
|
||||||
ivtDtl.setStatus(StatusEnum.FORM_STATUS.code("生成"));
|
|
||||||
list.add(ivtDtl);
|
|
||||||
}
|
|
||||||
if (CollectionUtils.isEmpty(list)){
|
|
||||||
throw new BadRequestException("出库申请失败:出库入明细不能为空");
|
|
||||||
}
|
|
||||||
iStIvtIostorinvdtlService.saveBatch(list);
|
|
||||||
iStIvtIostorinvService.save(mst);
|
|
||||||
for (StIvtIostorinvdtl stIvtIostorinvdtl : list) {
|
|
||||||
iStIvtIostorinvService.outDispense((JSONObject) JSON.toJSON(stIvtIostorinvdtl));
|
|
||||||
}
|
|
||||||
return mst;
|
|
||||||
}
|
|
||||||
|
|
||||||
private void pdaTaskOpen(StIvtIostorinv mst) {
|
|
||||||
iStIvtIostorinvService.taskOpen((JSONObject) JSONObject.toJSON(mst));
|
|
||||||
}
|
|
||||||
|
|
||||||
public PmFormData getCertificateInfo(String id) {
|
|
||||||
PmFormData result = new PmFormData();
|
|
||||||
try {
|
|
||||||
if (id.contains("OP")||id.contains("op")) {
|
|
||||||
getOpBills(id, result);
|
|
||||||
} else {
|
|
||||||
|
|
||||||
}
|
|
||||||
} catch (Exception e) {
|
|
||||||
throw new BadRequestException("未查询到对应合格证信息!");
|
|
||||||
}
|
|
||||||
return result;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
*
|
* 合格证入库
|
||||||
|
* 确认参数完整性
|
||||||
|
* 生成组盘单子
|
||||||
|
* 走组盘入库流程
|
||||||
|
* 回传代码
|
||||||
*/
|
*/
|
||||||
private void getOpBills(String id, PmFormData result) throws Exception {
|
public void pdaInIostorUseCode(PdaFormInMst mst) {
|
||||||
IdentifyInfo identifyInfo = new IdentifyInfo();
|
String materialId = mst.getMaterial_id();
|
||||||
BeanUtils.copyProperties(erpSec, identifyInfo);
|
String vehicleCode = mst.getVehicle_code();
|
||||||
K3CloudApi cloudApi = new K3CloudApi(identifyInfo);
|
String unitId = mst.getUnit_id();
|
||||||
String filterString = "FBillNo = '" + id + "'";
|
Assert.noNullElements(new Object[]{mst.getStor_code(),mst.getQty(),mst.getMaterial_code(),mst.getBar_code(), materialId,mst.getQty(),mst.getSingle_weight(),mst.getOwnerId_Id(),mst.getStockId(),mst.getStockOrgId()},"入库失败:请求参数不全");
|
||||||
ErpQuery query = new ErpQuery();
|
MaterGroupDto groupDto = new MaterGroupDto();
|
||||||
query.setFilterString(filterString);
|
groupDto.setStor_code(mst.getStor_code());
|
||||||
query.setFormId("SFC_OperationPlanning");
|
String form_type;
|
||||||
query.setFieldKeys("FBillNo,FProOrgId,FProductId,FProductName,FProSpecification,FMOQty,FMOUnitId,FOwnerId,FLot,FProDepartmentId,FStockInOrgId");
|
if (mst.getBillNo().contains("OP")||mst.getBillNo().contains("op")) {
|
||||||
query.setLimit(1);
|
form_type = "PRD_INSTOCK";
|
||||||
String jsonString = JSON.toJSONString(query);
|
}else {
|
||||||
List<List<Object>> lists = cloudApi.executeBillQuery(jsonString);
|
form_type = "STK_InStock";
|
||||||
if (ObjectUtils.isNotEmpty(lists)) {
|
|
||||||
List<Object> dataList = lists.get(0);
|
|
||||||
if (dataList != null && !dataList.isEmpty()) {
|
|
||||||
result.setCode(dataList.get(0).toString());
|
|
||||||
result.setPrdOrgId(dataList.get(1).toString());
|
|
||||||
result.setMaterial_id(dataList.get(2).toString());
|
|
||||||
result.setMaterial_name(dataList.get(3).toString());
|
|
||||||
result.setMaterial_spec(dataList.get(4).toString());
|
|
||||||
result.setQty(new BigDecimal(dataList.get(5).toString()));
|
|
||||||
result.setUnit_id(dataList.get(6).toString());
|
|
||||||
result.setOwnerId(dataList.get(7).toString());
|
|
||||||
result.setPcsn(dataList.get(8).toString());
|
|
||||||
result.setProduct_area(dataList.get(9).toString());
|
|
||||||
//result.setStockId(dataList.get(10).toString());
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
MdMeMaterialbase meMaterialbase = iMdMeMaterialbaseService.getById(materialId);
|
||||||
|
if (meMaterialbase==null){
|
||||||
|
throw new BadRequestException("入库失败,物料id在系统中不存在");
|
||||||
|
}
|
||||||
|
BmMeasureUnit measureUnit = iBmMeasureUnitService.getById(unitId);
|
||||||
|
if (measureUnit==null){
|
||||||
|
throw new BadRequestException("入库失败,物料单位ID在系统中不存在");
|
||||||
|
}
|
||||||
|
BmVehicleInfo vehicleInfo = iBmVehicleInfoService.vehileInfo(vehicleCode);
|
||||||
|
if (vehicleInfo==null){
|
||||||
|
throw new BadRequestException("入库失败,载具编码在基础信息中不存在");
|
||||||
|
}
|
||||||
|
groupDto.setSource_form_type(form_type);
|
||||||
|
groupDto.setSource_form_id(mst.getBar_code());
|
||||||
|
groupDto.setForm_data((JSONObject) JSONObject.toJSON(mst));
|
||||||
|
MaterItem materItem = new MaterItem();
|
||||||
|
materItem.setMaterial_id(materialId);
|
||||||
|
materItem.setMaterial_code(mst.getMaterial_code());
|
||||||
|
materItem.setMaterial_name(mst.getMaterial_name());
|
||||||
|
materItem.setMaterial_spec(mst.getMaterial_spec());
|
||||||
|
materItem.setQty(mst.getQty());
|
||||||
|
materItem.setPcsn(mst.getPcsn());
|
||||||
|
materItem.setVehicle_code(vehicleCode);
|
||||||
|
materItem.setSingle_weight(mst.getSingle_weight());
|
||||||
|
materItem.setUnit_id(unitId);
|
||||||
|
materItem.setStor_code(mst.getStor_code());
|
||||||
|
GroupItemData groupItemData = new GroupItemData();
|
||||||
|
groupItemData.setSingle_weight(mst.getSingle_weight());
|
||||||
|
groupItemData.setFMoBillNo(mst.getBillNo());
|
||||||
|
materItem.setForm_data(groupItemData);
|
||||||
|
groupDto.setItem(ListOf.of(materItem));
|
||||||
|
iMdGruopDickService.groupDick((JSONObject) JSONObject.toJSON(groupDto));
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user