add:株洲中钨来料入库功能
This commit is contained in:
@@ -101,6 +101,10 @@ public interface IStructattrService extends IService<Structattr> {
|
||||
|
||||
List<StructattrVechielDto> collectVechicle(Map query);
|
||||
|
||||
|
||||
|
||||
List<StructattrVechielDto> collectVechicleNoGroup(Map query);
|
||||
|
||||
/**
|
||||
* 出库规则
|
||||
*/
|
||||
|
||||
@@ -17,4 +17,6 @@ public interface StructattrMapper extends BaseMapper<Structattr>{
|
||||
|
||||
List<StructattrVechielDto> collectVehicle(Map query);
|
||||
|
||||
List<StructattrVechielDto> collectVehicleNoGroup(Map query);
|
||||
|
||||
}
|
||||
|
||||
@@ -56,4 +56,32 @@
|
||||
</if>
|
||||
</where>
|
||||
</select>
|
||||
|
||||
<select id="collectVehicleNoGroup" resultType="org.nl.wms.basedata_manage.service.dao.StructattrVechielDto">
|
||||
SELECT
|
||||
ivt.*
|
||||
FROM
|
||||
st_ivt_structattr ivt
|
||||
<where>
|
||||
ivt.occupancy_state=2
|
||||
<if test="stor_code != null and stor_code != ''">
|
||||
AND ivt.stor_code = #{stor_code}
|
||||
</if>
|
||||
<if test="sect_code != null and sect_code != ''">
|
||||
AND ivt.sect_code = #{sect_code}
|
||||
</if>
|
||||
<if test="vehicles != null and vehicles.size() > 0">
|
||||
AND ivt.storagevehicle_code in
|
||||
<foreach collection="vehicles" item="value" index="key" open="(" close=")" separator=",">
|
||||
#{value}
|
||||
</foreach>
|
||||
</if>
|
||||
<if test="is_lock != null and is_lock != ''">
|
||||
and ivt.lock_type = '0'
|
||||
</if>
|
||||
<if test="order_by != null and order_by != ''">
|
||||
order by ${order_by}
|
||||
</if>
|
||||
</where>
|
||||
</select>
|
||||
</mapper>
|
||||
|
||||
@@ -56,4 +56,9 @@ public class StrategyStructParam {
|
||||
* 出入库类型
|
||||
*/
|
||||
private String ioType;
|
||||
|
||||
/**
|
||||
* 出入库类型
|
||||
*/
|
||||
private String stragegyType;
|
||||
}
|
||||
|
||||
@@ -319,6 +319,14 @@ public class StructattrServiceImpl extends ServiceImpl<StructattrMapper, Structa
|
||||
return this.baseMapper.collectVehicle(query);
|
||||
}
|
||||
|
||||
/**
|
||||
* 载具库存查询,载具不需要组盘
|
||||
*/
|
||||
@Override
|
||||
public List<StructattrVechielDto> collectVechicleNoGroup(Map query) {
|
||||
return this.baseMapper.collectVehicleNoGroup(query);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 出库分配
|
||||
@@ -342,8 +350,8 @@ public class StructattrServiceImpl extends ServiceImpl<StructattrMapper, Structa
|
||||
List list = null;
|
||||
for (String decisionerType : strategy) {
|
||||
Decisioner decisioner = decisionerMap.get(decisionerType);
|
||||
log.info("执行出入库规格:" + decisioner.strategyConfig.getStrategy_name());
|
||||
list = decisioner.handler(list, param);
|
||||
log.info("执行出库规格:" + decisioner.strategyConfig.getStrategy_name());
|
||||
list = decisioner.handler(list, JSONObject.toJSON(param));
|
||||
if (CollectionUtils.isEmpty(list)) {
|
||||
throw new BadRequestException("当前策略" + decisioner.strategyConfig.getStrategy_name() + "无可用货位,分配前数量:" + list.size());
|
||||
}
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
package org.nl.wms.decision_manage.service.strategyConfig.decisioner.impl.base;
|
||||
|
||||
import com.alibaba.fastjson.JSONObject;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.apache.commons.lang3.ObjectUtils;
|
||||
import org.nl.common.exception.BadRequestException;
|
||||
@@ -24,7 +25,7 @@ import java.util.List;
|
||||
*/
|
||||
@Service("fifo")
|
||||
@Slf4j
|
||||
public class FIFORuleHandler extends Decisioner<StrategyStructMaterialVO, StrategyStructParam> {
|
||||
public class FIFORuleHandler extends Decisioner<StrategyStructMaterialVO, JSONObject> {
|
||||
|
||||
/**
|
||||
* 出入库明细服务
|
||||
@@ -33,22 +34,22 @@ public class FIFORuleHandler extends Decisioner<StrategyStructMaterialVO, Strate
|
||||
private IStructattrService iStructattrService;
|
||||
|
||||
@Override
|
||||
public List<StrategyStructMaterialVO> handler(List<StrategyStructMaterialVO> list, StrategyStructParam param) {
|
||||
public List<StrategyStructMaterialVO> handler(List<StrategyStructMaterialVO> list, JSONObject param) {
|
||||
//分配数量
|
||||
//当前条件只有id,批次
|
||||
log.info("---------执行fifo出库分配规则---------");
|
||||
BigDecimal planQty = param.getQty();
|
||||
BigDecimal planQty = param.getBigDecimal("qty");
|
||||
List<StructattrVechielDto> vechielDtos =
|
||||
iStructattrService.collectVechicle(MapOf.of("material_id", param.getMaterial_id()
|
||||
, "pcsn", param.getPcsn()
|
||||
, "stor_code", param.getStor_code()
|
||||
, "sect_code", param.getSect_code()
|
||||
iStructattrService.collectVechicle(MapOf.of("material_id", param.getString("material_id")
|
||||
, "pcsn", param.getString("pcsn")
|
||||
, "stor_code", param.getString("stor_code")
|
||||
, "sect_code", param.getString("sect_code")
|
||||
, "plan_qty", planQty
|
||||
, "is_lock", "false"
|
||||
, "order_by", "gro.update_time asc")
|
||||
);
|
||||
if (ObjectUtils.isEmpty(vechielDtos)) {
|
||||
throw new BadRequestException("当前出库策略:先进先出,库存分配失败,失败原因:库存不足!");
|
||||
throw new BadRequestException("当前出库策略:先进先出,库存分配失败,失败原因:库存不足!或未组盘!");
|
||||
}
|
||||
List<StrategyStructMaterialVO> divStruct = new ArrayList<>();
|
||||
for (StructattrVechielDto vechielDto : vechielDtos) {
|
||||
|
||||
@@ -0,0 +1,100 @@
|
||||
package org.nl.wms.decision_manage.service.strategyConfig.decisioner.impl.diy;
|
||||
|
||||
import com.alibaba.fastjson.JSONObject;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.apache.commons.lang3.ObjectUtils;
|
||||
import org.nl.common.exception.BadRequestException;
|
||||
import org.nl.common.utils.MapOf;
|
||||
import org.nl.wms.basedata_manage.service.IStructattrService;
|
||||
import org.nl.wms.basedata_manage.service.dao.StructattrVechielDto;
|
||||
import org.nl.wms.basedata_manage.service.dto.StrategyStructMaterialVO;
|
||||
import org.nl.wms.decision_manage.service.strategyConfig.decisioner.Decisioner;
|
||||
import org.nl.wms.decision_manage.service.strategyConfig.enums.StragegyTypeEnum;
|
||||
import org.springframework.beans.BeanUtils;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* @author zhengxuming
|
||||
* @Date 2025-7-25 11:24:52
|
||||
* 先进先出/空托盘出库策略
|
||||
*/
|
||||
@Service("fifoAndVehicle")
|
||||
@Slf4j
|
||||
public class FIFOAndVehicleHandler extends Decisioner<StrategyStructMaterialVO, JSONObject> {
|
||||
|
||||
/**
|
||||
* 出入库明细服务
|
||||
*/
|
||||
@Autowired
|
||||
private IStructattrService iStructattrService;
|
||||
|
||||
@Override
|
||||
public List<StrategyStructMaterialVO> handler(List<StrategyStructMaterialVO> list, JSONObject param) {
|
||||
//如果是空托盘出库任务,则执行空托盘出库
|
||||
if (StragegyTypeEnum.STRAGEGY_TYPE.code("空托盘").equals(param.getString("strategyType"))) {
|
||||
//查新空托盘
|
||||
//当前条件只有id,批次
|
||||
log.info("---------执行空托盘出库分配规则---------");
|
||||
BigDecimal planQty = param.getBigDecimal("qty");
|
||||
List<StructattrVechielDto> vechielDtos =
|
||||
iStructattrService.collectVechicleNoGroup(MapOf.of(
|
||||
"stor_code", param.getString("stor_code")
|
||||
, "sect_code", param.getString("sect_code")
|
||||
, "is_lock", "false"
|
||||
, "order_by", "ivt.update_time asc"));
|
||||
if (ObjectUtils.isEmpty(vechielDtos)) {
|
||||
throw new BadRequestException("库存分配失败,失败原因:没有空托盘");
|
||||
}
|
||||
|
||||
List<StrategyStructMaterialVO> divStruct = new ArrayList<>();
|
||||
for (StructattrVechielDto vechielDto : vechielDtos) {
|
||||
StrategyStructMaterialVO materialVO = new StrategyStructMaterialVO();
|
||||
BeanUtils.copyProperties(vechielDto, materialVO);
|
||||
divStruct.add(materialVO);
|
||||
}
|
||||
return divStruct;
|
||||
} else {
|
||||
|
||||
//分配数量
|
||||
//当前条件只有id,批次
|
||||
log.info("---------执行fifo出库分配规则---------");
|
||||
BigDecimal planQty = param.getBigDecimal("qty");
|
||||
List<StructattrVechielDto> vechielDtos =
|
||||
iStructattrService.collectVechicle(MapOf.of("material_id", param.getString("material_id")
|
||||
, "pcsn", param.getString("pcsn")
|
||||
, "stor_code", param.getString("stor_code")
|
||||
, "sect_code", param.getString("sect_code")
|
||||
, "plan_qty", planQty
|
||||
, "is_lock", "false"
|
||||
, "order_by", "gro.update_time asc")
|
||||
);
|
||||
if (ObjectUtils.isEmpty(vechielDtos)) {
|
||||
throw new BadRequestException("当前出库策略:先进先出,库存分配失败,失败原因:库存不足!或未组盘!");
|
||||
}
|
||||
List<StrategyStructMaterialVO> divStruct = new ArrayList<>();
|
||||
for (StructattrVechielDto vechielDto : vechielDtos) {
|
||||
if (planQty.intValue() <= 0) {
|
||||
break;
|
||||
}
|
||||
BigDecimal qty = vechielDto.getQty();
|
||||
BigDecimal subQty = planQty.subtract(qty);
|
||||
if (subQty.doubleValue() >= 0) {
|
||||
vechielDto.setFrozen_qty(vechielDto.getQty());
|
||||
} else {
|
||||
vechielDto.setFrozen_qty(planQty);
|
||||
}
|
||||
planQty = subQty;
|
||||
StrategyStructMaterialVO materialVO = new StrategyStructMaterialVO();
|
||||
BeanUtils.copyProperties(vechielDto, materialVO);
|
||||
divStruct.add(materialVO);
|
||||
}
|
||||
return divStruct;
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,42 @@
|
||||
package org.nl.wms.decision_manage.service.strategyConfig.enums;
|
||||
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Getter;
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
import org.nl.common.exception.BadRequestException;
|
||||
import org.nl.common.utils.MapOf;
|
||||
|
||||
import java.util.Map;
|
||||
|
||||
/**
|
||||
* 任务枚举类
|
||||
*
|
||||
* @author zhengxuming
|
||||
* @Date 2025/05/26
|
||||
*/
|
||||
@AllArgsConstructor
|
||||
@Getter
|
||||
public enum StragegyTypeEnum {
|
||||
|
||||
// 策略类型
|
||||
STRAGEGY_TYPE(MapOf.of("1", "空托盘", "2", "正常策略"))
|
||||
;
|
||||
|
||||
private Map<String, String> code;
|
||||
|
||||
public String code(String desc) {
|
||||
String code = this.getCode().get(desc);
|
||||
if (StringUtils.isNotEmpty(code)) {
|
||||
return code;
|
||||
}
|
||||
throw new BadRequestException(this.name() + "对应类型" + desc + "未定义");
|
||||
}
|
||||
|
||||
public String check(String code) {
|
||||
for (Map.Entry<String, String> entry : this.getCode().entrySet())
|
||||
if (entry.getValue().equals("code")) {
|
||||
return entry.getValue();
|
||||
}
|
||||
throw new BadRequestException(this.name() + "对应类型" + code + "未定义");
|
||||
}
|
||||
}
|
||||
@@ -104,6 +104,14 @@ public class PdaIosInController {
|
||||
}
|
||||
|
||||
|
||||
@PostMapping("/zwConfirmIn")
|
||||
@Log("中钨组盘入库确认")
|
||||
public ResponseEntity<Object> zwConfirmIn(@RequestBody JSONObject whereJson) {
|
||||
assertNotBlankJson(whereJson, "请求参数不能为空", "vehicle_code", "site_code");
|
||||
return new ResponseEntity<>(pdaIosInService.zwConfirmIn(whereJson), HttpStatus.OK);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 拣选余料回库物料查询
|
||||
*/
|
||||
|
||||
@@ -105,6 +105,20 @@ public interface PdaIosInService {
|
||||
*/
|
||||
PdaResponse confirmIn(JSONObject whereJson);
|
||||
|
||||
|
||||
/**
|
||||
* 株洲中钨入库确认
|
||||
* 步骤1:入库确认
|
||||
* 步骤2:空托盘出库
|
||||
* @param whereJson {
|
||||
* vehicle_code:载具编码
|
||||
* sect_code:库区
|
||||
* }
|
||||
* @return PdaResponse
|
||||
*/
|
||||
PdaResponse zwConfirmIn(JSONObject whereJson);
|
||||
|
||||
|
||||
/**
|
||||
* 拣选余料回库物料查询
|
||||
*
|
||||
|
||||
@@ -106,6 +106,4 @@ public interface PdaIosOutService {
|
||||
PdaResponse vehicleOutConfirm(JSONObject whereJson);
|
||||
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
||||
@@ -2,6 +2,7 @@ package org.nl.wms.pda_manage.ios_manage.service.impl;
|
||||
|
||||
import cn.hutool.core.date.DateUtil;
|
||||
import cn.hutool.core.util.ObjectUtil;
|
||||
import cn.hutool.core.util.StrUtil;
|
||||
import com.alibaba.fastjson.JSONObject;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
||||
@@ -15,12 +16,19 @@ import org.nl.common.base.TableDataInfo;
|
||||
import org.nl.common.domain.query.PageQuery;
|
||||
import org.nl.common.domain.vo.SelectItemVo;
|
||||
import org.nl.common.exception.BadRequestException;
|
||||
import org.nl.common.utils.CodeUtil;
|
||||
import org.nl.common.utils.IdUtil;
|
||||
import org.nl.common.utils.SecurityUtils;
|
||||
import org.nl.config.SpringContextHolder;
|
||||
import org.nl.wms.basedata_manage.enums.BaseDataEnum;
|
||||
import org.nl.wms.basedata_manage.service.*;
|
||||
import org.nl.wms.basedata_manage.service.dao.*;
|
||||
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.StrategyStructMaterialVO;
|
||||
import org.nl.wms.basedata_manage.service.dto.StrategyStructParam;
|
||||
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.util.PdaResponse;
|
||||
import org.nl.wms.sch_manage.enums.StatusEnum;
|
||||
import org.nl.wms.sch_manage.enums.TaskEnum;
|
||||
@@ -28,10 +36,18 @@ import org.nl.wms.sch_manage.service.ISchBasePointService;
|
||||
import org.nl.wms.sch_manage.service.ISchBaseRegionService;
|
||||
import org.nl.wms.sch_manage.service.dao.SchBasePoint;
|
||||
import org.nl.wms.sch_manage.service.dao.SchBaseRegion;
|
||||
import org.nl.wms.sch_manage.service.dao.mapper.SchBasePointMapper;
|
||||
import org.nl.wms.sch_manage.service.util.AbstractTask;
|
||||
import org.nl.wms.sch_manage.service.util.tasks.BackInTask;
|
||||
import org.nl.wms.sch_manage.service.util.tasks.VehicleOutTask;
|
||||
import org.nl.wms.sch_manage.service.util.tasks.zw.InBillTask;
|
||||
import org.nl.wms.system_manage.service.dict.dao.Dict;
|
||||
import org.nl.wms.system_manage.service.dict.dao.mapper.SysDictMapper;
|
||||
import org.nl.wms.system_manage.service.logicflow.dao.StageImage;
|
||||
import org.nl.wms.warehouse_manage.enums.IOSConstant;
|
||||
import org.nl.wms.warehouse_manage.enums.IOSEnum;
|
||||
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.service.IMdPbGroupplateService;
|
||||
import org.nl.wms.warehouse_manage.inAndOut.service.IInBillService;
|
||||
import org.nl.wms.warehouse_manage.service.dao.GroupPlate;
|
||||
@@ -46,6 +62,7 @@ import org.springframework.transaction.annotation.Transactional;
|
||||
import javax.annotation.Resource;
|
||||
import java.math.BigDecimal;
|
||||
import java.util.*;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
import static org.nl.wms.warehouse_manage.enums.IOSEnum.GROUP_PLATE_STATUS;
|
||||
|
||||
@@ -62,12 +79,17 @@ public class PdaIosInServiceImpl implements PdaIosInService {
|
||||
|
||||
@Autowired
|
||||
private Map<String, AbstractTask> applyTaskMap;
|
||||
|
||||
/**
|
||||
* 组盘记录mapper
|
||||
*/
|
||||
@Autowired
|
||||
private MdPbGroupplateMapper mdPbGroupplateMapper;
|
||||
|
||||
|
||||
@Resource
|
||||
private IOStorInvDisMapper ioStorInvDisMapper;
|
||||
|
||||
/**
|
||||
* 组盘记录服务
|
||||
*/
|
||||
@@ -87,6 +109,12 @@ public class PdaIosInServiceImpl implements PdaIosInService {
|
||||
@Autowired
|
||||
private IMdPbMeasureunitService iMdPbMeasureunitService;
|
||||
|
||||
/**
|
||||
* 库区
|
||||
*/
|
||||
@Autowired
|
||||
private SectattrMapper sectattrMapper;
|
||||
|
||||
/**
|
||||
* 载具服务
|
||||
*/
|
||||
@@ -112,6 +140,9 @@ public class PdaIosInServiceImpl implements PdaIosInService {
|
||||
@Autowired
|
||||
private IBsrealStorattrService iSrealStorattrService;
|
||||
|
||||
@Autowired
|
||||
private PdaIosOutService pdaIosOutService;
|
||||
|
||||
/**
|
||||
* 入库服务
|
||||
*/
|
||||
@@ -128,6 +159,18 @@ public class PdaIosInServiceImpl implements PdaIosInService {
|
||||
@Autowired
|
||||
private IOStorInvDtlMapper ioStorInvDtlMapper;
|
||||
|
||||
/**
|
||||
* 点位基础信息
|
||||
*/
|
||||
@Autowired
|
||||
private SchBasePointMapper schBasePointMapper;
|
||||
|
||||
/**
|
||||
*
|
||||
*/
|
||||
@Autowired
|
||||
private SysDictMapper sysDictMapper;
|
||||
|
||||
|
||||
/**
|
||||
* 区域服务
|
||||
@@ -246,6 +289,7 @@ public class PdaIosInServiceImpl implements PdaIosInService {
|
||||
public JSONObject getVehicleMaterial(JSONObject whereJson) {
|
||||
whereJson.put("status", GROUP_PLATE_STATUS.code("组盘"));
|
||||
whereJson.put("vehicleCode", whereJson.getString("search"));
|
||||
whereJson.put("noEmptyVehicle", whereJson.getString("noEmptyVehicle"));
|
||||
List<JSONObject> list = mdPbGroupplateMapper.getVehicleMaterial(whereJson);
|
||||
if (CollectionUtils.isEmpty(list)) {
|
||||
throw new BadRequestException("此载具未组盘,请检查!");
|
||||
@@ -399,6 +443,181 @@ public class PdaIosInServiceImpl implements PdaIosInService {
|
||||
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", whereJson.getString("site_code"));
|
||||
//计算入库库位
|
||||
taskForm.put("point_code2", point_code2);
|
||||
|
||||
//空托盘出库库位
|
||||
taskForm.put("point_code3", structList.get(0).getStruct_code());
|
||||
taskForm.put("point_code4", whereJson.getString("siteCode"));
|
||||
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 {
|
||||
|
||||
@@ -49,6 +49,14 @@ public class SchBasePointController {
|
||||
return new ResponseEntity<>(HttpStatus.NO_CONTENT);
|
||||
}
|
||||
|
||||
@PostMapping("/updatePointType")
|
||||
@Log("修改点位类型")
|
||||
public ResponseEntity<Object> updatePointType(@Validated @RequestBody SchBasePoint entity) {
|
||||
schBasePointService.updatePointType(entity);
|
||||
return new ResponseEntity<>(HttpStatus.NO_CONTENT);
|
||||
}
|
||||
|
||||
|
||||
@Log("删除点位管理")
|
||||
@DeleteMapping
|
||||
public ResponseEntity<Object> delete(@RequestBody Set<String> ids) {
|
||||
|
||||
@@ -40,6 +40,13 @@ public interface ISchBasePointService extends IService<SchBasePoint> {
|
||||
*/
|
||||
void update(SchBasePoint entity);
|
||||
|
||||
/**
|
||||
* 编辑点位类型
|
||||
*
|
||||
* @param entity /
|
||||
*/
|
||||
void updatePointType(SchBasePoint entity);
|
||||
|
||||
/**
|
||||
* 多选删除
|
||||
*
|
||||
|
||||
@@ -144,6 +144,22 @@ public class SchBasePointServiceImpl extends ServiceImpl<SchBasePointMapper, Sch
|
||||
pointMapper.updateById(entity);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void updatePointType(SchBasePoint entity) {
|
||||
SchBasePoint point = pointMapper.selectById(entity.getPoint_code());
|
||||
if (point == null) {
|
||||
throw new BadRequestException("点位信息不存在,请核对编码=【" + entity.getPoint_code() + "】的点位在系统中是否配置!");
|
||||
}
|
||||
point.setPoint_type(entity.getPoint_type());
|
||||
String currentUserId = SecurityUtils.getCurrentUserId();
|
||||
String nickName = SecurityUtils.getCurrentNickName();
|
||||
String now = DateUtil.now();
|
||||
point.setUpdate_id(currentUserId);
|
||||
point.setUpdate_name(nickName);
|
||||
point.setUpdate_time(now);
|
||||
pointMapper.updateById(point);
|
||||
}
|
||||
|
||||
@Override
|
||||
@Transactional
|
||||
public void deleteAll(Set<String> ids) {
|
||||
@@ -173,6 +189,9 @@ public class SchBasePointServiceImpl extends ServiceImpl<SchBasePointMapper, Sch
|
||||
}
|
||||
return pointMapper.selectList(new LambdaQueryWrapper<SchBasePoint>()
|
||||
.eq(SchBasePoint::getRegion_code, region.getRegion_code())
|
||||
|
||||
//点位类型,根据传入的值是否为空增加判断
|
||||
.eq(StringUtils.isNotBlank(region.getPoint_type()), SchBasePoint::getPoint_type, region.getPoint_type())
|
||||
.eq(SchBasePoint::getIs_has_workder, true));
|
||||
}
|
||||
|
||||
|
||||
@@ -0,0 +1,184 @@
|
||||
package org.nl.wms.sch_manage.service.util.tasks.zw;
|
||||
|
||||
import cn.hutool.core.date.DateUtil;
|
||||
import cn.hutool.core.util.ObjectUtil;
|
||||
import com.alibaba.fastjson.JSONObject;
|
||||
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
|
||||
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
|
||||
import org.nl.common.exception.BadRequestException;
|
||||
import org.nl.common.utils.CodeUtil;
|
||||
import org.nl.common.utils.SecurityUtils;
|
||||
import org.nl.common.utils.IdUtil;;
|
||||
import org.nl.wms.basedata_manage.enums.BaseDataEnum;
|
||||
import org.nl.wms.basedata_manage.service.IStructattrService;
|
||||
import org.nl.wms.basedata_manage.service.dao.Structattr;
|
||||
import org.nl.wms.sch_manage.enums.TaskStatus;
|
||||
import org.nl.wms.sch_manage.service.ISchBasePointService;
|
||||
import org.nl.wms.sch_manage.service.ISchBaseTaskService;
|
||||
import org.nl.wms.sch_manage.service.dao.SchBasePoint;
|
||||
import org.nl.wms.sch_manage.service.dao.SchBaseTask;
|
||||
import org.nl.wms.sch_manage.service.util.AbstractTask;
|
||||
import org.nl.wms.sch_manage.service.util.AcsTaskDto;
|
||||
import org.nl.wms.sch_manage.service.util.TaskType;
|
||||
import org.nl.wms.warehouse_manage.enums.IOSEnum;
|
||||
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.dao.IOStorInvDis;
|
||||
import org.nl.wms.warehouse_manage.inAndOut.service.dao.mapper.IOStorInvDisMapper;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Component;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
|
||||
/**
|
||||
* @Author: zhengxuming
|
||||
* @Description: 来料入库
|
||||
* @Date: 2025年7月24日13:19:24
|
||||
*/
|
||||
@Component(value = "InBillTask")
|
||||
@TaskType("InBillTask")
|
||||
public class InBillTask extends AbstractTask {
|
||||
|
||||
/**
|
||||
* 任务服务类
|
||||
*/
|
||||
@Resource
|
||||
private ISchBaseTaskService taskService;
|
||||
|
||||
|
||||
@Resource
|
||||
private IInBillService rawAssistIStorService;
|
||||
|
||||
|
||||
@Resource
|
||||
private IOStorInvDisMapper ioStorInvDisMapper;
|
||||
|
||||
@Resource
|
||||
private IOutBillService outBillService;
|
||||
|
||||
@Override
|
||||
public String create(JSONObject json) {
|
||||
SchBaseTask task = new SchBaseTask();
|
||||
task.setTask_id(IdUtil.getStringId());
|
||||
task.setTask_code(json.getString("TaskCode"));
|
||||
task.setTask_status(TaskStatus.CREATE.getCode());
|
||||
task.setConfig_code(json.getString("task_type"));
|
||||
task.setPoint_code1(json.getString("point_code1"));
|
||||
task.setPoint_code2(json.getString("point_code2"));
|
||||
task.setPoint_code3(json.getString("point_code3"));
|
||||
task.setPoint_code4(json.getString("point_code4"));
|
||||
task.setVehicle_code(json.getString("vehicle_code"));
|
||||
task.setVehicle_code2(json.getString("vehicle_code2"));
|
||||
task.setGroup_id(json.getString("group_id"));
|
||||
task.setRequest_param(json.toString());
|
||||
task.setPriority(json.getString("Priority"));
|
||||
task.setCreate_id(SecurityUtils.getCurrentUserId());
|
||||
task.setCreate_name(SecurityUtils.getCurrentNickName());
|
||||
task.setCreate_time(DateUtil.now());
|
||||
taskService.save(task);
|
||||
return task.getTask_id();
|
||||
}
|
||||
|
||||
@Override
|
||||
public AcsTaskDto sendAcsParam(String taskId) {
|
||||
SchBaseTask taskDao = taskService.getById(taskId);
|
||||
// 组织下发给acs的数据
|
||||
AcsTaskDto acsTaskDto = new AcsTaskDto();
|
||||
acsTaskDto.setExt_task_uuid(taskDao.getTask_id());
|
||||
acsTaskDto.setTask_code(taskDao.getTask_code());
|
||||
acsTaskDto.setStart_device_code(taskDao.getPoint_code1());
|
||||
acsTaskDto.setNext_device_code(taskDao.getPoint_code2());
|
||||
acsTaskDto.setStart_device_code2(taskDao.getPoint_code3());
|
||||
acsTaskDto.setNext_device_code2(taskDao.getPoint_code4());
|
||||
acsTaskDto.setPriority(taskDao.getPriority());
|
||||
acsTaskDto.setTask_type("1");
|
||||
return acsTaskDto;
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void updateStatus(String task_code, TaskStatus status) {
|
||||
// 校验任务
|
||||
SchBaseTask taskObj = taskService.getByCode(task_code);
|
||||
if (taskObj.getTask_status().equals(TaskStatus.FINISHED.getCode())) {
|
||||
throw new BadRequestException("该任务已完成!");
|
||||
}
|
||||
if (taskObj.getTask_status().equals(TaskStatus.CANCELED.getCode())) {
|
||||
throw new BadRequestException("该任务已取消!");
|
||||
}
|
||||
// 根据传来的类型去对任务进行操作
|
||||
if (status.equals(TaskStatus.EXECUTING)) {
|
||||
taskObj.setTask_status(TaskStatus.EXECUTING.getCode());
|
||||
taskObj.setRemark("执行中");
|
||||
taskService.updateById(taskObj);
|
||||
}
|
||||
if (status.equals(TaskStatus.FINISHED)) {
|
||||
this.finishTask(taskObj);
|
||||
}
|
||||
if (status.equals(TaskStatus.CANCELED)) {
|
||||
this.cancelTask(taskObj);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void forceFinish(String task_code) {
|
||||
SchBaseTask taskObj = taskService.getByCode(task_code);
|
||||
if (ObjectUtil.isEmpty(taskObj)) {
|
||||
throw new BadRequestException("该任务不存在");
|
||||
}
|
||||
this.finishTask(taskObj);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void cancel(String task_code) {
|
||||
SchBaseTask taskObj = taskService.getByCode(task_code);
|
||||
if (ObjectUtil.isEmpty(taskObj)) {
|
||||
throw new BadRequestException("该任务不存在");
|
||||
}
|
||||
if (!TaskStatus.CREATE.getCode().equals(taskObj.getTask_status())) {
|
||||
throw new BadRequestException("任务状态必须为生成才能取消任务");
|
||||
}
|
||||
this.cancelTask(taskObj);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void backMes(String task_code) {
|
||||
|
||||
}
|
||||
|
||||
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
public void finishTask(SchBaseTask taskObj) {
|
||||
// 任务完成
|
||||
taskObj.setTask_status(TaskStatus.FINISHED.getCode());
|
||||
taskObj.setRemark("已完成");
|
||||
taskService.updateById(taskObj);
|
||||
rawAssistIStorService.taskFinish(taskObj);
|
||||
}
|
||||
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
public void cancelTask(SchBaseTask taskObj) {
|
||||
|
||||
// 取消任务
|
||||
taskService.update(new LambdaUpdateWrapper<SchBaseTask>()
|
||||
.set(SchBaseTask::getIs_delete, BaseDataEnum.IS_YES_NOT.code("是"))
|
||||
.set(SchBaseTask::getTask_status, TaskStatus.CANCELED.getCode())
|
||||
.set(SchBaseTask::getRemark,"已取消")
|
||||
.eq(SchBaseTask::getTask_id,taskObj.getTask_id())
|
||||
);
|
||||
|
||||
//分配表清除任务
|
||||
ioStorInvDisMapper.update(new IOStorInvDis(),new LambdaUpdateWrapper<>(IOStorInvDis.class)
|
||||
.set(IOStorInvDis::getTask_id,null)
|
||||
.set(IOStorInvDis::getPoint_code,null)
|
||||
.set(IOStorInvDis::getIs_issued,0)
|
||||
.set(IOStorInvDis::getWork_status, IOSEnum.INBILL_DIS_STATUS.code("未生成"))
|
||||
.eq(IOStorInvDis::getTask_id,taskObj.getTask_id())
|
||||
);
|
||||
|
||||
// 更新任务状态
|
||||
taskObj.setTask_status(TaskStatus.CANCELED.getCode());
|
||||
taskObj.setRemark("已取消");
|
||||
taskService.updateById(taskObj);
|
||||
}
|
||||
}
|
||||
@@ -78,4 +78,11 @@ public class IOSConstant {
|
||||
*/
|
||||
public final static String VEHICLE_OUT_TASK = "VehicleOutTask";
|
||||
|
||||
|
||||
/**
|
||||
* 来料入库
|
||||
* 一共需要4个点位 1、卸货区点 2、原料仓上架点 3、空托盘出库点 4、空托盘卸货区放置点
|
||||
*/
|
||||
public final static String IN_BILL_TASK = "InBillTask";
|
||||
|
||||
}
|
||||
|
||||
@@ -46,6 +46,8 @@ public interface IInBillService extends IService<IOStorInv> {
|
||||
|
||||
void divPoint(Map whereJson);
|
||||
|
||||
String divPointNoTask(Map whereJson);
|
||||
|
||||
void confirm(Map whereJson);
|
||||
|
||||
void taskFinish(SchBaseTask task);
|
||||
|
||||
@@ -551,6 +551,22 @@ public class InBillServiceImpl extends ServiceImpl<IOStorInvMapper, IOStorInv> i
|
||||
ioStorInvDisMapper.updateById(dis);
|
||||
}
|
||||
|
||||
@Override
|
||||
public String divPointNoTask(Map whereJson) {
|
||||
ArrayList<HashMap> rows = (ArrayList<HashMap>) whereJson.get("tableMater");
|
||||
String point_code = (String) whereJson.get("point_code");
|
||||
HashMap<String, String> map = rows.get(0);
|
||||
|
||||
//判断是否已经分配好货位
|
||||
IOStorInvDis ioStorInvDis = ioStorInvDisMapper.selectOne(new LambdaQueryWrapper<>(IOStorInvDis.class)
|
||||
.eq(IOStorInvDis::getIostorinvdis_id, map.get("iostorinvdis_id"))
|
||||
.and(wrapper -> wrapper.isNotNull(IOStorInvDis::getStruct_code).or().ne(IOStorInvDis::getStruct_code, "")));
|
||||
if (ObjectUtil.isEmpty(ioStorInvDis)) {
|
||||
throw new BadRequestException("该明细还没分配货位,请先分配货位");
|
||||
}
|
||||
return ioStorInvDis.getStruct_code();
|
||||
}
|
||||
|
||||
@Override
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
public void confirm(Map whereJson) {
|
||||
|
||||
@@ -58,7 +58,8 @@
|
||||
gro.*,
|
||||
mater.material_id,
|
||||
mater.material_code,
|
||||
mater.material_name
|
||||
mater.material_name,
|
||||
mater.material_model
|
||||
FROM
|
||||
md_pb_groupplate gro
|
||||
LEFT JOIN md_me_materialbase mater ON mater.material_id = gro.material_id
|
||||
@@ -68,6 +69,10 @@
|
||||
AND
|
||||
gro.storagevehicle_code = #{params.vehicleCode}
|
||||
</if>
|
||||
<if test="params.noEmptyVehicle != null and params.noEmptyVehicle != ''">
|
||||
AND
|
||||
mater.material_name <![CDATA[ <> ]]> '空托盘'
|
||||
</if>
|
||||
<if test="params.status != null and params.status != ''">
|
||||
AND
|
||||
gro.status = #{params.status}
|
||||
@@ -76,6 +81,7 @@
|
||||
AND
|
||||
gro.qty>0
|
||||
</if>
|
||||
|
||||
</where>
|
||||
ORDER BY gro.create_time Desc
|
||||
</select>
|
||||
|
||||
@@ -259,9 +259,12 @@ export default {
|
||||
this.sects = res.content
|
||||
})
|
||||
|
||||
const area_type = 'RKQ'
|
||||
const area_type = 'YLXCQ'
|
||||
|
||||
crudPoint.getPointList({ 'region_code': area_type }).then(res => {
|
||||
// 点位类型,因为卸货区的点位类型(出库区、入库区)会变动,因需要增加点位类型字段进行判断
|
||||
// 1-入库区,2-出库区
|
||||
const region_type = '1'
|
||||
crudPoint.getPointList({ 'region_code': area_type, 'region_type': region_type }).then(res => {
|
||||
this.pointlist = res
|
||||
})
|
||||
},
|
||||
|
||||
@@ -323,10 +323,12 @@ export default {
|
||||
crudSectattr.getSect({ 'stor_id': this.storId }).then(res => {
|
||||
this.sects = res.content
|
||||
})
|
||||
|
||||
const area_type = 'CKQ'
|
||||
crudPoint.getPointList({ 'region_code': area_type }).then(res => {
|
||||
this.pointList = res
|
||||
const area_type = 'YLXCQ'
|
||||
// 点位类型,因为卸货区的点位类型(出库区、入库区)会变动,因需要增加点位类型字段进行判断
|
||||
// 1-入库区,2-出库区
|
||||
const region_type = '2'
|
||||
crudPoint.getPointList({ 'region_code': area_type, 'region_type': region_type }).then(res => {
|
||||
this.pointlist = res
|
||||
})
|
||||
},
|
||||
close() {
|
||||
|
||||
Reference in New Issue
Block a user