fix:原料入库
This commit is contained in:
@@ -4,6 +4,7 @@ import com.alibaba.fastjson.JSONArray;
|
|||||||
import com.alibaba.fastjson.JSONObject;
|
import com.alibaba.fastjson.JSONObject;
|
||||||
import lombok.RequiredArgsConstructor;
|
import lombok.RequiredArgsConstructor;
|
||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
|
import org.apache.commons.lang3.StringUtils;
|
||||||
import org.nl.common.base.TableDataInfo;
|
import org.nl.common.base.TableDataInfo;
|
||||||
import org.nl.common.domain.query.PageQuery;
|
import org.nl.common.domain.query.PageQuery;
|
||||||
import org.nl.common.logging.annotation.Log;
|
import org.nl.common.logging.annotation.Log;
|
||||||
|
|||||||
@@ -13,6 +13,7 @@ import com.baomidou.mybatisplus.core.metadata.IPage;
|
|||||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
|
import org.apache.commons.lang3.StringUtils;
|
||||||
import org.nl.common.domain.query.PageQuery;
|
import org.nl.common.domain.query.PageQuery;
|
||||||
import org.nl.common.exception.BadRequestException;
|
import org.nl.common.exception.BadRequestException;
|
||||||
import org.nl.common.utils.IdUtil;
|
import org.nl.common.utils.IdUtil;
|
||||||
@@ -262,6 +263,7 @@ public class StructattrServiceImpl extends ServiceImpl<StructattrMapper, Structa
|
|||||||
.set(Structattr::getInv_type, jsonObject.getString("inv_type"))
|
.set(Structattr::getInv_type, jsonObject.getString("inv_type"))
|
||||||
.set(Structattr::getStoragevehicle_code, jsonObject.getString("storagevehicle_code"))
|
.set(Structattr::getStoragevehicle_code, jsonObject.getString("storagevehicle_code"))
|
||||||
.set(Structattr::getLock_type, IOSEnum.LOCK_TYPE.code("未锁定"))
|
.set(Structattr::getLock_type, IOSEnum.LOCK_TYPE.code("未锁定"))
|
||||||
|
.set(StringUtils.isNotBlank(jsonObject.getString("occupancy_state")),Structattr::getOccupancy_state, jsonObject.getString("occupancy_state"))
|
||||||
.eq(Structattr::getStruct_code, jsonObject.getString("struct_code"))
|
.eq(Structattr::getStruct_code, jsonObject.getString("struct_code"))
|
||||||
);
|
);
|
||||||
break;
|
break;
|
||||||
|
|||||||
@@ -0,0 +1,44 @@
|
|||||||
|
package org.nl.wms.decision_manage.service.strategyConfig.decisioner.impl.diy;
|
||||||
|
|
||||||
|
import com.alibaba.fastjson.JSONObject;
|
||||||
|
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
||||||
|
import lombok.extern.slf4j.Slf4j;
|
||||||
|
import org.nl.wms.basedata_manage.service.IStructattrService;
|
||||||
|
import org.nl.wms.basedata_manage.service.dao.Structattr;
|
||||||
|
import org.nl.wms.decision_manage.service.strategyConfig.decisioner.Decisioner;
|
||||||
|
import org.nl.wms.warehouse_manage.enums.IOSEnum;
|
||||||
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
|
import org.springframework.stereotype.Service;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 原料出库规则
|
||||||
|
* @Author: zhengxuming
|
||||||
|
* @Date: 2025年7月29日14:11:10
|
||||||
|
*/
|
||||||
|
@Slf4j
|
||||||
|
@Service("rawInRuleHandle")
|
||||||
|
public class RawInRuleHandle extends Decisioner<Structattr, JSONObject> {
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 出入库明细服务
|
||||||
|
*/
|
||||||
|
@Autowired
|
||||||
|
private IStructattrService iStructattrService;
|
||||||
|
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public List<Structattr> handler(List<Structattr> list, JSONObject param) {
|
||||||
|
QueryWrapper<Structattr> query = new QueryWrapper<Structattr>()
|
||||||
|
.eq("is_used", true)
|
||||||
|
.eq("lock_type", IOSEnum.LOCK_TYPE.code("未锁定"))
|
||||||
|
.eq("sect_code", param.getString("sect_code"))
|
||||||
|
.isNotNull("storagevehicle_code")
|
||||||
|
.isNull("Task_code")
|
||||||
|
.eq("occupancy_state",2)
|
||||||
|
.orderByAsc("update_time");
|
||||||
|
List<Structattr> querylList = iStructattrService.list(query);
|
||||||
|
return querylList;
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -5,9 +5,13 @@ import cn.dev33.satoken.annotation.SaIgnore;
|
|||||||
import com.alibaba.fastjson.JSONObject;
|
import com.alibaba.fastjson.JSONObject;
|
||||||
import lombok.RequiredArgsConstructor;
|
import lombok.RequiredArgsConstructor;
|
||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
|
import org.apache.commons.collections4.CollectionUtils;
|
||||||
|
import org.apache.commons.lang3.StringUtils;
|
||||||
import org.nl.common.base.TableDataInfo;
|
import org.nl.common.base.TableDataInfo;
|
||||||
import org.nl.common.logging.annotation.Log;
|
import org.nl.common.logging.annotation.Log;
|
||||||
import org.nl.wms.basedata_manage.service.dao.MdMeMaterialbase;
|
import org.nl.wms.basedata_manage.service.dao.MdMeMaterialbase;
|
||||||
|
import org.nl.wms.pda_manage.ios_manage.dto.ZwConfirmInDto;
|
||||||
|
import org.nl.wms.pda_manage.ios_manage.dto.ZwConfirmInParamDto;
|
||||||
import org.nl.wms.pda_manage.ios_manage.service.PdaIosInService;
|
import org.nl.wms.pda_manage.ios_manage.service.PdaIosInService;
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
import org.springframework.http.HttpStatus;
|
import org.springframework.http.HttpStatus;
|
||||||
@@ -106,9 +110,16 @@ public class PdaIosInController {
|
|||||||
|
|
||||||
@PostMapping("/zwConfirmIn")
|
@PostMapping("/zwConfirmIn")
|
||||||
@Log("中钨组盘入库确认")
|
@Log("中钨组盘入库确认")
|
||||||
public ResponseEntity<Object> zwConfirmIn(@RequestBody JSONObject whereJson) {
|
public ResponseEntity<Object> zwConfirmIn(@RequestBody ZwConfirmInDto dto) {
|
||||||
assertNotBlankJson(whereJson, "请求参数不能为空", "vehicle_code", "site_code");
|
if(CollectionUtils.isEmpty(dto.getParamList())){
|
||||||
return new ResponseEntity<>(pdaIosInService.zwConfirmIn(whereJson), HttpStatus.OK);
|
throw new IllegalArgumentException("请传入参数!");
|
||||||
|
}
|
||||||
|
for(ZwConfirmInParamDto paramDto : dto.getParamList()){
|
||||||
|
if(StringUtils.isBlank(paramDto.getVehicle_code())||StringUtils.isBlank(paramDto.getSite_code()))
|
||||||
|
throw new IllegalArgumentException("载具且卸货区点位不能为空!");
|
||||||
|
}
|
||||||
|
|
||||||
|
return new ResponseEntity<>(pdaIosInService.zwConfirmIn(dto), HttpStatus.OK);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -0,0 +1,10 @@
|
|||||||
|
package org.nl.wms.pda_manage.ios_manage.dto;
|
||||||
|
|
||||||
|
import lombok.Data;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
@Data
|
||||||
|
public class ZwConfirmInDto {
|
||||||
|
private List<ZwConfirmInParamDto> paramList;
|
||||||
|
}
|
||||||
@@ -0,0 +1,9 @@
|
|||||||
|
package org.nl.wms.pda_manage.ios_manage.dto;
|
||||||
|
|
||||||
|
import lombok.Data;
|
||||||
|
|
||||||
|
@Data
|
||||||
|
public class ZwConfirmInParamDto {
|
||||||
|
private String site_code;
|
||||||
|
private String vehicle_code;
|
||||||
|
}
|
||||||
@@ -4,6 +4,7 @@ import com.alibaba.fastjson.JSONObject;
|
|||||||
import org.nl.common.base.TableDataInfo;
|
import org.nl.common.base.TableDataInfo;
|
||||||
import org.nl.common.domain.vo.SelectItemVo;
|
import org.nl.common.domain.vo.SelectItemVo;
|
||||||
import org.nl.wms.basedata_manage.service.dao.MdMeMaterialbase;
|
import org.nl.wms.basedata_manage.service.dao.MdMeMaterialbase;
|
||||||
|
import org.nl.wms.pda_manage.ios_manage.dto.ZwConfirmInDto;
|
||||||
import org.nl.wms.pda_manage.util.PdaResponse;
|
import org.nl.wms.pda_manage.util.PdaResponse;
|
||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
@@ -110,13 +111,17 @@ public interface PdaIosInService {
|
|||||||
* 株洲中钨入库确认
|
* 株洲中钨入库确认
|
||||||
* 步骤1:入库确认
|
* 步骤1:入库确认
|
||||||
* 步骤2:空托盘出库
|
* 步骤2:空托盘出库
|
||||||
* @param whereJson {
|
* @param dto [{
|
||||||
* vehicle_code:载具编码
|
* vehicle_code:载具编码
|
||||||
* sect_code:库区
|
* site_code:库区
|
||||||
* }
|
* },
|
||||||
|
* {
|
||||||
|
* vehicle_code:载具编码
|
||||||
|
* site_code:库区
|
||||||
|
* }]
|
||||||
* @return PdaResponse
|
* @return PdaResponse
|
||||||
*/
|
*/
|
||||||
PdaResponse zwConfirmIn(JSONObject whereJson);
|
PdaResponse zwConfirmIn(ZwConfirmInDto dto);
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
@@ -27,6 +27,8 @@ import org.nl.wms.basedata_manage.service.dao.mapper.SectattrMapper;
|
|||||||
import org.nl.wms.basedata_manage.service.dto.MaterialQuery;
|
import org.nl.wms.basedata_manage.service.dto.MaterialQuery;
|
||||||
import org.nl.wms.basedata_manage.service.dto.StrategyStructMaterialVO;
|
import org.nl.wms.basedata_manage.service.dto.StrategyStructMaterialVO;
|
||||||
import org.nl.wms.basedata_manage.service.dto.StrategyStructParam;
|
import org.nl.wms.basedata_manage.service.dto.StrategyStructParam;
|
||||||
|
import org.nl.wms.pda_manage.ios_manage.dto.ZwConfirmInDto;
|
||||||
|
import org.nl.wms.pda_manage.ios_manage.dto.ZwConfirmInParamDto;
|
||||||
import org.nl.wms.pda_manage.ios_manage.service.PdaIosInService;
|
import org.nl.wms.pda_manage.ios_manage.service.PdaIosInService;
|
||||||
import org.nl.wms.pda_manage.ios_manage.service.PdaIosOutService;
|
import org.nl.wms.pda_manage.ios_manage.service.PdaIosOutService;
|
||||||
import org.nl.wms.pda_manage.util.PdaResponse;
|
import org.nl.wms.pda_manage.util.PdaResponse;
|
||||||
@@ -445,180 +447,297 @@ public class PdaIosInServiceImpl implements PdaIosInService {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
@Transactional
|
@Transactional
|
||||||
public PdaResponse zwConfirmIn(JSONObject whereJson) {
|
public PdaResponse zwConfirmIn(ZwConfirmInDto dto) {
|
||||||
|
//查询字典表
|
||||||
|
List<Dict> dictList = sysDictMapper.selectList(new LambdaQueryWrapper<Dict>()
|
||||||
|
.eq(Dict::getCode, "MATERIAL_MODEL_SECT"));
|
||||||
|
|
||||||
//组盘入库
|
if (CollectionUtils.isEmpty(dictList)) {
|
||||||
//根据组盘编号获取物料型号
|
throw new BadRequestException("字典MATERIAL_MODEL_SECT未配置,请核对!");
|
||||||
whereJson.put("vehicleCode", whereJson.getString("vehicle_code"));
|
|
||||||
whereJson.put("noEmptyVehicle", "1");
|
|
||||||
String material_model = getVehicleMaterial(whereJson).getString("material_model");
|
|
||||||
if(StringUtils.isEmpty(material_model)){
|
|
||||||
throw new BadRequestException("组盘的物料未配置【物料型号】!");
|
|
||||||
}
|
|
||||||
//根据物料型号匹配字典表获取入库编码
|
|
||||||
List<Dict> dictList = sysDictMapper.selectList(new LambdaQueryWrapper<Dict>()
|
|
||||||
.eq(Dict::getCode, "MATERIAL_MODEL_SECT")
|
|
||||||
.eq(Dict::getPara1, material_model));
|
|
||||||
if(CollectionUtils.isEmpty(dictList)){
|
|
||||||
throw new BadRequestException("字典MATERIAL_MODEL_SECT未配置物料类型与库区的对应关系,请核对!");
|
|
||||||
}
|
}
|
||||||
|
|
||||||
String sect_code = dictList.get(0).getValue();
|
//循环判断每个 如果有问题,则抛出异常
|
||||||
//根据库区编码获取库区id sect_id
|
String lastSchBasePoint = null;
|
||||||
List<Sectattr> sectattrList = sectattrMapper.selectList(new LambdaQueryWrapper<Sectattr>()
|
Integer priority = 0 ;
|
||||||
.eq(Sectattr::getSect_code, sect_code));
|
List<JSONObject> jsonObjectList = new ArrayList<>();
|
||||||
|
for (ZwConfirmInParamDto paramDto : dto.getParamList()) {
|
||||||
|
priority++;
|
||||||
|
//当前点位
|
||||||
|
String schBasePointString = lastSchBasePoint;
|
||||||
|
JSONObject whereJson = new JSONObject();
|
||||||
|
whereJson.put("vehicle_code", paramDto.getVehicle_code());
|
||||||
|
whereJson.put("search", paramDto.getVehicle_code());
|
||||||
|
|
||||||
|
//起点
|
||||||
|
whereJson.put("site_code", paramDto.getSite_code());
|
||||||
|
whereJson.put("noEmptyVehicle", "1");
|
||||||
|
String material_model = getVehicleMaterial(whereJson).getString("material_model");
|
||||||
|
if (StringUtils.isEmpty(material_model)) {
|
||||||
|
throw new BadRequestException("组盘的物料未配置【物料型号】!");
|
||||||
|
}
|
||||||
|
|
||||||
|
//判断每个物料是否都已经配置库区
|
||||||
|
List<Dict> dicts = dictList.stream().filter(a -> material_model.equals(a.getPara1())).collect(Collectors.toList());
|
||||||
|
if (CollectionUtils.isEmpty(dicts)) {
|
||||||
|
throw new BadRequestException("字典MATERIAL_MODEL_SECT未配置物料类型" + material_model + "与库区的对应关系,请核对!");
|
||||||
|
}
|
||||||
|
|
||||||
|
String sect_code = dicts.get(0).getValue();
|
||||||
|
//根据库区编码获取库区id sect_id
|
||||||
|
List<Sectattr> sectattrList = sectattrMapper.selectList(new LambdaQueryWrapper<Sectattr>()
|
||||||
|
.eq(Sectattr::getSect_code, sect_code));
|
||||||
|
|
||||||
|
if (CollectionUtils.isEmpty(sectattrList)) {
|
||||||
|
throw new BadRequestException("库区" + sect_code + "不存在,请核对!");
|
||||||
|
}
|
||||||
|
|
||||||
|
whereJson.put("sect_id",sectattrList.get(0).getSect_id());
|
||||||
|
|
||||||
|
//获取起点
|
||||||
|
SchBasePoint schBasePoint = iSchBasePointService
|
||||||
|
.getOne(new LambdaQueryWrapper<SchBasePoint>().eq(SchBasePoint::getVehicle_code, whereJson.get("vehicle_code")));
|
||||||
|
if (ObjectUtil.isEmpty(schBasePoint)) {
|
||||||
|
throw new BadRequestException("未找到载具所在的点位信息,请检查该载具是否绑定点位");
|
||||||
|
}
|
||||||
|
|
||||||
|
//如果是第一个,则不知道搬出来的托盘应该放哪里,因此需要计算得出,其他的则是【上一个点位】
|
||||||
|
if (StringUtils.isBlank(lastSchBasePoint)) {
|
||||||
|
LambdaQueryWrapper<SchBasePoint> queryWrapper = new LambdaQueryWrapper<>(SchBasePoint.class)
|
||||||
|
.select(SchBasePoint::getPoint_code)
|
||||||
|
.eq(SchBasePoint::getRegion_code, "YLXCQ")
|
||||||
|
.eq(SchBasePoint::getIs_used, true)
|
||||||
|
.eq(SchBasePoint::getPoint_status, 1)
|
||||||
|
.eq(SchBasePoint::getPoint_type, "1")
|
||||||
|
.orderByDesc(SchBasePoint::getOut_empty_seq);
|
||||||
|
|
||||||
|
List<SchBasePoint> schBasePointList = schBasePointMapper.selectList(queryWrapper);
|
||||||
|
if (CollectionUtils.isEmpty(schBasePointList)) {
|
||||||
|
throw new BadRequestException("原料卸车区不存在空的点位");
|
||||||
|
}
|
||||||
|
|
||||||
|
schBasePointString = schBasePointList.get(0).getPoint_code();
|
||||||
|
}
|
||||||
|
|
||||||
|
//point1为库存空托盘点
|
||||||
|
//point2为卸货区空托盘应该放置的点
|
||||||
|
//point3为入库起始点位
|
||||||
|
|
||||||
|
//起始点 对于task point3
|
||||||
|
whereJson.put ("point_code", whereJson.getString("site_code"));
|
||||||
|
|
||||||
|
//卸货区空托盘应该放置的点,对应task point2
|
||||||
|
whereJson.put("sch_base_point", schBasePointString);
|
||||||
|
whereJson.put("bill_type",StatusEnum.IOBILL_TYPE_IN.code("来料入库"));
|
||||||
|
|
||||||
|
whereJson.put("priority",priority);
|
||||||
|
|
||||||
|
jsonObjectList.add(whereJson);
|
||||||
|
//下一个的托盘放置点为本次的起点
|
||||||
|
lastSchBasePoint = whereJson.getString("site_code");
|
||||||
|
|
||||||
if(CollectionUtils.isEmpty(sectattrList)){
|
|
||||||
throw new BadRequestException("库区"+sect_code+"不存在,请核对!");
|
|
||||||
}
|
}
|
||||||
|
|
||||||
//赋值给whereJson
|
//校验没有问题,则进行入库世纪操作
|
||||||
whereJson.put("sect_id",sectattrList.get(0).getSect_id());
|
for(JSONObject whereJson:jsonObjectList){
|
||||||
|
|
||||||
|
// 预组织出入库单据实体
|
||||||
|
Map<String, Object> jsonMst = organizeInsertData(whereJson);
|
||||||
|
// 调用服务新增出入库单
|
||||||
|
String iostorinv_id = iRawAssistIStorService.insertDtl(jsonMst);
|
||||||
|
// 预组织出入库单据明细的分配数据
|
||||||
|
whereJson.put("iostorinv_id", iostorinv_id);
|
||||||
|
Map<String, Object> jsonDtl = organizeDivData(whereJson);
|
||||||
|
// 调用分配,默认自动分配库位
|
||||||
|
iRawAssistIStorService.zwInDivStruct(new JSONObject(jsonDtl));
|
||||||
|
// 下发任务
|
||||||
|
sendZwTask(whereJson);
|
||||||
|
//更新组盘表状态
|
||||||
|
mdPbGroupplateMapper.update(new GroupPlate(), new LambdaUpdateWrapper<GroupPlate>()
|
||||||
|
.set(GroupPlate::getStatus, IOSEnum.GROUP_PLATE_STATUS.code("入库"))
|
||||||
|
.eq(GroupPlate::getStoragevehicle_code, whereJson.getString("storagevehicle_code"))
|
||||||
|
.eq(GroupPlate::getStatus, IOSEnum.GROUP_PLATE_STATUS.code("组盘")));
|
||||||
|
|
||||||
//获取起点
|
|
||||||
SchBasePoint schBasePoint = iSchBasePointService
|
|
||||||
.getOne(new LambdaQueryWrapper<SchBasePoint>().eq(SchBasePoint::getVehicle_code, whereJson.get("vehicle_code")));
|
|
||||||
if (ObjectUtil.isEmpty(schBasePoint)) {
|
|
||||||
throw new BadRequestException("未找到载具所在的点位信息,请检查该载具是否绑定点位");
|
|
||||||
}
|
}
|
||||||
whereJson.put("point_code",whereJson.getString("site_code"));
|
|
||||||
// 预组织出入库单据实体
|
|
||||||
Map<String, Object> jsonMstO = organizeInsertData(whereJson);
|
|
||||||
// 调用服务新增出入库单
|
|
||||||
String iostorinv_id = iRawAssistIStorService.insertDtl(jsonMstO);
|
|
||||||
// 预组织出入库单据明细的分配数据
|
|
||||||
whereJson.put("iostorinv_id", iostorinv_id);
|
|
||||||
Map<String, Object> jsonDtl = organizeDivData(whereJson);
|
|
||||||
// 调用分配,默认自动分配库位
|
|
||||||
iRawAssistIStorService.divStruct(new JSONObject(jsonDtl));
|
|
||||||
|
|
||||||
// 组织主数据
|
|
||||||
Map<String, Object> jsonMst = new HashMap<>();
|
|
||||||
jsonMst.put("point_code", whereJson.getString("point_code"));
|
|
||||||
// 组织明细数据
|
|
||||||
IOStorInvDtl dtlDao = ioStorInvDtlMapper.selectOne(
|
|
||||||
new QueryWrapper<IOStorInvDtl>().lambda()
|
|
||||||
.eq(IOStorInvDtl::getIostorinv_id, whereJson.getString("iostorinv_id"))
|
|
||||||
);
|
|
||||||
// 查找分配明细
|
|
||||||
Map<String, Object> map = new HashMap<>();
|
|
||||||
map.put("iostorinvdtl_id",dtlDao.getIostorinvdtl_id());
|
|
||||||
List<IOStorInvDisDto> disDtl = iRawAssistIStorService.getDisDtl(map);
|
|
||||||
// 类型转换
|
|
||||||
ArrayList<LinkedHashMap> tableMater = new ArrayList<>();
|
|
||||||
disDtl.forEach(item -> {
|
|
||||||
tableMater.add(JSONObject.parseObject(JSONObject.toJSONString(item), LinkedHashMap.class));
|
|
||||||
});
|
|
||||||
jsonMst.put("tableMater", tableMater);
|
|
||||||
|
|
||||||
String point_code2 = iRawAssistIStorService.divPointNoTask(jsonMst);
|
|
||||||
|
|
||||||
//空托盘出库
|
|
||||||
// 需要计算新的siteCode 根据方案 找region_code=YLXCQ 原料卸车区的
|
|
||||||
// 已启用的 编号最大的 空的 point_type = 1 点位
|
|
||||||
LambdaQueryWrapper<SchBasePoint> queryWrapper = new LambdaQueryWrapper<>(SchBasePoint.class)
|
|
||||||
.select(SchBasePoint::getPoint_code)
|
|
||||||
.eq(SchBasePoint::getRegion_code, "YLXCQ")
|
|
||||||
.eq(SchBasePoint::getIs_used, true)
|
|
||||||
.eq(SchBasePoint::getPoint_status, 1)
|
|
||||||
.eq(SchBasePoint::getPoint_type, "1")
|
|
||||||
.orderByDesc(SchBasePoint::getOut_empty_seq);
|
|
||||||
|
|
||||||
List<SchBasePoint> schBasePointList = schBasePointMapper.selectList(queryWrapper);
|
|
||||||
if (CollectionUtils.isEmpty(schBasePointList)) {
|
|
||||||
throw new BadRequestException("原料卸车区不存在空的点位");
|
|
||||||
}
|
|
||||||
|
|
||||||
//从库区拉一个空托盘到这个点位
|
|
||||||
whereJson.put("siteCode", schBasePointList.get(0).getPoint_code());
|
|
||||||
|
|
||||||
LambdaQueryWrapper<MdMeMaterialbase> maQueryWrapper = new LambdaQueryWrapper<>();
|
|
||||||
maQueryWrapper.eq(MdMeMaterialbase::getMaterial_code, StatusEnum.VEHICLE_TYPE.code("空托盘"));
|
|
||||||
|
|
||||||
MdMeMaterialbase materDao = iMdMeMaterialbaseService.getOne(maQueryWrapper);
|
|
||||||
if (materDao == null) {
|
|
||||||
throw new BadRequestException("未找到空载具物料信息!");
|
|
||||||
}
|
|
||||||
whereJson.put("material_id", materDao.getMaterial_id());
|
|
||||||
whereJson.put("material_code", materDao.getMaterial_code());
|
|
||||||
Sectattr sectattr = iSectattrService.getOne(new LambdaQueryWrapper<>(Sectattr.class)
|
|
||||||
.eq(Sectattr::getSect_id, whereJson.getString("sect_id"))
|
|
||||||
.eq(Sectattr::getIs_used, BaseDataEnum.IS_YES_NOT.code("是"))
|
|
||||||
);
|
|
||||||
if (ObjectUtil.isEmpty(sectattr)) {
|
|
||||||
throw new BadRequestException("该仓位所属的库区已禁用,请先启用该库区!");
|
|
||||||
}
|
|
||||||
BsrealStorattr storeDao = iSrealStorattrService.getById(sectattr.getStor_id());
|
|
||||||
whereJson.put("stor_code", storeDao.getStor_code());
|
|
||||||
whereJson.put("sect_code", sectattr.getSect_code());
|
|
||||||
StrategyStructParam strategyStructParam = StrategyStructParam.builder()
|
|
||||||
.ioType(whereJson.getString(StatusEnum.STRATEGY_TYPE.code("出库")))
|
|
||||||
.sect_code(whereJson.getString("sect_code"))
|
|
||||||
.stor_code(whereJson.getString("stor_code"))
|
|
||||||
.material_id(whereJson.getString("material_id"))
|
|
||||||
.material_code(whereJson.getString("material_code"))
|
|
||||||
.qty(new BigDecimal(1))
|
|
||||||
.stragegyType("1")
|
|
||||||
.build();
|
|
||||||
List<StrategyStructMaterialVO> structList = iStructattrService.outBoundSectDiv(strategyStructParam);
|
|
||||||
if (CollectionUtils.isEmpty(structList)) {
|
|
||||||
throw new BadRequestException("无可用空托盘库存!");
|
|
||||||
}
|
|
||||||
|
|
||||||
//创建任务
|
|
||||||
JSONObject taskForm = new JSONObject();
|
|
||||||
taskForm.put("task_type", IOSConstant.IN_BILL_TASK);
|
|
||||||
taskForm.put("config_code", IOSConstant.IN_BILL_TASK);
|
|
||||||
taskForm.put("TaskCode", CodeUtil.getNewCode("TASK_CODE"));
|
|
||||||
//空托盘出库库位
|
|
||||||
taskForm.put("point_code1", structList.get(0).getStruct_code());
|
|
||||||
//拉到卸货区空余的位置
|
|
||||||
taskForm.put("point_code2", whereJson.getString("siteCode"));
|
|
||||||
|
|
||||||
taskForm.put("point_code3", whereJson.getString("site_code"));
|
|
||||||
//计算入库库位
|
|
||||||
taskForm.put("point_code4", point_code2);
|
|
||||||
taskForm.put("vehicle_code", structList.get(0).getStoragevehicle_code());
|
|
||||||
InBillTask inBillTask = SpringContextHolder.getBean("InBillTask");
|
|
||||||
String task_id = inBillTask.create(taskForm);
|
|
||||||
|
|
||||||
Set<String> vehicleCodeSet = structList.stream()
|
|
||||||
.map(StrategyStructMaterialVO::getStoragevehicle_code)
|
|
||||||
.collect(Collectors.toSet());
|
|
||||||
mdPbGroupplateMapper.update(
|
|
||||||
new GroupPlate(),
|
|
||||||
new LambdaUpdateWrapper<GroupPlate>()
|
|
||||||
.set(GroupPlate::getStatus, IOSEnum.GROUP_PLATE_STATUS.code("出库"))
|
|
||||||
.eq(GroupPlate::getStatus, IOSEnum.GROUP_PLATE_STATUS.code("入库"))
|
|
||||||
.in(GroupPlate::getStoragevehicle_code, vehicleCodeSet)
|
|
||||||
);
|
|
||||||
|
|
||||||
//锁定仓位
|
|
||||||
Set<String> structCodeSet = structList.stream()
|
|
||||||
.map(StrategyStructMaterialVO::getStruct_code)
|
|
||||||
.collect(Collectors.toSet());
|
|
||||||
iStructattrService.update(
|
|
||||||
new LambdaUpdateWrapper<Structattr>()
|
|
||||||
.set(Structattr::getInv_id, null)
|
|
||||||
.set(Structattr::getInv_code, null)
|
|
||||||
.set(Structattr::getInv_type, null)
|
|
||||||
.set(Structattr::getLock_type, IOSEnum.LOCK_TYPE.code("出库锁"))
|
|
||||||
.in(Structattr::getStruct_code, structCodeSet)
|
|
||||||
);
|
|
||||||
|
|
||||||
|
|
||||||
//分配明细表更新任务相关数据
|
|
||||||
IOStorInvDis dis = new IOStorInvDis();
|
|
||||||
dis.setIostorinvdis_id(dtlDao.getIostorinvdtl_id());
|
|
||||||
dis.setWork_status(IOSEnum.INBILL_DIS_STATUS.code("生成"));
|
|
||||||
dis.setTask_id(task_id);
|
|
||||||
dis.setIs_issued(BaseDataEnum.IS_YES_NOT.code("是"));
|
|
||||||
dis.setPoint_code(whereJson.getString("site_code"));
|
|
||||||
ioStorInvDisMapper.updateById(dis);
|
|
||||||
|
|
||||||
return PdaResponse.requestOk();
|
return PdaResponse.requestOk();
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// @Override
|
||||||
|
// @Transactional
|
||||||
|
// public PdaResponse zwConfirmIn(JSONObject whereJson) {
|
||||||
|
|
||||||
|
// //组盘入库
|
||||||
|
// //根据组盘编号获取物料型号
|
||||||
|
// whereJson.put("vehicleCode", whereJson.getString("vehicle_code"));
|
||||||
|
// whereJson.put("noEmptyVehicle", "1");
|
||||||
|
// String material_model = getVehicleMaterial(whereJson).getString("material_model");
|
||||||
|
// if(StringUtils.isEmpty(material_model)){
|
||||||
|
// throw new BadRequestException("组盘的物料未配置【物料型号】!");
|
||||||
|
// }
|
||||||
|
// //根据物料型号匹配字典表获取入库编码
|
||||||
|
// List<Dict> dictList = sysDictMapper.selectList(new LambdaQueryWrapper<Dict>()
|
||||||
|
// .eq(Dict::getCode, "MATERIAL_MODEL_SECT")
|
||||||
|
// .eq(Dict::getPara1, material_model));
|
||||||
|
// if(CollectionUtils.isEmpty(dictList)){
|
||||||
|
// throw new BadRequestException("字典MATERIAL_MODEL_SECT未配置物料类型与库区的对应关系,请核对!");
|
||||||
|
// }
|
||||||
|
|
||||||
|
// String sect_code = dictList.get(0).getValue();
|
||||||
|
// //根据库区编码获取库区id sect_id
|
||||||
|
// List<Sectattr> sectattrList = sectattrMapper.selectList(new LambdaQueryWrapper<Sectattr>()
|
||||||
|
// .eq(Sectattr::getSect_code, sect_code));
|
||||||
|
|
||||||
|
// if(CollectionUtils.isEmpty(sectattrList)){
|
||||||
|
// throw new BadRequestException("库区"+sect_code+"不存在,请核对!");
|
||||||
|
// }
|
||||||
|
|
||||||
|
// //赋值给whereJson
|
||||||
|
// whereJson.put("sect_id",sectattrList.get(0).getSect_id());
|
||||||
|
|
||||||
|
// //获取起点
|
||||||
|
// SchBasePoint schBasePoint = iSchBasePointService
|
||||||
|
// .getOne(new LambdaQueryWrapper<SchBasePoint>().eq(SchBasePoint::getVehicle_code, whereJson.get("vehicle_code")));
|
||||||
|
// if (ObjectUtil.isEmpty(schBasePoint)) {
|
||||||
|
// throw new BadRequestException("未找到载具所在的点位信息,请检查该载具是否绑定点位");
|
||||||
|
// }
|
||||||
|
// whereJson.put("point_code",whereJson.getString("site_code"));
|
||||||
|
// // 预组织出入库单据实体
|
||||||
|
// Map<String, Object> jsonMstO = organizeInsertData(whereJson);
|
||||||
|
// // 调用服务新增出入库单
|
||||||
|
// String iostorinv_id = iRawAssistIStorService.insertDtl(jsonMstO);
|
||||||
|
// // 预组织出入库单据明细的分配数据
|
||||||
|
// whereJson.put("iostorinv_id", iostorinv_id);
|
||||||
|
// Map<String, Object> jsonDtl = organizeDivData(whereJson);
|
||||||
|
// // 调用分配,默认自动分配库位
|
||||||
|
// iRawAssistIStorService.divStruct(new JSONObject(jsonDtl));
|
||||||
|
|
||||||
|
// // 组织主数据
|
||||||
|
// Map<String, Object> jsonMst = new HashMap<>();
|
||||||
|
// jsonMst.put("point_code", whereJson.getString("point_code"));
|
||||||
|
// // 组织明细数据
|
||||||
|
// IOStorInvDtl dtlDao = ioStorInvDtlMapper.selectOne(
|
||||||
|
// new QueryWrapper<IOStorInvDtl>().lambda()
|
||||||
|
// .eq(IOStorInvDtl::getIostorinv_id, whereJson.getString("iostorinv_id"))
|
||||||
|
// );
|
||||||
|
// // 查找分配明细
|
||||||
|
// Map<String, Object> map = new HashMap<>();
|
||||||
|
// map.put("iostorinvdtl_id",dtlDao.getIostorinvdtl_id());
|
||||||
|
// List<IOStorInvDisDto> disDtl = iRawAssistIStorService.getDisDtl(map);
|
||||||
|
// // 类型转换
|
||||||
|
// ArrayList<LinkedHashMap> tableMater = new ArrayList<>();
|
||||||
|
// disDtl.forEach(item -> {
|
||||||
|
// tableMater.add(JSONObject.parseObject(JSONObject.toJSONString(item), LinkedHashMap.class));
|
||||||
|
// });
|
||||||
|
// jsonMst.put("tableMater", tableMater);
|
||||||
|
|
||||||
|
// String point_code2 = iRawAssistIStorService.divPointNoTask(jsonMst);
|
||||||
|
|
||||||
|
// //空托盘出库
|
||||||
|
// // 需要计算新的siteCode 根据方案 找region_code=YLXCQ 原料卸车区的
|
||||||
|
// // 已启用的 编号最大的 空的 point_type = 1 点位
|
||||||
|
// LambdaQueryWrapper<SchBasePoint> queryWrapper = new LambdaQueryWrapper<>(SchBasePoint.class)
|
||||||
|
// .select(SchBasePoint::getPoint_code)
|
||||||
|
// .eq(SchBasePoint::getRegion_code, "YLXCQ")
|
||||||
|
// .eq(SchBasePoint::getIs_used, true)
|
||||||
|
// .eq(SchBasePoint::getPoint_status, 1)
|
||||||
|
// .eq(SchBasePoint::getPoint_type, "1")
|
||||||
|
// .orderByDesc(SchBasePoint::getOut_empty_seq);
|
||||||
|
|
||||||
|
// List<SchBasePoint> schBasePointList = schBasePointMapper.selectList(queryWrapper);
|
||||||
|
// if (CollectionUtils.isEmpty(schBasePointList)) {
|
||||||
|
// throw new BadRequestException("原料卸车区不存在空的点位");
|
||||||
|
// }
|
||||||
|
|
||||||
|
// //从库区拉一个空托盘到这个点位
|
||||||
|
// whereJson.put("siteCode", schBasePointList.get(0).getPoint_code());
|
||||||
|
|
||||||
|
// LambdaQueryWrapper<MdMeMaterialbase> maQueryWrapper = new LambdaQueryWrapper<>();
|
||||||
|
// maQueryWrapper.eq(MdMeMaterialbase::getMaterial_code, StatusEnum.VEHICLE_TYPE.code("空托盘"));
|
||||||
|
|
||||||
|
// MdMeMaterialbase materDao = iMdMeMaterialbaseService.getOne(maQueryWrapper);
|
||||||
|
// if (materDao == null) {
|
||||||
|
// throw new BadRequestException("未找到空载具物料信息!");
|
||||||
|
// }
|
||||||
|
// whereJson.put("material_id", materDao.getMaterial_id());
|
||||||
|
// whereJson.put("material_code", materDao.getMaterial_code());
|
||||||
|
// Sectattr sectattr = iSectattrService.getOne(new LambdaQueryWrapper<>(Sectattr.class)
|
||||||
|
// .eq(Sectattr::getSect_id, whereJson.getString("sect_id"))
|
||||||
|
// .eq(Sectattr::getIs_used, BaseDataEnum.IS_YES_NOT.code("是"))
|
||||||
|
// );
|
||||||
|
// if (ObjectUtil.isEmpty(sectattr)) {
|
||||||
|
// throw new BadRequestException("该仓位所属的库区已禁用,请先启用该库区!");
|
||||||
|
// }
|
||||||
|
// BsrealStorattr storeDao = iSrealStorattrService.getById(sectattr.getStor_id());
|
||||||
|
// whereJson.put("stor_code", storeDao.getStor_code());
|
||||||
|
// whereJson.put("sect_code", sectattr.getSect_code());
|
||||||
|
// StrategyStructParam strategyStructParam = StrategyStructParam.builder()
|
||||||
|
// .ioType(whereJson.getString(StatusEnum.STRATEGY_TYPE.code("出库")))
|
||||||
|
// .sect_code(whereJson.getString("sect_code"))
|
||||||
|
// .stor_code(whereJson.getString("stor_code"))
|
||||||
|
// .material_id(whereJson.getString("material_id"))
|
||||||
|
// .material_code(whereJson.getString("material_code"))
|
||||||
|
// .qty(new BigDecimal(1))
|
||||||
|
// .stragegyType("1")
|
||||||
|
// .build();
|
||||||
|
// List<StrategyStructMaterialVO> structList = iStructattrService.outBoundSectDiv(strategyStructParam);
|
||||||
|
// if (CollectionUtils.isEmpty(structList)) {
|
||||||
|
// throw new BadRequestException("无可用空托盘库存!");
|
||||||
|
// }
|
||||||
|
|
||||||
|
// //创建任务
|
||||||
|
// JSONObject taskForm = new JSONObject();
|
||||||
|
// taskForm.put("task_type", IOSConstant.IN_BILL_TASK);
|
||||||
|
// taskForm.put("config_code", IOSConstant.IN_BILL_TASK);
|
||||||
|
// taskForm.put("TaskCode", CodeUtil.getNewCode("TASK_CODE"));
|
||||||
|
// //空托盘出库库位
|
||||||
|
// taskForm.put("point_code1", structList.get(0).getStruct_code());
|
||||||
|
// //拉到卸货区空余的位置
|
||||||
|
// taskForm.put("point_code2", whereJson.getString("siteCode"));
|
||||||
|
|
||||||
|
// taskForm.put("point_code3", whereJson.getString("site_code"));
|
||||||
|
// //计算入库库位
|
||||||
|
// taskForm.put("point_code4", point_code2);
|
||||||
|
// taskForm.put("vehicle_code", structList.get(0).getStoragevehicle_code());
|
||||||
|
// InBillTask inBillTask = SpringContextHolder.getBean("InBillTask");
|
||||||
|
// String task_id = inBillTask.create(taskForm);
|
||||||
|
|
||||||
|
// Set<String> vehicleCodeSet = structList.stream()
|
||||||
|
// .map(StrategyStructMaterialVO::getStoragevehicle_code)
|
||||||
|
// .collect(Collectors.toSet());
|
||||||
|
// mdPbGroupplateMapper.update(
|
||||||
|
// new GroupPlate(),
|
||||||
|
// new LambdaUpdateWrapper<GroupPlate>()
|
||||||
|
// .set(GroupPlate::getStatus, IOSEnum.GROUP_PLATE_STATUS.code("出库"))
|
||||||
|
// .eq(GroupPlate::getStatus, IOSEnum.GROUP_PLATE_STATUS.code("入库"))
|
||||||
|
// .in(GroupPlate::getStoragevehicle_code, vehicleCodeSet)
|
||||||
|
// );
|
||||||
|
|
||||||
|
// //锁定仓位
|
||||||
|
// Set<String> structCodeSet = structList.stream()
|
||||||
|
// .map(StrategyStructMaterialVO::getStruct_code)
|
||||||
|
// .collect(Collectors.toSet());
|
||||||
|
// iStructattrService.update(
|
||||||
|
// new LambdaUpdateWrapper<Structattr>()
|
||||||
|
// .set(Structattr::getInv_id, null)
|
||||||
|
// .set(Structattr::getInv_code, null)
|
||||||
|
// .set(Structattr::getInv_type, null)
|
||||||
|
// .set(Structattr::getLock_type, IOSEnum.LOCK_TYPE.code("出库锁"))
|
||||||
|
// .in(Structattr::getStruct_code, structCodeSet)
|
||||||
|
// );
|
||||||
|
|
||||||
|
|
||||||
|
// //分配明细表更新任务相关数据
|
||||||
|
// IOStorInvDis dis = new IOStorInvDis();
|
||||||
|
// dis.setIostorinvdis_id(dtlDao.getIostorinvdtl_id());
|
||||||
|
// dis.setWork_status(IOSEnum.INBILL_DIS_STATUS.code("生成"));
|
||||||
|
// dis.setTask_id(task_id);
|
||||||
|
// dis.setIs_issued(BaseDataEnum.IS_YES_NOT.code("是"));
|
||||||
|
// dis.setPoint_code(whereJson.getString("site_code"));
|
||||||
|
// ioStorInvDisMapper.updateById(dis);
|
||||||
|
|
||||||
|
// return PdaResponse.requestOk();
|
||||||
|
// }
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 组织入库插入数据
|
* 组织入库插入数据
|
||||||
* @param whereJson {
|
* @param whereJson {
|
||||||
@@ -651,7 +770,9 @@ public class PdaIosInServiceImpl implements PdaIosInService {
|
|||||||
jsonMst.put("bill_status", IOSEnum.BILL_STATUS.code("生成"));
|
jsonMst.put("bill_status", IOSEnum.BILL_STATUS.code("生成"));
|
||||||
jsonMst.put("total_qty", total_qty);
|
jsonMst.put("total_qty", total_qty);
|
||||||
jsonMst.put("detail_count", 1);
|
jsonMst.put("detail_count", 1);
|
||||||
jsonMst.put("bill_type", StatusEnum.IOBILL_TYPE_IN.code("生产入库"));
|
if(!jsonMst.containsKey("bill_type")) {
|
||||||
|
jsonMst.put("bill_type", StatusEnum.IOBILL_TYPE_IN.code("来料入库"));
|
||||||
|
}
|
||||||
jsonMst.put("biz_date", DateUtil.now());
|
jsonMst.put("biz_date", DateUtil.now());
|
||||||
// 组织明细数据
|
// 组织明细数据
|
||||||
ArrayList<HashMap> tableData = new ArrayList<>();
|
ArrayList<HashMap> tableData = new ArrayList<>();
|
||||||
@@ -745,6 +866,42 @@ public class PdaIosInServiceImpl implements PdaIosInService {
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 下发任务-中钨原料入库
|
||||||
|
* @param whereJson {
|
||||||
|
* storagevehicle_code:载具编码
|
||||||
|
* point_code:点位编码
|
||||||
|
* sect_code:库区
|
||||||
|
* iostorinv_id: id
|
||||||
|
* }
|
||||||
|
*/
|
||||||
|
private void sendZwTask(JSONObject whereJson) {
|
||||||
|
// 组织主数据
|
||||||
|
Map<String, Object> jsonMst = new HashMap<>();
|
||||||
|
jsonMst.put("bill_type",StatusEnum.IOBILL_TYPE_IN.code("来料入库"));
|
||||||
|
jsonMst.put("point_code2", whereJson.getString("sch_base_point"));
|
||||||
|
jsonMst.put("point_code3", whereJson.getString("point_code"));
|
||||||
|
jsonMst.put("priority", whereJson.getString("priority"));
|
||||||
|
jsonMst.put("vehicle_code", whereJson.getString("vehicle_code"));
|
||||||
|
// 组织明细数据
|
||||||
|
IOStorInvDtl dtlDao = ioStorInvDtlMapper.selectOne(
|
||||||
|
new QueryWrapper<IOStorInvDtl>().lambda()
|
||||||
|
.eq(IOStorInvDtl::getIostorinv_id, whereJson.getString("iostorinv_id"))
|
||||||
|
);
|
||||||
|
// 查找分配明细
|
||||||
|
Map<String, Object> map = new HashMap<>();
|
||||||
|
map.put("iostorinvdtl_id",dtlDao.getIostorinvdtl_id());
|
||||||
|
List<IOStorInvDisDto> disDtl = iRawAssistIStorService.getDisDtl(map);
|
||||||
|
// 类型转换
|
||||||
|
ArrayList<LinkedHashMap> tableMater = new ArrayList<>();
|
||||||
|
disDtl.forEach(item -> {
|
||||||
|
tableMater.add(JSONObject.parseObject(JSONObject.toJSONString(item), LinkedHashMap.class));
|
||||||
|
});
|
||||||
|
jsonMst.put("tableMater", tableMater);
|
||||||
|
|
||||||
|
iRawAssistIStorService.divPoint(jsonMst);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -28,7 +28,7 @@ public enum StatusEnum {
|
|||||||
* 出入库单据类型退货出库
|
* 出入库单据类型退货出库
|
||||||
*/
|
*/
|
||||||
IOBILL_TYPE_IN(ForkMap.of("生产入库", "10", "inStorageTask", "调拨入库", "11", "inStorageTask", "退货入库", "12", "inStorageTask", "拣选回库",
|
IOBILL_TYPE_IN(ForkMap.of("生产入库", "10", "inStorageTask", "调拨入库", "11", "inStorageTask", "退货入库", "12", "inStorageTask", "拣选回库",
|
||||||
"13", "inStorageTask", "盘点入库", "14", "inStorageTask", "托盘入库", "30", "inStorageTask", "二楼CTU入库", "80", "inStorageTask")),
|
"13", "inStorageTask", "盘点入库", "14", "inStorageTask", "托盘入库", "30", "inStorageTask", "二楼CTU入库", "80", "inStorageTask","来料入库", "1013", "inStorageTask")),
|
||||||
IOBILL_TYPE_OUT(ForkMap.of("销售出库", "20", "outStorageTask", "生产出库", "21", "outStorageTask", "调拨出库", "22", "outStorageTask",
|
IOBILL_TYPE_OUT(ForkMap.of("销售出库", "20", "outStorageTask", "生产出库", "21", "outStorageTask", "调拨出库", "22", "outStorageTask",
|
||||||
"拣选出库", "23", "conveyorOutStorageTask", "盘点出库", "24", "outStorageTask", "出库拣选", "25", "toPickPlatformTask",
|
"拣选出库", "23", "conveyorOutStorageTask", "盘点出库", "24", "outStorageTask", "出库拣选", "25", "toPickPlatformTask",
|
||||||
"退货出库", "26", "outStorageTask", "托盘出库", "40", "outStorageTask", "二楼CTU出库", "81", "inStorageTask", "二楼出库AGV搬运",
|
"退货出库", "26", "outStorageTask", "托盘出库", "40", "outStorageTask", "二楼CTU出库", "81", "inStorageTask", "二楼出库AGV搬运",
|
||||||
|
|||||||
@@ -3,6 +3,7 @@ package org.nl.wms.sch_manage.service.util.tasks.zw;
|
|||||||
import cn.hutool.core.date.DateUtil;
|
import cn.hutool.core.date.DateUtil;
|
||||||
import cn.hutool.core.util.ObjectUtil;
|
import cn.hutool.core.util.ObjectUtil;
|
||||||
import com.alibaba.fastjson.JSONObject;
|
import com.alibaba.fastjson.JSONObject;
|
||||||
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||||
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
|
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
|
||||||
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
|
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
|
||||||
import org.nl.common.exception.BadRequestException;
|
import org.nl.common.exception.BadRequestException;
|
||||||
@@ -25,11 +26,14 @@ import org.nl.wms.warehouse_manage.inAndOut.service.IInBillService;
|
|||||||
import org.nl.wms.warehouse_manage.inAndOut.service.IOutBillService;
|
import org.nl.wms.warehouse_manage.inAndOut.service.IOutBillService;
|
||||||
import org.nl.wms.warehouse_manage.inAndOut.service.dao.IOStorInvDis;
|
import org.nl.wms.warehouse_manage.inAndOut.service.dao.IOStorInvDis;
|
||||||
import org.nl.wms.warehouse_manage.inAndOut.service.dao.mapper.IOStorInvDisMapper;
|
import org.nl.wms.warehouse_manage.inAndOut.service.dao.mapper.IOStorInvDisMapper;
|
||||||
|
import org.nl.wms.warehouse_manage.service.IMdPbGroupplateService;
|
||||||
|
import org.nl.wms.warehouse_manage.service.dao.GroupPlate;
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
import org.springframework.stereotype.Component;
|
import org.springframework.stereotype.Component;
|
||||||
import org.springframework.transaction.annotation.Transactional;
|
import org.springframework.transaction.annotation.Transactional;
|
||||||
|
|
||||||
import javax.annotation.Resource;
|
import javax.annotation.Resource;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @Author: zhengxuming
|
* @Author: zhengxuming
|
||||||
@@ -55,15 +59,25 @@ public class InBillTask extends AbstractTask {
|
|||||||
private IOStorInvDisMapper ioStorInvDisMapper;
|
private IOStorInvDisMapper ioStorInvDisMapper;
|
||||||
|
|
||||||
@Resource
|
@Resource
|
||||||
private IOutBillService outBillService;
|
private IMdPbGroupplateService iMdPbGroupplateService;
|
||||||
|
|
||||||
|
@Resource
|
||||||
|
private ISchBasePointService pointService;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 仓位服务
|
||||||
|
*/
|
||||||
|
@Resource
|
||||||
|
private IStructattrService iStructattrService;
|
||||||
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public String create(JSONObject json) {
|
public String create(JSONObject json) {
|
||||||
SchBaseTask task = new SchBaseTask();
|
SchBaseTask task = new SchBaseTask();
|
||||||
task.setTask_id(IdUtil.getStringId());
|
task.setTask_id(IdUtil.getStringId());
|
||||||
task.setTask_code(json.getString("TaskCode"));
|
task.setTask_code(json.getString("task_code"));
|
||||||
task.setTask_status(TaskStatus.CREATE.getCode());
|
task.setTask_status(TaskStatus.CREATE.getCode());
|
||||||
task.setConfig_code(json.getString("task_type"));
|
task.setConfig_code(json.getString("config_code"));
|
||||||
task.setPoint_code1(json.getString("point_code1"));
|
task.setPoint_code1(json.getString("point_code1"));
|
||||||
task.setPoint_code2(json.getString("point_code2"));
|
task.setPoint_code2(json.getString("point_code2"));
|
||||||
task.setPoint_code3(json.getString("point_code3"));
|
task.setPoint_code3(json.getString("point_code3"));
|
||||||
@@ -72,7 +86,7 @@ public class InBillTask extends AbstractTask {
|
|||||||
task.setVehicle_code2(json.getString("vehicle_code2"));
|
task.setVehicle_code2(json.getString("vehicle_code2"));
|
||||||
task.setGroup_id(json.getString("group_id"));
|
task.setGroup_id(json.getString("group_id"));
|
||||||
task.setRequest_param(json.toString());
|
task.setRequest_param(json.toString());
|
||||||
task.setPriority(json.getString("Priority"));
|
task.setPriority(json.getString("priority"));
|
||||||
task.setCreate_id(SecurityUtils.getCurrentUserId());
|
task.setCreate_id(SecurityUtils.getCurrentUserId());
|
||||||
task.setCreate_name(SecurityUtils.getCurrentNickName());
|
task.setCreate_name(SecurityUtils.getCurrentNickName());
|
||||||
task.setCreate_time(DateUtil.now());
|
task.setCreate_time(DateUtil.now());
|
||||||
@@ -153,6 +167,25 @@ public class InBillTask extends AbstractTask {
|
|||||||
taskObj.setTask_status(TaskStatus.FINISHED.getCode());
|
taskObj.setTask_status(TaskStatus.FINISHED.getCode());
|
||||||
taskObj.setRemark("已完成");
|
taskObj.setRemark("已完成");
|
||||||
taskService.updateById(taskObj);
|
taskService.updateById(taskObj);
|
||||||
|
|
||||||
|
//更改点位的托盘信息,空托盘的点位 2为空托盘放置点位
|
||||||
|
pointService.update(new LambdaUpdateWrapper<SchBasePoint>()
|
||||||
|
.set(SchBasePoint::getVehicle_code, taskObj.getVehicle_code())
|
||||||
|
.set(SchBasePoint::getPoint_status, "1")
|
||||||
|
.set(SchBasePoint::getUpdate_id, SecurityUtils.getCurrentUserId())
|
||||||
|
.set(SchBasePoint::getUpdate_name, SecurityUtils.getCurrentNickName())
|
||||||
|
.set(SchBasePoint::getUpdate_time, DateUtil.now())
|
||||||
|
.eq(SchBasePoint::getPoint_code, taskObj.getPoint_code2()));
|
||||||
|
|
||||||
|
//更改点位的托盘信息,卸货的点位 3为起始点
|
||||||
|
pointService.update(new LambdaUpdateWrapper<SchBasePoint>()
|
||||||
|
.set(SchBasePoint::getVehicle_code, null)
|
||||||
|
.set(SchBasePoint::getPoint_status, "1")
|
||||||
|
.set(SchBasePoint::getUpdate_id, SecurityUtils.getCurrentUserId())
|
||||||
|
.set(SchBasePoint::getUpdate_name, SecurityUtils.getCurrentNickName())
|
||||||
|
.set(SchBasePoint::getUpdate_time, DateUtil.now())
|
||||||
|
.eq(SchBasePoint::getPoint_code, taskObj.getPoint_code3()));
|
||||||
|
|
||||||
rawAssistIStorService.taskFinish(taskObj);
|
rawAssistIStorService.taskFinish(taskObj);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -167,6 +200,29 @@ public class InBillTask extends AbstractTask {
|
|||||||
.eq(SchBaseTask::getTask_id,taskObj.getTask_id())
|
.eq(SchBaseTask::getTask_id,taskObj.getTask_id())
|
||||||
);
|
);
|
||||||
|
|
||||||
|
|
||||||
|
List<IOStorInvDis> ioStorInvDisList = ioStorInvDisMapper.selectList(new LambdaUpdateWrapper<>(IOStorInvDis.class)
|
||||||
|
.eq(IOStorInvDis::getTask_id, taskObj.getTask_id()));
|
||||||
|
|
||||||
|
for(IOStorInvDis ioStorInvDis:ioStorInvDisList){
|
||||||
|
//库存表解锁 lock_type inv_type inv_id inv_code
|
||||||
|
//解锁库位
|
||||||
|
JSONObject finish_map = new JSONObject();
|
||||||
|
finish_map.put("struct_code", ioStorInvDis.getStruct_code());
|
||||||
|
finish_map.put("inv_type", null);
|
||||||
|
finish_map.put("inv_id", null);
|
||||||
|
finish_map.put("inv_code", null);
|
||||||
|
|
||||||
|
//解绑库位
|
||||||
|
iStructattrService.updateStatusByCode("2", finish_map);
|
||||||
|
|
||||||
|
|
||||||
|
//更新组盘表 status 20->10
|
||||||
|
iMdPbGroupplateService.update(new LambdaUpdateWrapper<>(GroupPlate.class)
|
||||||
|
.set(GroupPlate::getStatus, IOSEnum.GROUP_PLATE_STATUS.code("组盘"))
|
||||||
|
.eq(GroupPlate::getStoragevehicle_code,ioStorInvDis.getStoragevehicle_code()));
|
||||||
|
}
|
||||||
|
|
||||||
//分配表清除任务
|
//分配表清除任务
|
||||||
ioStorInvDisMapper.update(new IOStorInvDis(),new LambdaUpdateWrapper<>(IOStorInvDis.class)
|
ioStorInvDisMapper.update(new IOStorInvDis(),new LambdaUpdateWrapper<>(IOStorInvDis.class)
|
||||||
.set(IOStorInvDis::getTask_id,null)
|
.set(IOStorInvDis::getTask_id,null)
|
||||||
|
|||||||
@@ -40,7 +40,7 @@ public interface IInBillService extends IService<IOStorInv> {
|
|||||||
|
|
||||||
void divStruct(JSONObject whereJson);
|
void divStruct(JSONObject whereJson);
|
||||||
|
|
||||||
|
void zwInDivStruct(JSONObject whereJson);
|
||||||
|
|
||||||
void unDivStruct(Map whereJson);
|
void unDivStruct(Map whereJson);
|
||||||
|
|
||||||
|
|||||||
@@ -35,6 +35,7 @@ import org.nl.wms.sch_manage.service.dao.SchBaseTask;
|
|||||||
import org.nl.wms.sch_manage.service.util.tasks.StInTask;
|
import org.nl.wms.sch_manage.service.util.tasks.StInTask;
|
||||||
import org.nl.wms.sch_manage.service.util.tasks.jb.JbBackAgvTask;
|
import org.nl.wms.sch_manage.service.util.tasks.jb.JbBackAgvTask;
|
||||||
import org.nl.wms.sch_manage.service.util.tasks.jb.JbDownAgvTask;
|
import org.nl.wms.sch_manage.service.util.tasks.jb.JbDownAgvTask;
|
||||||
|
import org.nl.wms.sch_manage.service.util.tasks.zw.InBillTask;
|
||||||
import org.nl.wms.warehouse_manage.enums.IOSConstant;
|
import org.nl.wms.warehouse_manage.enums.IOSConstant;
|
||||||
import org.nl.wms.warehouse_manage.enums.IOSEnum;
|
import org.nl.wms.warehouse_manage.enums.IOSEnum;
|
||||||
import org.nl.wms.warehouse_manage.service.IMdPbGroupplateService;
|
import org.nl.wms.warehouse_manage.service.IMdPbGroupplateService;
|
||||||
@@ -95,6 +96,8 @@ public class InBillServiceImpl extends ServiceImpl<IOStorInvMapper, IOStorInv> i
|
|||||||
private JbDownAgvTask jbDownAgvTask;
|
private JbDownAgvTask jbDownAgvTask;
|
||||||
@Resource
|
@Resource
|
||||||
private JbBackAgvTask jbBackAgvTask;
|
private JbBackAgvTask jbBackAgvTask;
|
||||||
|
@Resource
|
||||||
|
private InBillTask inBillTask;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public IPage<IOStorInv> pageQuery(Map whereJson, PageQuery page) {
|
public IPage<IOStorInv> pageQuery(Map whereJson, PageQuery page) {
|
||||||
@@ -442,6 +445,123 @@ public class InBillServiceImpl extends ServiceImpl<IOStorInvMapper, IOStorInv> i
|
|||||||
ioStorInvMapper.updateById(ios);
|
ioStorInvMapper.updateById(ios);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
@Transactional(rollbackFor = Exception.class)
|
||||||
|
public void zwInDivStruct(JSONObject param) {
|
||||||
|
Assert.noNullElements(new Object[]{param.getString("stor_code"),param.getString("sect_code")},"参数异常");
|
||||||
|
ArrayList<HashMap> rows = (ArrayList<HashMap>) param.get("tableMater");
|
||||||
|
JSONObject mst = JSONObject.parseObject(JSON.toJSONString(param));
|
||||||
|
HashMap<String, String> map = rows.get(0);
|
||||||
|
//判断该分配明细是否已经分配货位
|
||||||
|
IOStorInvDis ioStorInvDis = ioStorInvDisMapper.selectOne(new LambdaQueryWrapper<>(IOStorInvDis.class)
|
||||||
|
.eq(IOStorInvDis::getIostorinvdis_id,map.get("iostorinvdis_id"))
|
||||||
|
.isNull(IOStorInvDis::getStruct_code));
|
||||||
|
if (ioStorInvDis ==null){
|
||||||
|
throw new BadRequestException("当前明细已经分配过库位");
|
||||||
|
}
|
||||||
|
String currentUserId = SecurityUtils.getCurrentUserId();
|
||||||
|
String nickName = SecurityUtils.getCurrentNickName();
|
||||||
|
String now = DateUtil.now();
|
||||||
|
String sect_id = "";
|
||||||
|
String sect_code = "";
|
||||||
|
String sect_name = "";
|
||||||
|
String struct_id = "";
|
||||||
|
String struct_code = "";
|
||||||
|
String struct_name = "";
|
||||||
|
String storagevehicle_code = "";
|
||||||
|
//是否自动分配仓位
|
||||||
|
Boolean checked = mst.getBoolean("checked");
|
||||||
|
if (ObjectUtil.isNotEmpty(checked) && checked) {
|
||||||
|
param.put("qty", map.get("plan_qty"));
|
||||||
|
param.put("material_code", map.get("material_code"));
|
||||||
|
param.put("pcsn", map.get("pcsn"));
|
||||||
|
param.put("ioType", StatusEnum.STRATEGY_TYPE.code("入库"));
|
||||||
|
List<Structattr> structattrs = iStructattrService.inBoundSectDiv(
|
||||||
|
StrategyStructParam.builder()
|
||||||
|
.ioType(param.getString("ioType"))
|
||||||
|
.sect_code(param.getString("sect_code"))
|
||||||
|
.stor_code(param.getString("stor_code"))
|
||||||
|
.material_code(param.getString("material_code"))
|
||||||
|
.qty(new BigDecimal(param.getString("qty")))
|
||||||
|
.pcsn(param.getString("pcsn"))
|
||||||
|
.dis_id(map.get("iostorinvdis_id"))
|
||||||
|
.build());
|
||||||
|
Structattr struct = structattrs.get(0);
|
||||||
|
sect_id = struct.getSect_id();
|
||||||
|
sect_code = struct.getSect_code();
|
||||||
|
sect_name = struct.getSect_name();
|
||||||
|
struct_id = struct.getStruct_id();
|
||||||
|
struct_code = struct.getStruct_code();
|
||||||
|
struct_name = struct.getStruct_name();
|
||||||
|
storagevehicle_code = struct.getStoragevehicle_code();
|
||||||
|
} else {
|
||||||
|
Structattr structattr = iStructattrService.findById(map.get("struct_id"));
|
||||||
|
MdPbStoragevehicleinfo mdPbStoragevehicleinfo = mdPbStoragevehicleinfoMapper.selectOne(new LambdaQueryWrapper<>(MdPbStoragevehicleinfo.class)
|
||||||
|
.eq(MdPbStoragevehicleinfo::getStoragevehicle_code, map.get("storagevehicle_code"))
|
||||||
|
);
|
||||||
|
sect_id = map.get("sect_id");
|
||||||
|
sect_code = map.get("sect_code");
|
||||||
|
sect_name = map.get("sect_name");
|
||||||
|
struct_id = map.get("struct_id");
|
||||||
|
struct_code = map.get("struct_code");
|
||||||
|
struct_name = map.get("struct_name");
|
||||||
|
storagevehicle_code = map.get("storagevehicle_code");
|
||||||
|
}
|
||||||
|
JSONObject dis_map = new JSONObject();
|
||||||
|
dis_map.put("sect_id", sect_id);
|
||||||
|
dis_map.put("sect_code", sect_code);
|
||||||
|
dis_map.put("sect_name", sect_name);
|
||||||
|
dis_map.put("struct_id", struct_id);
|
||||||
|
dis_map.put("struct_code", struct_code);
|
||||||
|
dis_map.put("struct_name", struct_name);
|
||||||
|
dis_map.put("storagevehicle_code", storagevehicle_code);
|
||||||
|
//锁定货位
|
||||||
|
IOStorInv ioStorInv = ioStorInvMapper.selectById(map.get("iostorinv_id"));
|
||||||
|
JSONObject lock_map = new JSONObject();
|
||||||
|
lock_map.put("struct_code", struct_code);
|
||||||
|
lock_map.put("inv_id", ioStorInv.getIostorinv_id());
|
||||||
|
lock_map.put("inv_code", ioStorInv.getBill_code());
|
||||||
|
lock_map.put("inv_type", ioStorInv.getBill_type());
|
||||||
|
lock_map.put("lock_type", IOSEnum.LOCK_TYPE.code("入库锁"));
|
||||||
|
iStructattrService.updateStatusByCode("0",lock_map);
|
||||||
|
//更新组盘表状态
|
||||||
|
mdPbGroupplateService.update(new LambdaUpdateWrapper<GroupPlate>()
|
||||||
|
.set(GroupPlate::getStatus, IOSEnum.GROUP_PLATE_STATUS.code("入库"))
|
||||||
|
.eq(GroupPlate::getStoragevehicle_code, map.get("storagevehicle_code"))
|
||||||
|
.eq(GroupPlate::getStatus,IOSEnum.GROUP_PLATE_STATUS.code("组盘")));
|
||||||
|
// 更新分配明细表
|
||||||
|
ioStorInvDisMapper.update(dis_map.toJavaObject(IOStorInvDis.class),new LambdaUpdateWrapper<>(IOStorInvDis.class)
|
||||||
|
.set(IOStorInvDis::getSect_id,dis_map.getString("sect_id"))
|
||||||
|
.set(IOStorInvDis::getSect_code,dis_map.getString("sect_code"))
|
||||||
|
.set(IOStorInvDis::getSect_name,dis_map.getString("sect_name"))
|
||||||
|
.set(IOStorInvDis::getStruct_id,dis_map.getString("struct_id"))
|
||||||
|
.set(IOStorInvDis::getStoragevehicle_code,dis_map.getString("storagevehicle_code"))
|
||||||
|
.set(IOStorInvDis::getStruct_code,dis_map.getString("struct_code"))
|
||||||
|
.set(IOStorInvDis::getStruct_name,dis_map.getString("struct_name"))
|
||||||
|
.eq(IOStorInvDis::getIostorinvdis_id,map.get("iostorinvdis_id"))
|
||||||
|
);
|
||||||
|
//维护单据明细表里 分配数量
|
||||||
|
JSONObject jsonObject = new JSONObject();
|
||||||
|
jsonObject.put("iostorinvdtl_id",map.get("iostorinvdtl_id"));
|
||||||
|
jsonObject.put("bill_status",IOSEnum.BILL_STATUS.code("分配完"));
|
||||||
|
jsonObject.put("assign_qty",map.get("plan_qty"));
|
||||||
|
jsonObject.put("unassign_qty","0");
|
||||||
|
ioStorInvDtlMapper.updateById(jsonObject.toJavaObject(IOStorInvDtl.class));
|
||||||
|
//根据单据标识判断分配明细是否都已经分配完成
|
||||||
|
int disCount = ioStorInvDisMapper.selectCount(new LambdaQueryWrapper<>(IOStorInvDis.class)
|
||||||
|
.eq(IOStorInvDis::getIostorinv_id, map.get("iostorinv_id"))
|
||||||
|
.and(wrapper -> wrapper.isNull(IOStorInvDis::getStruct_code).or().eq(IOStorInvDis::getStruct_code, "")));
|
||||||
|
// 根据分配货位情况 更新主表单据状态
|
||||||
|
IOStorInv ios = new IOStorInv();
|
||||||
|
ios.setIostorinv_id(map.get("iostorinv_id"));
|
||||||
|
ios.setUpdate_optid(currentUserId);
|
||||||
|
ios.setUpdate_optname(nickName);
|
||||||
|
ios.setUpdate_time(now);
|
||||||
|
ios.setBill_status(disCount > 0 ? IOSEnum.BILL_STATUS.code("分配中") : IOSEnum.BILL_STATUS.code("分配完"));
|
||||||
|
ioStorInvMapper.updateById(ios);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 根据库区策略获取仓位
|
* 根据库区策略获取仓位
|
||||||
@@ -649,6 +769,26 @@ public class InBillServiceImpl extends ServiceImpl<IOStorInvMapper, IOStorInv> i
|
|||||||
task.put("point_code3", fullPoint.getPoint_code());
|
task.put("point_code3", fullPoint.getPoint_code());
|
||||||
task.put("point_code4", structCode);
|
task.put("point_code4", structCode);
|
||||||
jbBackAgvTask.create(task);
|
jbBackAgvTask.create(task);
|
||||||
|
} else if (StatusEnum.IOBILL_TYPE_IN.code("来料入库").equals(invObj.getBill_type())) {
|
||||||
|
// 获取组盘信息
|
||||||
|
GroupPlate groupPlate = mdPbGroupplateService.getOne(new LambdaQueryWrapper<GroupPlate>()
|
||||||
|
.eq(GroupPlate::getStoragevehicle_code, whereJson.get("vehicle_code"))
|
||||||
|
.eq(GroupPlate::getStatus, IOSEnum.GROUP_PLATE_STATUS.code("入库")));
|
||||||
|
|
||||||
|
JSONObject task = new JSONObject();
|
||||||
|
task.put("config_code", IOSConstant.IN_BILL_TASK);
|
||||||
|
task.put("group_id", groupPlate.getGroup_id());
|
||||||
|
task.put("priority",whereJson.get("priority"));
|
||||||
|
task.put("task_code", CodeUtil.getNewCode("TASK_CODE"));
|
||||||
|
task.put("point_code1",ioStorInvDis.getStruct_code());
|
||||||
|
task.put("point_code2", whereJson.get("point_code2"));
|
||||||
|
task.put("point_code3", whereJson.get("point_code3"));
|
||||||
|
task.put("point_code4", ioStorInvDis.getStruct_code());
|
||||||
|
|
||||||
|
//第一个载具为计算得到的,第二个载具为起始点载具
|
||||||
|
task.put("vehicle_code", ioStorInvDis.getStoragevehicle_code());
|
||||||
|
task.put("vehicle_code2", whereJson.get("vehicle_code"));
|
||||||
|
task_id = inBillTask.create(task);
|
||||||
} else {
|
} else {
|
||||||
//创建任务
|
//创建任务
|
||||||
JSONObject task_form = new JSONObject();
|
JSONObject task_form = new JSONObject();
|
||||||
@@ -809,6 +949,7 @@ public class InBillServiceImpl extends ServiceImpl<IOStorInvMapper, IOStorInv> i
|
|||||||
finish_map.put("inv_type", null);
|
finish_map.put("inv_type", null);
|
||||||
finish_map.put("inv_id", null);
|
finish_map.put("inv_id", null);
|
||||||
finish_map.put("inv_code", null);
|
finish_map.put("inv_code", null);
|
||||||
|
finish_map.put("occupancy_state","3");
|
||||||
iStructattrService.updateStatusByCode("1",finish_map);
|
iStructattrService.updateStatusByCode("1",finish_map);
|
||||||
//库存变动
|
//库存变动
|
||||||
StructattrChangeDto changeDto = StructattrChangeDto.builder()
|
StructattrChangeDto changeDto = StructattrChangeDto.builder()
|
||||||
|
|||||||
@@ -144,7 +144,7 @@
|
|||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-col>
|
</el-col>
|
||||||
</el-row>
|
</el-row>
|
||||||
<el-row :gutter="20">
|
<el-row :gutter="24">
|
||||||
<el-col :span="12">
|
<el-col :span="12">
|
||||||
<el-form-item label="载具号">
|
<el-form-item label="载具号">
|
||||||
<label slot="label">载 具 号:</label>
|
<label slot="label">载 具 号:</label>
|
||||||
@@ -222,12 +222,28 @@
|
|||||||
</el-col>
|
</el-col>
|
||||||
</el-row>
|
</el-row>
|
||||||
<el-row :gutter="20">
|
<el-row :gutter="20">
|
||||||
<el-col :span="24">
|
<el-col :span="12">
|
||||||
<el-form-item label="是否临时" prop="is_tempstruct">
|
<el-form-item label="是否临时" prop="is_tempstruct">
|
||||||
<el-radio v-model="form.is_tempstruct" label="1">是</el-radio>
|
<el-radio v-model="form.is_tempstruct" label="1">是</el-radio>
|
||||||
<el-radio v-model="form.is_tempstruct" label="0">否</el-radio>
|
<el-radio v-model="form.is_tempstruct" label="0">否</el-radio>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-col>
|
</el-col>
|
||||||
|
<el-col :span="12">
|
||||||
|
<el-form-item label="占用状态" prop="occupancy_state">
|
||||||
|
<el-select
|
||||||
|
v-model="form.occupancy_state"
|
||||||
|
placeholder=""
|
||||||
|
style="width: 200px"
|
||||||
|
>
|
||||||
|
<el-option
|
||||||
|
v-for="item in dict.occupancy_state"
|
||||||
|
:key="item.id"
|
||||||
|
:label="item.label"
|
||||||
|
:value="parseInt(item.value)"
|
||||||
|
/>
|
||||||
|
</el-select>
|
||||||
|
</el-form-item>
|
||||||
|
</el-col>
|
||||||
</el-row>
|
</el-row>
|
||||||
<el-row :gutter="20">
|
<el-row :gutter="20">
|
||||||
<el-col :span="12">
|
<el-col :span="12">
|
||||||
@@ -287,6 +303,11 @@
|
|||||||
<el-table-column prop="inv_code" label="锁定单据编码" width="150" />
|
<el-table-column prop="inv_code" label="锁定单据编码" width="150" />
|
||||||
<el-table-column prop="inv_type" label="锁定单据类型" width="150" :formatter="invtypeFormat" />
|
<el-table-column prop="inv_type" label="锁定单据类型" width="150" :formatter="invtypeFormat" />
|
||||||
<el-table-column prop="remark" label="备注" show-overflow-tooltip />
|
<el-table-column prop="remark" label="备注" show-overflow-tooltip />
|
||||||
|
<el-table-column prop="occupancy_state" label="占用状态" show-overflow-tooltip >
|
||||||
|
<template slot-scope="scope">
|
||||||
|
{{ dict.label.occupancy_state[scope.row.occupancy_state] }}
|
||||||
|
</template>
|
||||||
|
</el-table-column>
|
||||||
<el-table-column
|
<el-table-column
|
||||||
v-permission="['admin','structattr:edit','structattr:del']"
|
v-permission="['admin','structattr:edit','structattr:del']"
|
||||||
label="操作"
|
label="操作"
|
||||||
@@ -373,7 +394,7 @@ const defaultForm = {
|
|||||||
}
|
}
|
||||||
export default {
|
export default {
|
||||||
name: 'Structattr',
|
name: 'Structattr',
|
||||||
dicts: ['ST_HEIGHT_TYPE', 'is_used', 'd_lock_type', 'SCH_TASK_TYPE_DTL', 'placement_type'],
|
dicts: ['ST_HEIGHT_TYPE', 'is_used', 'd_lock_type', 'SCH_TASK_TYPE_DTL', 'placement_type', 'occupancy_state'],
|
||||||
components: { pagination, crudOperation, rrOperation, udOperation },
|
components: { pagination, crudOperation, rrOperation, udOperation },
|
||||||
mixins: [presenter(), header(), form(defaultForm), crud()],
|
mixins: [presenter(), header(), form(defaultForm), crud()],
|
||||||
cruds() {
|
cruds() {
|
||||||
|
|||||||
@@ -297,7 +297,7 @@ export default {
|
|||||||
sects: [],
|
sects: [],
|
||||||
pointList: [],
|
pointList: [],
|
||||||
rules: {
|
rules: {
|
||||||
},
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
watch: {
|
watch: {
|
||||||
|
|||||||
Reference in New Issue
Block a user