diff --git a/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/base_manage/strategy/controller/StStrategyConfigController.java b/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/base_manage/strategy/controller/StStrategyConfigController.java new file mode 100644 index 00000000..e8da854c --- /dev/null +++ b/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/base_manage/strategy/controller/StStrategyConfigController.java @@ -0,0 +1,65 @@ +package org.nl.wms.base_manage.strategy.controller; + + +import org.nl.common.anno.Log; +import org.nl.common.domain.entity.PageQuery; +import org.nl.wms.base_manage.strategy.service.IStStrategyConfigService; +import org.nl.wms.base_manage.strategy.service.dao.StStrategyConfig; +import org.nl.wms.base_manage.strategy.service.dto.StrategyQuery; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.http.HttpStatus; +import org.springframework.http.ResponseEntity; +import org.springframework.validation.annotation.Validated; +import org.springframework.web.bind.annotation.*; + +/** + *

+ * 仓储策略配置表 前端控制器 + *

+ * + * @author generator + * @since 2024-04-07 + */ +@RestController +@RequestMapping("/api/strategy") +public class StStrategyConfigController { + + @Autowired + private IStStrategyConfigService iStStrategyConfigService; + + @GetMapping + @Log("分页查询") + public ResponseEntity query(StrategyQuery query, PageQuery page) { + return new ResponseEntity<>(iStStrategyConfigService.pageQuery(query, page), HttpStatus.OK); + } + + @PostMapping + @Log("新增") + public ResponseEntity create(@Validated @RequestBody StStrategyConfig dao) { + iStStrategyConfigService.create(dao); + return new ResponseEntity<>(HttpStatus.OK); + } + + @PutMapping + @Log("修改") + public ResponseEntity update(@Validated @RequestBody StStrategyConfig dao) { + iStStrategyConfigService.update(dao); + return new ResponseEntity<>(HttpStatus.OK); + } + + @DeleteMapping + @Log("删除") + public ResponseEntity delete(@RequestBody Long[] ids) { + iStStrategyConfigService.deleteAll(ids); + return new ResponseEntity<>(HttpStatus.OK); + } + + @PutMapping("/changeActive") + @Log("修改启用状态") + public ResponseEntity changeActive(@Validated @RequestBody StStrategyConfig dao) { + iStStrategyConfigService.changeActive(dao); + return new ResponseEntity<>(HttpStatus.NO_CONTENT); + } + +} + diff --git a/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/base_manage/strategy/service/IStStrategyConfigService.java b/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/base_manage/strategy/service/IStStrategyConfigService.java new file mode 100644 index 00000000..cfa88e23 --- /dev/null +++ b/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/base_manage/strategy/service/IStStrategyConfigService.java @@ -0,0 +1,48 @@ +package org.nl.wms.base_manage.strategy.service; + +import org.nl.common.domain.entity.PageQuery; +import org.nl.wms.base_manage.strategy.service.dao.StStrategyConfig; +import com.baomidou.mybatisplus.extension.service.IService; +import org.nl.wms.base_manage.strategy.service.dto.StrategyQuery; + +/** + *

+ * 仓储策略配置表 服务类 + *

+ * + * @author generator + * @since 2024-04-07 + */ +public interface IStStrategyConfigService extends IService { + + /** + * 分页查询 + * @param query,page / + * @return JSONObject + */ + Object pageQuery(StrategyQuery query, PageQuery page); + + /** + * 新增 + * @param dao:实体类 + */ + void create(StStrategyConfig dao); + + /** + * 修改 + * @param dao: 实体类 + */ + void update(StStrategyConfig dao); + + /** + * 删除 + * @param ids : 标识 + */ + void deleteAll(Long[] ids); + + /** + * 修改启用状态 + * @param dao:实体类 + */ + void changeActive(StStrategyConfig dao); +} diff --git a/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/stor_manage/service/iostor/dao/StIvtIostorinv.java b/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/base_manage/strategy/service/dao/StStrategyConfig.java similarity index 50% rename from wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/stor_manage/service/iostor/dao/StIvtIostorinv.java rename to wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/base_manage/strategy/service/dao/StStrategyConfig.java index 4d7e9d5c..85958345 100644 --- a/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/stor_manage/service/iostor/dao/StIvtIostorinv.java +++ b/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/base_manage/strategy/service/dao/StStrategyConfig.java @@ -1,87 +1,80 @@ -package org.nl.wms.stor_manage.service.iostor.dao; +package org.nl.wms.base_manage.strategy.service.dao; +import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; -import java.io.Serializable; import lombok.Data; import lombok.EqualsAndHashCode; +import java.io.Serializable; + /** *

- * 出入库单主表 + * 仓储策略配置表 *

* * @author generator - * @since 2024-03-28 + * @since 2024-04-07 */ @Data @EqualsAndHashCode(callSuper = false) -@TableName("st_ivt_iostorinv") -public class StIvtIostorinv implements Serializable { +@TableName("st_strategy_config") +public class StStrategyConfig implements Serializable { private static final long serialVersionUID = 1L; /** - * 出入单标识 + * 策略标识 */ + @TableId private String id; /** - * 单据编号 + * 策略编码 */ - private String code; + private String strategy_code; /** - * 出入类型 + * 策略名称 */ - private Boolean io_type; + private String strategy_name; /** - * 业务日期 + * 策略类型 */ - private String biz_date; + private String strategy_type; /** - * 生产区域编码 + * 类处理类型 */ - private String product_code; + private String class_type; /** - * 单据状态 + * 参数 */ - private String status; + private String param; /** - * 备注 + * 描述 */ private String remark; /** - * 是否删除 + * 是否启用 */ - private Boolean is_delete; + private String is_used; /** - * 源单号 - */ - private String source_code; - - /** - * 源单类型 - */ - private String source_type; - - /** - * 关联订单 - */ - private String order; - - /** - * 制单人 + * 创建人 */ private String create_id; /** - * 制单时间 + * 创建人名称 + */ + private String create_name; + + /** + * 创建时间 */ private String create_time; @@ -90,15 +83,20 @@ public class StIvtIostorinv implements Serializable { */ private String update_id; + /** + * 修改人名称 + */ + private String update_name; + /** * 修改时间 */ private String update_time; /** - * 自定义映射数据 + * 是否删除 */ - private String form_data; + private String is_delete; } diff --git a/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/base_manage/strategy/service/dao/mapper/StStrategyConfigMapper.java b/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/base_manage/strategy/service/dao/mapper/StStrategyConfigMapper.java new file mode 100644 index 00000000..92cf73b7 --- /dev/null +++ b/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/base_manage/strategy/service/dao/mapper/StStrategyConfigMapper.java @@ -0,0 +1,29 @@ +package org.nl.wms.base_manage.strategy.service.dao.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import org.apache.ibatis.annotations.Param; +import org.nl.common.domain.entity.PageQuery; +import org.nl.wms.base_manage.strategy.service.dao.StStrategyConfig; +import org.nl.wms.base_manage.strategy.service.dto.StrategyQuery; + +import java.util.List; +import java.util.Map; + +/** + *

+ * 仓储策略配置表 Mapper 接口 + *

+ * + * @author generator + * @since 2024-04-07 + */ +public interface StStrategyConfigMapper extends BaseMapper { + + /** + * 分页查询 + * @param query:查询条件 + * @param pageQuery 分页 + * @return List + */ + List getPageQuery(@Param("query") StrategyQuery query, @Param("pageQuery") PageQuery pageQuery); +} diff --git a/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/base_manage/strategy/service/dao/mapper/xml/StStrategyConfigMapper.xml b/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/base_manage/strategy/service/dao/mapper/xml/StStrategyConfigMapper.xml new file mode 100644 index 00000000..13240bfc --- /dev/null +++ b/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/base_manage/strategy/service/dao/mapper/xml/StStrategyConfigMapper.xml @@ -0,0 +1,20 @@ + + + + + diff --git a/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/base_manage/strategy/service/dto/StrategyQuery.java b/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/base_manage/strategy/service/dto/StrategyQuery.java new file mode 100644 index 00000000..d404f746 --- /dev/null +++ b/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/base_manage/strategy/service/dto/StrategyQuery.java @@ -0,0 +1,25 @@ +package org.nl.wms.base_manage.strategy.service.dto; + +import lombok.Data; +import org.nl.common.domain.entity.BaseQuery; +import org.nl.common.domain.entity.QParam; +import org.nl.common.enums.QueryTEnum; +import org.nl.wms.base_manage.measure.service.dao.BmMeasureUnit; +import org.nl.wms.base_manage.strategy.service.dao.StStrategyConfig; + +/* + * @author ZZQ + * @Date 2023/5/4 19:49 + */ +@Data +public class StrategyQuery extends BaseQuery { + + private String strategy_name; + + @Override + public void paramMapping() { + super.doP.put("strategy_name", QParam.builder().k(new String[]{"strategy_name"}).type(QueryTEnum.LK).build()); + } + + +} diff --git a/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/base_manage/strategy/service/impl/StStrategyConfigServiceImpl.java b/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/base_manage/strategy/service/impl/StStrategyConfigServiceImpl.java new file mode 100644 index 00000000..831db438 --- /dev/null +++ b/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/base_manage/strategy/service/impl/StStrategyConfigServiceImpl.java @@ -0,0 +1,114 @@ +package org.nl.wms.base_manage.strategy.service.impl; + +import cn.hutool.core.date.DateUtil; +import cn.hutool.core.util.ObjectUtil; +import cn.hutool.core.util.StrUtil; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.github.pagehelper.Page; +import com.github.pagehelper.PageHelper; +import org.nl.common.TableDataInfo; +import org.nl.common.domain.entity.PageQuery; +import org.nl.common.domain.exception.BadRequestException; +import org.nl.common.utils.IdUtil; +import org.nl.common.utils.SecurityUtils; +import org.nl.wms.base_manage.strategy.service.IStStrategyConfigService; +import org.nl.wms.base_manage.strategy.service.dao.StStrategyConfig; +import org.nl.wms.base_manage.strategy.service.dao.mapper.StStrategyConfigMapper; +import org.nl.wms.base_manage.strategy.service.dto.StrategyQuery; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import java.util.List; +import java.util.Map; + +/** + *

+ * 仓储策略配置表 服务实现类 + *

+ * + * @author generator + * @since 2024-04-07 + */ +@Service +public class StStrategyConfigServiceImpl extends ServiceImpl implements IStStrategyConfigService { + + @Override + public Object pageQuery(StrategyQuery query, PageQuery pageQuery) { + Page page = PageHelper.startPage(pageQuery.getPage() + 1, pageQuery.getSize()); + page.setOrderBy("create_time DESC"); + List mstDetail = this.baseMapper.getPageQuery(query, pageQuery); + + TableDataInfo build = TableDataInfo.build(mstDetail); + build.setTotalElements(page.getTotal()); + return build; + } + + @Override + @Transactional(rollbackFor = Exception.class) + public void create(StStrategyConfig dao) { + + StStrategyConfig oldDao = this.getOne( + new QueryWrapper().lambda() + .eq(StStrategyConfig::getStrategy_name, dao.getStrategy_name()) + ); + + if (ObjectUtil.isNotEmpty(oldDao)) { + throw new BadRequestException("已存在相同名称的策略【"+dao.getStrategy_name()+"】"); + } + + dao.setId(IdUtil.getStringId()); + dao.setStrategy_code("000"); + dao.setIs_used("1"); + dao.setIs_delete("0"); + dao.setCreate_id(SecurityUtils.getCurrentUserId()); + dao.setCreate_name(SecurityUtils.getCurrentNickName()); + dao.setCreate_time(DateUtil.now()); + this.save(dao); + + } + + @Override + @Transactional(rollbackFor = Exception.class) + public void update(StStrategyConfig dao) { + + dao.setUpdate_id(SecurityUtils.getCurrentUserId()); + dao.setUpdate_name(SecurityUtils.getCurrentNickName()); + dao.setUpdate_time(DateUtil.now()); + this.updateById(dao); + + } + + @Override + @Transactional(rollbackFor = Exception.class) + public void deleteAll(Long[] ids) { + this.update( + new UpdateWrapper().lambda() + .set(StStrategyConfig::getUpdate_id,SecurityUtils.getCurrentUserId()) + .set(StStrategyConfig::getUpdate_name, SecurityUtils.getCurrentNickName()) + .set(StStrategyConfig::getUpdate_time, DateUtil.now()) + .set(StStrategyConfig::getIs_delete, "1") + .in(StStrategyConfig::getId, ids) + ); + + } + + @Override + @Transactional(rollbackFor = Exception.class) + public void changeActive(StStrategyConfig dao) { + + String isUsed = "1"; + if (StrUtil.equals("1", dao.getIs_used())) { + isUsed = "0"; + } + + dao.setIs_used(isUsed); + dao.setUpdate_time(DateUtil.now()); + dao.setUpdate_id(SecurityUtils.getCurrentUserId()); + dao.setUpdate_name(SecurityUtils.getCurrentNickName()); + this.updateById(dao); + } + + +} diff --git a/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/base_manage/struct/controller/StIvtStructattrController.java b/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/base_manage/struct/controller/StIvtStructattrController.java new file mode 100644 index 00000000..8f0a8b4e --- /dev/null +++ b/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/base_manage/struct/controller/StIvtStructattrController.java @@ -0,0 +1,21 @@ +package org.nl.wms.base_manage.struct.controller; + + +import org.springframework.web.bind.annotation.RequestMapping; + +import org.springframework.web.bind.annotation.RestController; + +/** + *

+ * 仓位属性表 前端控制器 + *

+ * + * @author generator + * @since 2024-04-08 + */ +@RestController +@RequestMapping("/stIvtStructattr") +public class StIvtStructattrController { + +} + diff --git a/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/base_manage/struct/service/IStIvtStructattrService.java b/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/base_manage/struct/service/IStIvtStructattrService.java new file mode 100644 index 00000000..e3b752d7 --- /dev/null +++ b/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/base_manage/struct/service/IStIvtStructattrService.java @@ -0,0 +1,16 @@ +package org.nl.wms.base_manage.struct.service; + +import org.nl.wms.base_manage.struct.service.dao.StIvtStructattr; +import com.baomidou.mybatisplus.extension.service.IService; + +/** + *

+ * 仓位属性表 服务类 + *

+ * + * @author generator + * @since 2024-04-08 + */ +public interface IStIvtStructattrService extends IService { + +} diff --git a/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/base_manage/struct/service/dao/StIvtStructattr.java b/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/base_manage/struct/service/dao/StIvtStructattr.java new file mode 100644 index 00000000..d6fc0eb2 --- /dev/null +++ b/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/base_manage/struct/service/dao/StIvtStructattr.java @@ -0,0 +1,200 @@ +package org.nl.wms.base_manage.struct.service.dao; + +import java.math.BigDecimal; +import com.baomidou.mybatisplus.annotation.TableName; +import java.io.Serializable; +import lombok.Data; +import lombok.EqualsAndHashCode; + +/** + *

+ * 仓位属性表 + *

+ * + * @author generator + * @since 2024-04-08 + */ +@Data +@EqualsAndHashCode(callSuper = false) +@TableName("st_ivt_structattr") +public class StIvtStructattr implements Serializable { + + private static final long serialVersionUID = 1L; + + /** + * 仓位标识 + */ + private String id; + + /** + * 仓位编码 + */ + private String struct_code; + + /** + * 仓位名称 + */ + private String struct_name; + + /** + * 库区标识 + */ + private String sect_id; + + /** + * 仓库标识 + */ + private String stor_id; + + /** + * 容量 + */ + private BigDecimal capacity; + + /** + * 宽度 + */ + private BigDecimal width; + + /** + * 高度 + */ + private BigDecimal height; + + /** + * 深度 + */ + private BigDecimal zdepth; + + /** + * 承受重量 + */ + private BigDecimal weight; + + /** + * 起始X坐标 + */ + private BigDecimal xqty; + + /** + * 起始Y坐标 + */ + private BigDecimal yqty; + + /** + * 起始Z坐标 + */ + private BigDecimal zqty; + + /** + * 排 + */ + private BigDecimal row_num; + + /** + * 列 + */ + private BigDecimal col_num; + + /** + * 层 + */ + private BigDecimal layer_num; + + /** + * 块 + */ + private BigDecimal block_num; + + /** + * 入库顺序 + */ + private BigDecimal in_order_seq; + + /** + * 出库库顺序 + */ + private BigDecimal out_order_seq; + + /** + * 放置类型 + */ + private String placement_type; + + /** + * 超限货位关联的货位编号 + */ + private String control_code; + + /** + * 创建人 + */ + private String create_id; + + /** + * 创建人姓名 + */ + private String create_name; + + /** + * 创建时间 + */ + private String create_time; + + /** + * 是否临时仓位 + */ + private Boolean is_temp; + + /** + * 是否启用 + */ + private Boolean is_used; + + /** + * 是否判断高度 + */ + private String is_zdepth; + + /** + * 是否空载具 + */ + private Boolean is_emp; + + /** + * 物料标识 + */ + private String material_id; + + /** + * 存储载具号 + */ + private String vehicle_code; + + /** + * 备注 + */ + private String remark; + + /** + * 背景图片 + */ + private String back_ground_pic; + + /** + * 前景色 + */ + private String front_ground_color; + + /** + * 背景色 + */ + private String back_ground_color; + + /** + * 字体显示方向 + */ + private String font_direction_scode; + + +} diff --git a/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/base_manage/struct/service/dao/mapper/StIvtStructattrMapper.java b/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/base_manage/struct/service/dao/mapper/StIvtStructattrMapper.java new file mode 100644 index 00000000..f7e368b5 --- /dev/null +++ b/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/base_manage/struct/service/dao/mapper/StIvtStructattrMapper.java @@ -0,0 +1,16 @@ +package org.nl.wms.base_manage.struct.service.dao.mapper; + +import org.nl.wms.base_manage.struct.service.dao.StIvtStructattr; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; + +/** + *

+ * 仓位属性表 Mapper 接口 + *

+ * + * @author generator + * @since 2024-04-08 + */ +public interface StIvtStructattrMapper extends BaseMapper { + +} diff --git a/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/base_manage/struct/service/dao/mapper/xml/StIvtStructattrMapper.xml b/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/base_manage/struct/service/dao/mapper/xml/StIvtStructattrMapper.xml new file mode 100644 index 00000000..a79535e3 --- /dev/null +++ b/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/base_manage/struct/service/dao/mapper/xml/StIvtStructattrMapper.xml @@ -0,0 +1,5 @@ + + + + + diff --git a/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/base_manage/struct/service/impl/StIvtStructattrServiceImpl.java b/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/base_manage/struct/service/impl/StIvtStructattrServiceImpl.java new file mode 100644 index 00000000..e4fb4615 --- /dev/null +++ b/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/base_manage/struct/service/impl/StIvtStructattrServiceImpl.java @@ -0,0 +1,20 @@ +package org.nl.wms.base_manage.struct.service.impl; + +import org.nl.wms.base_manage.struct.service.dao.StIvtStructattr; +import org.nl.wms.base_manage.struct.service.dao.mapper.StIvtStructattrMapper; +import org.nl.wms.base_manage.struct.service.IStIvtStructattrService; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import org.springframework.stereotype.Service; + +/** + *

+ * 仓位属性表 服务实现类 + *

+ * + * @author generator + * @since 2024-04-08 + */ +@Service +public class StIvtStructattrServiceImpl extends ServiceImpl implements IStIvtStructattrService { + +} diff --git a/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/base_manage/vehicleext/controller/MdPbStoragevehicleextController.java b/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/base_manage/vehicleext/controller/MdPbStoragevehicleextController.java new file mode 100644 index 00000000..03fd6647 --- /dev/null +++ b/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/base_manage/vehicleext/controller/MdPbStoragevehicleextController.java @@ -0,0 +1,21 @@ +package org.nl.wms.base_manage.vehicleext.controller; + + +import org.springframework.web.bind.annotation.RequestMapping; + +import org.springframework.web.bind.annotation.RestController; + +/** + *

+ * 载具扩展属性信息表 前端控制器 + *

+ * + * @author generator + * @since 2024-04-09 + */ +@RestController +@RequestMapping("/mdPbStoragevehicleext") +public class MdPbStoragevehicleextController { + +} + diff --git a/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/base_manage/vehicleext/service/IMdPbStoragevehicleextService.java b/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/base_manage/vehicleext/service/IMdPbStoragevehicleextService.java new file mode 100644 index 00000000..5ae051f2 --- /dev/null +++ b/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/base_manage/vehicleext/service/IMdPbStoragevehicleextService.java @@ -0,0 +1,16 @@ +package org.nl.wms.base_manage.vehicleext.service; + +import org.nl.wms.base_manage.vehicleext.service.dao.MdPbStoragevehicleext; +import com.baomidou.mybatisplus.extension.service.IService; + +/** + *

+ * 载具扩展属性信息表 服务类 + *

+ * + * @author generator + * @since 2024-04-09 + */ +public interface IMdPbStoragevehicleextService extends IService { + +} diff --git a/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/base_manage/vehicleext/service/dao/MdPbStoragevehicleext.java b/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/base_manage/vehicleext/service/dao/MdPbStoragevehicleext.java new file mode 100644 index 00000000..2e405763 --- /dev/null +++ b/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/base_manage/vehicleext/service/dao/MdPbStoragevehicleext.java @@ -0,0 +1,70 @@ +package org.nl.wms.base_manage.vehicleext.service.dao; + +import java.math.BigDecimal; +import com.baomidou.mybatisplus.annotation.TableName; +import java.io.Serializable; +import lombok.Data; +import lombok.EqualsAndHashCode; + +/** + *

+ * 载具扩展属性信息表 + *

+ * + * @author generator + * @since 2024-04-09 + */ +@Data +@EqualsAndHashCode(callSuper = false) +@TableName("md_pb_storagevehicleext") +public class MdPbStoragevehicleext implements Serializable { + + private static final long serialVersionUID = 1L; + + /** + * 载具编码 + */ + private String storagevehicle_code; + + /** + * 物料标识 + */ + private String material_id; + + /** + * 批次 + */ + private String pcsn; + + /** + * 数量 + */ + private BigDecimal qty; + + /** + * 重量 + */ + private BigDecimal weight; + + /** + * 修改时间 + */ + private String update_time; + + /** + * 数量计量单位标识 + */ + private String qty_unit_id; + + /** + * 备注 + */ + private String remark; + + /** + * 入库时间 + */ + private String insert_time; + + +} diff --git a/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/base_manage/vehicleext/service/dao/mapper/MdPbStoragevehicleextMapper.java b/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/base_manage/vehicleext/service/dao/mapper/MdPbStoragevehicleextMapper.java new file mode 100644 index 00000000..12653619 --- /dev/null +++ b/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/base_manage/vehicleext/service/dao/mapper/MdPbStoragevehicleextMapper.java @@ -0,0 +1,16 @@ +package org.nl.wms.base_manage.vehicleext.service.dao.mapper; + +import org.nl.wms.base_manage.vehicleext.service.dao.MdPbStoragevehicleext; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; + +/** + *

+ * 载具扩展属性信息表 Mapper 接口 + *

+ * + * @author generator + * @since 2024-04-09 + */ +public interface MdPbStoragevehicleextMapper extends BaseMapper { + +} diff --git a/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/base_manage/vehicleext/service/dao/mapper/xml/MdPbStoragevehicleextMapper.xml b/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/base_manage/vehicleext/service/dao/mapper/xml/MdPbStoragevehicleextMapper.xml new file mode 100644 index 00000000..0dbedb9b --- /dev/null +++ b/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/base_manage/vehicleext/service/dao/mapper/xml/MdPbStoragevehicleextMapper.xml @@ -0,0 +1,5 @@ + + + + + diff --git a/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/base_manage/vehicleext/service/impl/MdPbStoragevehicleextServiceImpl.java b/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/base_manage/vehicleext/service/impl/MdPbStoragevehicleextServiceImpl.java new file mode 100644 index 00000000..00317609 --- /dev/null +++ b/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/base_manage/vehicleext/service/impl/MdPbStoragevehicleextServiceImpl.java @@ -0,0 +1,20 @@ +package org.nl.wms.base_manage.vehicleext.service.impl; + +import org.nl.wms.base_manage.vehicleext.service.dao.MdPbStoragevehicleext; +import org.nl.wms.base_manage.vehicleext.service.dao.mapper.MdPbStoragevehicleextMapper; +import org.nl.wms.base_manage.vehicleext.service.IMdPbStoragevehicleextService; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import org.springframework.stereotype.Service; + +/** + *

+ * 载具扩展属性信息表 服务实现类 + *

+ * + * @author generator + * @since 2024-04-09 + */ +@Service +public class MdPbStoragevehicleextServiceImpl extends ServiceImpl implements IMdPbStoragevehicleextService { + +} diff --git a/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/decision_manage/handler/service/impl/base/AlleyAveRuleHandler.java b/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/decision_manage/handler/service/impl/base/AlleyAveRuleHandler.java index 08da6b7c..3a217a2f 100644 --- a/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/decision_manage/handler/service/impl/base/AlleyAveRuleHandler.java +++ b/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/decision_manage/handler/service/impl/base/AlleyAveRuleHandler.java @@ -1,17 +1,240 @@ package org.nl.wms.decision_manage.handler.service.impl.base; +import cn.hutool.core.util.NumberUtil; +import cn.hutool.core.util.ObjectUtil; +import com.alibaba.fastjson.JSONObject; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import org.nl.common.domain.exception.BadRequestException; +import org.nl.wms.base_manage.struct.service.IStIvtStructattrService; +import org.nl.wms.base_manage.struct.service.dao.StIvtStructattr; +import org.nl.wms.base_manage.vehicleext.service.IMdPbStoragevehicleextService; +import org.nl.wms.base_manage.vehicleext.service.dao.MdPbStoragevehicleext; import org.nl.wms.decision_manage.handler.service.DecisionHandler; +import org.nl.wms.stor_manage.service.IStIvtIostorinvdtlService; +import org.nl.wms.stor_manage.service.dao.StIvtIostorinvdtl; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import java.math.BigDecimal; +import java.util.ArrayList; import java.util.List; +import java.util.Map; +import java.util.stream.Collectors; /* * @author ZZQ * @Date 2024/4/6 16:18 * 巷道均衡策略 */ -public class AlleyAveRuleHandler extends DecisionHandler { +@Service +public class AlleyAveRuleHandler extends DecisionHandler { + + /** + * 仓位服务 + */ + @Autowired + private IStIvtStructattrService iStIvtStructattrService; + + /** + * 出入库明细服务 + */ + @Autowired + private IStIvtIostorinvdtlService iStIvtIostorinvdtlService; + + /** + * 载具扩展属性服务服务 + */ + @Autowired + private IMdPbStoragevehicleextService iMdPbStoragevehicleextService; + + /** + * 巷道均衡策略 + * @param list :仓位集合 + * @param param:物料相关信息、出入类型:{ + * ioType: 出入类型 + * materialId: 物料标识 + * ... + * } + * @return List :仓位集合 + */ @Override - public List handler(List list, String param) { - return null; + public List handler(List list, String param) { + // 判断仓位是否为空 + if (ObjectUtil.isEmpty(list)) { + throw new BadRequestException("仓位集合为空!"); + } + + // 判断策略类型 + JSONObject jsonParam = JSONObject.parseObject(param, JSONObject.class); + + List resultList = new ArrayList<>(); + + switch (jsonParam.getString("ioType")) { + case "1": + // 入库策略 + resultList = inHandler(list,jsonParam); + break; + case "2": + // 出库策略 + resultList = outHandler(list,jsonParam); + break; + case "3": + // 通用策略 + break; + default: + throw new BadRequestException("策略类型错误!"); + } + return resultList; + } + + /** + * 入库策略 + * @param attrList :仓位集合 + * @param jsonParam:materialId :物料标识(此方法只根据物料进行匹配) + * @return List :仓位集合 + */ + private List inHandler(List attrList, JSONObject jsonParam) { + // in查询条件处理 + List blockNumIn = attrList.stream() + .map(StIvtStructattr::getBlock_num) + .distinct() + .collect(Collectors.toList()); + + // 查询相同巷道货位相同物料 + List blockAttrList = iStIvtStructattrService.list( + new QueryWrapper().lambda() + .eq(StIvtStructattr::getMaterial_id, jsonParam.getString("materialId")) + .in(StIvtStructattr::getBlock_num, blockNumIn) + ); + + // 如果为空说明这些巷道都没有相同物料的巷道,则返回所有仓位 + if (ObjectUtil.isEmpty(blockAttrList)) { + return attrList; + } + + // 计算每个巷道的相同物料 + Map> collectMap = blockAttrList.stream() + .collect(Collectors.groupingBy(StIvtStructattr::getBlock_num)); + + // 巷道 + int blockNum = blockAttrList.get(0).getBlock_num().intValue(); + // 集合数量 + int size = blockAttrList.size(); + for (BigDecimal num : collectMap.keySet()) { + int min = Math.min(size, collectMap.get(num).size()); + + if (size > min) { + // 返回最小的巷道 + blockNum = num.intValue(); + size = min; + } + + } + + // 匹配相同巷道的集合并返回 + int finalBlockNum = blockNum; + return attrList.stream() + .filter(row -> row.getBlock_num().intValue() == finalBlockNum) + .collect(Collectors.toList()); + } + + /** + * 出库策略 + * @param attrList :仓位物料信息 + * @param jsonParam:iostorinvdtlId : 出入库明细标识(此方法只根据明细物料匹配) + * @return List :需出库仓位集合 + */ + private List outHandler(List attrList, JSONObject jsonParam) { + + // 查询对应的出入库明细 + StIvtIostorinvdtl dtlDao = iStIvtIostorinvdtlService.getById(jsonParam.getString("iostorinvdtlId")); + + // 查询传入仓位物料中的数量是否满足明细中的数量 + List vehicleCodeIn = attrList.stream() + .map(StIvtStructattr::getVehicle_code) + .distinct() + .collect(Collectors.toList()); + + List extList = iMdPbStoragevehicleextService.list( + new QueryWrapper().lambda() + .in(MdPbStoragevehicleext::getStoragevehicle_code, vehicleCodeIn) + ); + + double attrQty = extList.stream() + .map(MdPbStoragevehicleext::getQty) + .reduce(BigDecimal.ZERO, BigDecimal::add) + .doubleValue(); + + if (dtlDao.getUnassign_qty().doubleValue() > attrQty) { + // 说明不满足所需重量则全部返回 + return attrList; + } + + // 需返回仓位物料集合 + List resultList = new ArrayList<>(); + // 满足所需数量: 根据巷道进行平均分配 + double unAssingQty = dtlDao.getUnassign_qty().doubleValue(); + + while (unAssingQty > 0) { + // 找出物料最多的巷道 + int blockNum = getMaxMaterial(attrList); + + // 匹配此巷道对应的仓位物料 + StIvtStructattr attrDao = attrList.stream() + .filter(row -> row.getBlock_num().intValue() == blockNum) + .findFirst().orElse(null); + + if (ObjectUtil.isEmpty(attrDao)) { + continue; + } + + // 添加需返回的仓位物料 + resultList.add(attrDao); + + // 减去未分配重量 + MdPbStoragevehicleext extDao = extList.stream() + .filter(row -> row.getStoragevehicle_code().equals(attrDao.getVehicle_code())) + .findFirst().orElse(null); + + if (ObjectUtil.isEmpty(extDao)) { + throw new BadRequestException("未查询到载具对应的物料【"+attrDao.getVehicle_code()+"】"); + } + + unAssingQty = NumberUtil.sub(unAssingQty,extDao.getQty().doubleValue()); + + // 移出此仓位物料,方便下一轮进行匹配 + attrList.remove(attrDao); + } + + return resultList; + } + + /** + * 出库策略 - 查询物料最多的巷道 + * @param attrList: 仓位物料 + * @return 巷道 + */ + private int getMaxMaterial(List attrList) { + // 根据巷道分组 + Map> collectMap = attrList.stream() + .collect(Collectors.groupingBy(StIvtStructattr::getBlock_num)); + + // 找最大物料巷道 + // 巷道 + int blockNum = attrList.get(0).getBlock_num().intValue(); + // 集合数量 + int size = 0; + + for (BigDecimal num : collectMap.keySet()) { + int max = Math.max(size, collectMap.get(num).size()); + + if (size < max) { + // 返回最大的巷道 + blockNum = num.intValue(); + size = max; + } + } + + return blockNum; } } diff --git a/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/decision_manage/handler/service/impl/base/ClusterRuleHandler.java b/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/decision_manage/handler/service/impl/base/ClusterRuleHandler.java index 2b727dac..09b3560e 100644 --- a/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/decision_manage/handler/service/impl/base/ClusterRuleHandler.java +++ b/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/decision_manage/handler/service/impl/base/ClusterRuleHandler.java @@ -1,17 +1,180 @@ package org.nl.wms.decision_manage.handler.service.impl.base; +import cn.hutool.core.util.NumberUtil; +import cn.hutool.core.util.ObjectUtil; +import com.alibaba.fastjson.JSONObject; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import org.nl.common.domain.exception.BadRequestException; +import org.nl.wms.base_manage.struct.service.IStIvtStructattrService; +import org.nl.wms.base_manage.struct.service.dao.StIvtStructattr; +import org.nl.wms.base_manage.vehicleext.service.IMdPbStoragevehicleextService; +import org.nl.wms.base_manage.vehicleext.service.dao.MdPbStoragevehicleext; import org.nl.wms.decision_manage.handler.service.DecisionHandler; +import org.nl.wms.stor_manage.service.IStIvtIostorinvdtlService; +import org.nl.wms.stor_manage.service.dao.StIvtIostorinvdtl; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import java.math.BigDecimal; +import java.util.ArrayList; import java.util.List; +import java.util.stream.Collectors; /* * @author ZZQ * @Date 2024/4/6 16:18 * 同类型聚簇策略 */ -public class ClusterRuleHandler extends DecisionHandler { +@Service +public class ClusterRuleHandler extends DecisionHandler { + + /** + * 仓位服务 + */ + @Autowired + private IStIvtStructattrService iStIvtStructattrService; + + /** + * 出入库明细服务 + */ + @Autowired + private IStIvtIostorinvdtlService iStIvtIostorinvdtlService; + + /** + * 载具扩展属性服务服务 + */ + @Autowired + private IMdPbStoragevehicleextService iMdPbStoragevehicleextService; + + /** + * 同类物品集中原则 + * @param list :仓位集合 + * @param param:物料相关信息、出入类型:{ + * ioType: 出入类型 + * materialId: 物料标识 + * ... + * } + * @return List :仓位集合 + */ @Override - public List handler(List list, String param) { - return null; + public List handler(List list, String param) { + // 判断仓位是否为空 + if (ObjectUtil.isEmpty(list)) { + throw new BadRequestException("仓位集合为空!"); + } + + // 判断策略类型 + JSONObject jsonParam = JSONObject.parseObject(param, JSONObject.class); + + List resultList = new ArrayList<>(); + + switch (jsonParam.getString("ioType")) { + case "1": + // 入库策略 + resultList = inHandler(list,jsonParam); + break; + case "2": + // 出库策略 + resultList = outHandler(list,jsonParam); + break; + case "3": + // 通用策略 + break; + default: + throw new BadRequestException("策略类型错误!"); + } + return resultList; + } + + /** + * 入库策略 + * @param attrList :仓位集合 + * @param jsonParam:materialId :物料标识(此方法只根据物料、排进行匹配) + * @return List :仓位集合 + */ + private List inHandler(List attrList, JSONObject jsonParam) { + + // in查询条件处理 + List rowNumIn = attrList.stream() + .map(StIvtStructattr::getRow_num) + .distinct() + .collect(Collectors.toList()); + + // 查询仓位中是否有相同的物料 + List attrLikeList = iStIvtStructattrService.list( + new QueryWrapper().lambda() + .eq(StIvtStructattr::getMaterial_id, jsonParam.getString("materialId")) + .in(StIvtStructattr::getRow_num, rowNumIn) + ); + + if (ObjectUtil.isEmpty(attrLikeList)) { + return attrList; + } + + // 取其中一个排进行匹配并返回 + return attrList.stream() + .filter(row -> row.getRow_num().intValue() == attrLikeList.get(0).getRow_num().intValue()) + .collect(Collectors.toList()); + } + + /** + * 出库策略 + * @param attrList :仓位物料信息 + * @param jsonParam:iostorinvdtlId : 出入库明细标识(此方法只根据明细物料匹配) + * @return List :需出库仓位集合 + */ + private List outHandler(List attrList, JSONObject jsonParam) { + + // 查询对应的出入库明细 + StIvtIostorinvdtl dtlDao = iStIvtIostorinvdtlService.getById(jsonParam.getString("iostorinvdtlId")); + + // 查询传入仓位物料中的数量是否满足明细中的数量 + List vehicleCodeIn = attrList.stream() + .map(StIvtStructattr::getVehicle_code) + .distinct() + .collect(Collectors.toList()); + + List extList = iMdPbStoragevehicleextService.list( + new QueryWrapper().lambda() + .in(MdPbStoragevehicleext::getStoragevehicle_code, vehicleCodeIn) + ); + + double attrQty = extList.stream() + .map(MdPbStoragevehicleext::getQty) + .reduce(BigDecimal.ZERO, BigDecimal::add) + .doubleValue(); + + if (dtlDao.getUnassign_qty().doubleValue() > attrQty) { + // 说明不满足所需重量则全部返回 + return attrList; + } + + // 需返回仓位物料集合 + List resultList = new ArrayList<>(); + // 满足所需数量: 根据巷道进行平均分配 + double unAssingQty = dtlDao.getUnassign_qty().doubleValue(); + + while (unAssingQty > 0) { + + // 添加需返回的仓位物料 + StIvtStructattr attrDao = attrList.get(0); + resultList.add(attrDao); + + // 减去未分配重量 + MdPbStoragevehicleext extDao = extList.stream() + .filter(row -> row.getStoragevehicle_code().equals(attrDao.getVehicle_code())) + .findFirst().orElse(null); + + if (ObjectUtil.isEmpty(extDao)) { + throw new BadRequestException("未查询到载具对应的物料【"+attrDao.getVehicle_code()+"】"); + } + + unAssingQty = NumberUtil.sub(unAssingQty,extDao.getQty().doubleValue()); + + // 移出此仓位物料,方便下一轮进行匹配 + attrList.remove(attrDao); + } + + return resultList; } } diff --git a/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/decision_manage/handler/service/impl/base/FIFORuleHandler.java b/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/decision_manage/handler/service/impl/base/FIFORuleHandler.java index a8841aa1..42e870e1 100644 --- a/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/decision_manage/handler/service/impl/base/FIFORuleHandler.java +++ b/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/decision_manage/handler/service/impl/base/FIFORuleHandler.java @@ -1,17 +1,154 @@ package org.nl.wms.decision_manage.handler.service.impl.base; +import cn.hutool.core.util.NumberUtil; +import cn.hutool.core.util.ObjectUtil; +import com.alibaba.fastjson.JSONObject; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import org.nl.common.domain.exception.BadRequestException; +import org.nl.wms.base_manage.struct.service.IStIvtStructattrService; +import org.nl.wms.base_manage.struct.service.dao.StIvtStructattr; +import org.nl.wms.base_manage.vehicleext.service.IMdPbStoragevehicleextService; +import org.nl.wms.base_manage.vehicleext.service.dao.MdPbStoragevehicleext; import org.nl.wms.decision_manage.handler.service.DecisionHandler; +import org.nl.wms.stor_manage.service.IStIvtIostorinvdtlService; +import org.nl.wms.stor_manage.service.dao.StIvtIostorinvdtl; +import org.springframework.beans.factory.annotation.Autowired; +import java.math.BigDecimal; +import java.util.ArrayList; import java.util.List; +import java.util.stream.Collectors; /* * @author ZZQ * @Date 2024/4/6 16:18 * 先进先出策略 */ -public class FIFORuleHandler extends DecisionHandler { +public class FIFORuleHandler extends DecisionHandler { + + /** + * 出入库明细服务 + */ + @Autowired + private IStIvtIostorinvdtlService iStIvtIostorinvdtlService; + + /** + * 载具扩展属性服务服务 + */ + @Autowired + private IMdPbStoragevehicleextService iMdPbStoragevehicleextService; + + /** + * 巷道均衡策略 + * @param list :仓位集合 + * @param param:物料相关信息、出入类型:{ + * ioType: 出入类型 + * materialId: 物料标识 + * ... + * } + * @return List :仓位集合 + */ @Override - public List handler(List list, String param) { - return null; + public List handler(List list, String param) { + // 判断仓位是否为空 + if (ObjectUtil.isEmpty(list)) { + throw new BadRequestException("仓位集合为空!"); + } + + // 判断策略类型 + JSONObject jsonParam = JSONObject.parseObject(param, JSONObject.class); + + List resultList = new ArrayList<>(); + + switch (jsonParam.getString("ioType")) { + case "1": + // 入库策略 + resultList = inHandler(list,jsonParam); + break; + case "2": + // 出库策略 + resultList = outHandler(list,jsonParam); + break; + case "3": + // 通用策略 + break; + default: + throw new BadRequestException("策略类型错误!"); + } + return resultList; + } + + /** + * 入库策略 + * @param attrList :仓位集合 + * @param jsonParam:materialId :物料标识 + * @return List :仓位集合 + */ + private List inHandler(List attrList, JSONObject jsonParam) { + + return attrList; + } + + /** + * 出库策略 + * @param attrList :仓位物料信息 + * @param jsonParam:iostorinvdtlId : 出入库明细标识(此方法只根据时间匹配) + * @return List :需出库仓位集合 + */ + private List outHandler(List attrList, JSONObject jsonParam) { + + // 查询对应的出入库明细 + StIvtIostorinvdtl dtlDao = iStIvtIostorinvdtlService.getById(jsonParam.getString("iostorinvdtlId")); + + // 查询传入仓位物料中的数量是否满足明细中的数量 + List vehicleCodeIn = attrList.stream() + .map(StIvtStructattr::getVehicle_code) + .distinct() + .collect(Collectors.toList()); + + // 查询对应的载具物料,根据入库时间升序(先进先出规则) + List extList = iMdPbStoragevehicleextService.list( + new QueryWrapper().lambda() + .in(MdPbStoragevehicleext::getStoragevehicle_code, vehicleCodeIn) + .orderByAsc(MdPbStoragevehicleext::getInsert_time) + ); + + double attrQty = extList.stream() + .map(MdPbStoragevehicleext::getQty) + .reduce(BigDecimal.ZERO, BigDecimal::add) + .doubleValue(); + + if (dtlDao.getUnassign_qty().doubleValue() > attrQty) { + // 说明不满足所需重量则全部返回 + return attrList; + } + + // 需返回仓位物料集合 + List resultList = new ArrayList<>(); + // 满足所需数量: 根据巷道进行平均分配 + double unAssingQty = dtlDao.getUnassign_qty().doubleValue(); + + while (unAssingQty > 0) { + + // 添加需返回的仓位物料 + StIvtStructattr attrDao = attrList.get(0); + resultList.add(attrDao); + + // 减去未分配重量 + MdPbStoragevehicleext extDao = extList.stream() + .filter(row -> row.getStoragevehicle_code().equals(attrDao.getVehicle_code())) + .findFirst().orElse(null); + + if (ObjectUtil.isEmpty(extDao)) { + throw new BadRequestException("未查询到载具对应的物料【"+attrDao.getVehicle_code()+"】"); + } + + unAssingQty = NumberUtil.sub(unAssingQty,extDao.getQty().doubleValue()); + + // 移出此仓位物料,方便下一轮进行匹配 + attrList.remove(attrDao); + } + + return resultList; } } diff --git a/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/decision_manage/handler/service/impl/base/LimitStorageRuleHandler.java b/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/decision_manage/handler/service/impl/base/LimitStorageRuleHandler.java index 9e63efa4..bdaad584 100644 --- a/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/decision_manage/handler/service/impl/base/LimitStorageRuleHandler.java +++ b/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/decision_manage/handler/service/impl/base/LimitStorageRuleHandler.java @@ -1,17 +1,161 @@ package org.nl.wms.decision_manage.handler.service.impl.base; +import cn.hutool.core.util.NumberUtil; +import cn.hutool.core.util.ObjectUtil; +import com.alibaba.fastjson.JSONObject; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import org.nl.common.domain.exception.BadRequestException; +import org.nl.wms.base_manage.struct.service.dao.StIvtStructattr; +import org.nl.wms.base_manage.vehicleext.service.IMdPbStoragevehicleextService; +import org.nl.wms.base_manage.vehicleext.service.dao.MdPbStoragevehicleext; import org.nl.wms.decision_manage.handler.service.DecisionHandler; +import org.nl.wms.stor_manage.service.IStIvtIostorinvdtlService; +import org.nl.wms.stor_manage.service.dao.StIvtIostorinvdtl; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import java.math.BigDecimal; +import java.util.ArrayList; +import java.util.Comparator; import java.util.List; +import java.util.stream.Collectors; /* * @author ZZQ * @Date 2024/4/6 16:18 * 货位限位策略:限高,限宽,双货位 */ -public class LimitStorageRuleHandler extends DecisionHandler { +@Service +public class LimitStorageRuleHandler extends DecisionHandler { + + /** + * 出入库明细服务 + */ + @Autowired + private IStIvtIostorinvdtlService iStIvtIostorinvdtlService; + + /** + * 载具扩展属性服务服务 + */ + @Autowired + private IMdPbStoragevehicleextService iMdPbStoragevehicleextService; + + /** + * 货位限位策略:根据货位的长宽高 + * @param list :仓位集合 + * @param param:物料相关信息、出入类型:{ + * ioType: 出入类型 + * materialId: 物料标识 + * ... + * } + * @return List :仓位集合 + */ @Override - public List handler(List list, String param) { - return null; + public List handler(List list, String param) { + // 判断仓位是否为空 + if (ObjectUtil.isEmpty(list)) { + throw new BadRequestException("仓位集合为空!"); + } + + // 判断策略类型 + JSONObject jsonParam = JSONObject.parseObject(param, JSONObject.class); + + List resultList = new ArrayList<>(); + + switch (jsonParam.getString("ioType")) { + case "1": + // 入库策略 + resultList = inHandler(list,jsonParam); + break; + case "2": + // 出库策略 + resultList = outHandler(list,jsonParam); + break; + case "3": + // 通用策略 + break; + default: + throw new BadRequestException("策略类型错误!"); + } + return resultList; + } + + /** + * 入库策略:判断货位的长宽高 + * @param attrList :仓位集合 + * @param jsonParam:materialId :物料标识、width: 宽度、 height:高度、zdepth:深度 + * @return List :仓位集合 + */ + private List inHandler(List attrList, JSONObject jsonParam) { + + // 判断长宽高是否符合要求 + return attrList.stream() + .filter(row -> row.getWidth().doubleValue() <= jsonParam.getDoubleValue("width") && + row.getHeight().doubleValue() <= jsonParam.getDoubleValue("height") && + row.getZdepth().doubleValue() <= jsonParam.getDoubleValue("zdepth") + ) + .collect(Collectors.toList()); + } + + /** + * 出库策略:默认出库 + * @param attrList :仓位物料信息 + * @param jsonParam:iostorinvdtlId : 出入库明细标识(此方法只根据时间匹配) + * @return List :需出库仓位集合 + */ + private List outHandler(List attrList, JSONObject jsonParam) { + + // 查询对应的出入库明细 + StIvtIostorinvdtl dtlDao = iStIvtIostorinvdtlService.getById(jsonParam.getString("iostorinvdtlId")); + + // 查询传入仓位物料中的数量是否满足明细中的数量 + List vehicleCodeIn = attrList.stream() + .map(StIvtStructattr::getVehicle_code) + .distinct() + .collect(Collectors.toList()); + + // 查询对应的载具物料 + List extList = iMdPbStoragevehicleextService.list( + new QueryWrapper().lambda() + .in(MdPbStoragevehicleext::getStoragevehicle_code, vehicleCodeIn) + ); + + double attrQty = extList.stream() + .map(MdPbStoragevehicleext::getQty) + .reduce(BigDecimal.ZERO, BigDecimal::add) + .doubleValue(); + + if (dtlDao.getUnassign_qty().doubleValue() > attrQty) { + // 说明不满足所需重量则全部返回 + return attrList; + } + + // 需返回仓位物料集合 + List resultList = new ArrayList<>(); + // 满足所需数量: 根据巷道进行平均分配 + double unAssingQty = dtlDao.getUnassign_qty().doubleValue(); + + while (unAssingQty > 0) { + + // 添加需返回的仓位物料 + StIvtStructattr attrDao = attrList.get(0); + resultList.add(attrDao); + + // 减去未分配重量 + MdPbStoragevehicleext extDao = extList.stream() + .filter(row -> row.getStoragevehicle_code().equals(attrDao.getVehicle_code())) + .findFirst().orElse(null); + + if (ObjectUtil.isEmpty(extDao)) { + throw new BadRequestException("未查询到载具对应的物料【"+attrDao.getVehicle_code()+"】"); + } + + unAssingQty = NumberUtil.sub(unAssingQty,extDao.getQty().doubleValue()); + + // 移出此仓位物料,方便下一轮进行匹配 + attrList.remove(attrDao); + } + + return resultList; } } diff --git a/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/decision_manage/handler/service/impl/base/NearbyRuleHandler.java b/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/decision_manage/handler/service/impl/base/NearbyRuleHandler.java index 9bfae7dd..b90402a9 100644 --- a/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/decision_manage/handler/service/impl/base/NearbyRuleHandler.java +++ b/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/decision_manage/handler/service/impl/base/NearbyRuleHandler.java @@ -1,17 +1,162 @@ package org.nl.wms.decision_manage.handler.service.impl.base; +import cn.hutool.core.util.NumberUtil; +import cn.hutool.core.util.ObjectUtil; +import com.alibaba.fastjson.JSONObject; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import org.nl.common.domain.exception.BadRequestException; +import org.nl.wms.base_manage.struct.service.dao.StIvtStructattr; +import org.nl.wms.base_manage.vehicleext.service.IMdPbStoragevehicleextService; +import org.nl.wms.base_manage.vehicleext.service.dao.MdPbStoragevehicleext; import org.nl.wms.decision_manage.handler.service.DecisionHandler; +import org.nl.wms.stor_manage.service.IStIvtIostorinvdtlService; +import org.nl.wms.stor_manage.service.dao.StIvtIostorinvdtl; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import java.math.BigDecimal; +import java.util.ArrayList; +import java.util.Comparator; import java.util.List; +import java.util.stream.Collectors; /* * @author ZZQ * @Date 2024/4/6 16:18 * 就近放置策略:根据物料ABC类区分 */ -public class NearbyRuleHandler extends DecisionHandler { +@Service +public class NearbyRuleHandler extends DecisionHandler { + + /** + * 出入库明细服务 + */ + @Autowired + private IStIvtIostorinvdtlService iStIvtIostorinvdtlService; + + /** + * 载具扩展属性服务服务 + */ + @Autowired + private IMdPbStoragevehicleextService iMdPbStoragevehicleextService; + + /** + * 就近放置策略:根据出入库顺序进行判断 + * @param list :仓位集合 + * @param param:物料相关信息、出入类型:{ + * ioType: 出入类型 + * materialId: 物料标识 + * ... + * } + * @return List :仓位集合 + */ @Override - public List handler(List list, String param) { - return null; + public List handler(List list, String param) { + // 判断仓位是否为空 + if (ObjectUtil.isEmpty(list)) { + throw new BadRequestException("仓位集合为空!"); + } + + // 判断策略类型 + JSONObject jsonParam = JSONObject.parseObject(param, JSONObject.class); + + List resultList = new ArrayList<>(); + + switch (jsonParam.getString("ioType")) { + case "1": + // 入库策略 + resultList = inHandler(list,jsonParam); + break; + case "2": + // 出库策略 + resultList = outHandler(list,jsonParam); + break; + case "3": + // 通用策略 + break; + default: + throw new BadRequestException("策略类型错误!"); + } + return resultList; + } + + /** + * 入库策略:默认入库顺序数小的一方为靠近出口方向 + * @param attrList :仓位集合 + * @param jsonParam:materialId :物料标识 + * @return List :仓位集合 + */ + private List inHandler(List attrList, JSONObject jsonParam) { + + return attrList.stream() + .sorted(Comparator.comparing(StIvtStructattr::getIn_order_seq)) + .collect(Collectors.toList()); + } + + /** + * 出库策略:默认出库顺序数大的一方为靠近出口方向 + * @param attrList :仓位物料信息 + * @param jsonParam:iostorinvdtlId : 出入库明细标识(此方法只根据时间匹配) + * @return List :需出库仓位集合 + */ + private List outHandler(List attrList, JSONObject jsonParam) { + + // 先进行顺序排序 + attrList = attrList.stream() + .sorted(Comparator.comparing(StIvtStructattr::getIn_order_seq)) + .collect(Collectors.toList()); + + // 查询对应的出入库明细 + StIvtIostorinvdtl dtlDao = iStIvtIostorinvdtlService.getById(jsonParam.getString("iostorinvdtlId")); + + // 查询传入仓位物料中的数量是否满足明细中的数量 + List vehicleCodeIn = attrList.stream() + .map(StIvtStructattr::getVehicle_code) + .distinct() + .collect(Collectors.toList()); + + // 查询对应的载具物料 + List extList = iMdPbStoragevehicleextService.list( + new QueryWrapper().lambda() + .in(MdPbStoragevehicleext::getStoragevehicle_code, vehicleCodeIn) + ); + + double attrQty = extList.stream() + .map(MdPbStoragevehicleext::getQty) + .reduce(BigDecimal.ZERO, BigDecimal::add) + .doubleValue(); + + if (dtlDao.getUnassign_qty().doubleValue() > attrQty) { + // 说明不满足所需重量则全部返回 + return attrList; + } + + // 需返回仓位物料集合 + List resultList = new ArrayList<>(); + // 满足所需数量: 根据巷道进行平均分配 + double unAssingQty = dtlDao.getUnassign_qty().doubleValue(); + + while (unAssingQty > 0) { + + // 添加需返回的仓位物料 + StIvtStructattr attrDao = attrList.get(0); + resultList.add(attrDao); + + // 减去未分配重量 + MdPbStoragevehicleext extDao = extList.stream() + .filter(row -> row.getStoragevehicle_code().equals(attrDao.getVehicle_code())) + .findFirst().orElse(null); + + if (ObjectUtil.isEmpty(extDao)) { + throw new BadRequestException("未查询到载具对应的物料【"+attrDao.getVehicle_code()+"】"); + } + + unAssingQty = NumberUtil.sub(unAssingQty,extDao.getQty().doubleValue()); + + // 移出此仓位物料,方便下一轮进行匹配 + attrList.remove(attrDao); + } + + return resultList; } } diff --git a/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/decision_manage/handler/service/impl/base/WeightRuleHandler.java b/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/decision_manage/handler/service/impl/base/WeightRuleHandler.java index 54dcd71d..ccc28de1 100644 --- a/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/decision_manage/handler/service/impl/base/WeightRuleHandler.java +++ b/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/decision_manage/handler/service/impl/base/WeightRuleHandler.java @@ -1,17 +1,158 @@ package org.nl.wms.decision_manage.handler.service.impl.base; +import cn.hutool.core.util.NumberUtil; +import cn.hutool.core.util.ObjectUtil; +import com.alibaba.fastjson.JSONObject; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import org.nl.common.domain.exception.BadRequestException; +import org.nl.wms.base_manage.struct.service.dao.StIvtStructattr; +import org.nl.wms.base_manage.vehicleext.service.IMdPbStoragevehicleextService; +import org.nl.wms.base_manage.vehicleext.service.dao.MdPbStoragevehicleext; import org.nl.wms.decision_manage.handler.service.DecisionHandler; +import org.nl.wms.stor_manage.service.IStIvtIostorinvdtlService; +import org.nl.wms.stor_manage.service.dao.StIvtIostorinvdtl; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import java.math.BigDecimal; +import java.util.ArrayList; +import java.util.Comparator; import java.util.List; +import java.util.stream.Collectors; /* * @author ZZQ * @Date 2024/4/6 16:18 * 轻上重下策略 */ -public class WeightRuleHandler extends DecisionHandler { +@Service +public class WeightRuleHandler extends DecisionHandler { + + /** + * 出入库明细服务 + */ + @Autowired + private IStIvtIostorinvdtlService iStIvtIostorinvdtlService; + + /** + * 载具扩展属性服务服务 + */ + @Autowired + private IMdPbStoragevehicleextService iMdPbStoragevehicleextService; + + /** + * 轻上重下策略:根据物品的重量 + * @param list :仓位集合 + * @param param:物料相关信息、出入类型:{ + * ioType: 出入类型 + * materialId: 物料标识 + * ... + * } + * @return List :仓位集合 + */ @Override - public List handler(List list, String param) { - return null; + public List handler(List list, String param) { + // 判断仓位是否为空 + if (ObjectUtil.isEmpty(list)) { + throw new BadRequestException("仓位集合为空!"); + } + + // 判断策略类型 + JSONObject jsonParam = JSONObject.parseObject(param, JSONObject.class); + + List resultList = new ArrayList<>(); + + switch (jsonParam.getString("ioType")) { + case "1": + // 入库策略 + resultList = inHandler(list,jsonParam); + break; + case "2": + // 出库策略 + resultList = outHandler(list,jsonParam); + break; + case "3": + // 通用策略 + break; + default: + throw new BadRequestException("策略类型错误!"); + } + return resultList; + } + + /** + * 入库策略:根据重量找对应的货位 + * @param attrList :仓位集合 + * @param jsonParam:materialId :物料标识、weight: 重量 + * @return List :仓位集合 + */ + private List inHandler(List attrList, JSONObject jsonParam) { + // 过滤对应的货位 + return attrList.stream() + .filter(row -> row.getWeight().doubleValue() <= jsonParam.getDoubleValue("weight")) + .sorted(Comparator.comparing(StIvtStructattr::getWeight)) + .collect(Collectors.toList()); + } + + /** + * 出库策略:默认出库 + * @param attrList :仓位物料信息 + * @param jsonParam:iostorinvdtlId : 出入库明细标识(此方法只根据时间匹配) + * @return List :需出库仓位集合 + */ + private List outHandler(List attrList, JSONObject jsonParam) { + + // 查询对应的出入库明细 + StIvtIostorinvdtl dtlDao = iStIvtIostorinvdtlService.getById(jsonParam.getString("iostorinvdtlId")); + + // 查询传入仓位物料中的数量是否满足明细中的数量 + List vehicleCodeIn = attrList.stream() + .map(StIvtStructattr::getVehicle_code) + .distinct() + .collect(Collectors.toList()); + + // 查询对应的载具物料 + List extList = iMdPbStoragevehicleextService.list( + new QueryWrapper().lambda() + .in(MdPbStoragevehicleext::getStoragevehicle_code, vehicleCodeIn) + ); + + double attrQty = extList.stream() + .map(MdPbStoragevehicleext::getQty) + .reduce(BigDecimal.ZERO, BigDecimal::add) + .doubleValue(); + + if (dtlDao.getUnassign_qty().doubleValue() > attrQty) { + // 说明不满足所需重量则全部返回 + return attrList; + } + + // 需返回仓位物料集合 + List resultList = new ArrayList<>(); + // 满足所需数量: 根据巷道进行平均分配 + double unAssingQty = dtlDao.getUnassign_qty().doubleValue(); + + while (unAssingQty > 0) { + + // 添加需返回的仓位物料 + StIvtStructattr attrDao = attrList.get(0); + resultList.add(attrDao); + + // 减去未分配重量 + MdPbStoragevehicleext extDao = extList.stream() + .filter(row -> row.getStoragevehicle_code().equals(attrDao.getVehicle_code())) + .findFirst().orElse(null); + + if (ObjectUtil.isEmpty(extDao)) { + throw new BadRequestException("未查询到载具对应的物料【"+attrDao.getVehicle_code()+"】"); + } + + unAssingQty = NumberUtil.sub(unAssingQty,extDao.getQty().doubleValue()); + + // 移出此仓位物料,方便下一轮进行匹配 + attrList.remove(attrDao); + } + + return resultList; } } diff --git a/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/flow_manage/flow/framework/engine/behavior/impl/IostorInActivityBehavior.java b/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/flow_manage/flow/framework/engine/behavior/impl/IostorInActivityBehavior.java index 803c50b9..7321c986 100644 --- a/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/flow_manage/flow/framework/engine/behavior/impl/IostorInActivityBehavior.java +++ b/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/flow_manage/flow/framework/engine/behavior/impl/IostorInActivityBehavior.java @@ -12,10 +12,10 @@ import org.nl.wms.flow_manage.flow.framework.entity.node.base.impl.FlowElement; import org.nl.wms.flow_manage.flow.framework.entity.node.impl.task.impl.FormTask; import org.nl.wms.flow_manage.flow.framework.process.nodeType.TypeHandler; import org.nl.wms.pm_manage.form_data.service.dto.PmFormDataDto; -import org.nl.wms.stor_manage.service.iostor.IStIvtIostorinvService; -import org.nl.wms.stor_manage.service.iostor.dao.StIvtIostorinv; -import org.nl.wms.stor_manage.service.iostor_dtl.IStIvtIostorinvdtlService; -import org.nl.wms.stor_manage.service.iostor_dtl.dao.StIvtIostorinvdtl; +import org.nl.wms.stor_manage.service.IStIvtIostorinvService; +import org.nl.wms.stor_manage.service.IStIvtIostorinvdtlService; +import org.nl.wms.stor_manage.service.dao.StIvtIostorinv; +import org.nl.wms.stor_manage.service.dao.StIvtIostorinvdtl; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; diff --git a/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/stor_manage/controller/StIvtIostorinvController.java b/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/stor_manage/controller/StIvtIostorinvController.java index 77656fdc..708a2113 100644 --- a/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/stor_manage/controller/StIvtIostorinvController.java +++ b/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/stor_manage/controller/StIvtIostorinvController.java @@ -11,7 +11,7 @@ import org.springframework.web.bind.annotation.RestController; *

* * @author generator - * @since 2024-03-28 + * @since 2024-04-08 */ @RestController @RequestMapping("/stIvtIostorinv") diff --git a/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/stor_manage/controller/StIvtIostorinvdtlController.java b/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/stor_manage/controller/StIvtIostorinvdtlController.java index 27beb886..55e7109c 100644 --- a/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/stor_manage/controller/StIvtIostorinvdtlController.java +++ b/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/stor_manage/controller/StIvtIostorinvdtlController.java @@ -11,7 +11,7 @@ import org.springframework.web.bind.annotation.RestController; *

* * @author generator - * @since 2024-03-29 + * @since 2024-04-08 */ @RestController @RequestMapping("/stIvtIostorinvdtl") diff --git a/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/stor_manage/service/iostor/IStIvtIostorinvService.java b/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/stor_manage/service/IStIvtIostorinvService.java similarity index 62% rename from wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/stor_manage/service/iostor/IStIvtIostorinvService.java rename to wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/stor_manage/service/IStIvtIostorinvService.java index b8df80e2..8033bc80 100644 --- a/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/stor_manage/service/iostor/IStIvtIostorinvService.java +++ b/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/stor_manage/service/IStIvtIostorinvService.java @@ -1,7 +1,7 @@ -package org.nl.wms.stor_manage.service.iostor; +package org.nl.wms.stor_manage.service; -import org.nl.wms.stor_manage.service.iostor.dao.StIvtIostorinv; import com.baomidou.mybatisplus.extension.service.IService; +import org.nl.wms.stor_manage.service.dao.StIvtIostorinv; /** *

@@ -9,7 +9,7 @@ import com.baomidou.mybatisplus.extension.service.IService; *

* * @author generator - * @since 2024-03-28 + * @since 2024-04-08 */ public interface IStIvtIostorinvService extends IService { diff --git a/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/stor_manage/service/iostor_dtl/IStIvtIostorinvdtlService.java b/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/stor_manage/service/IStIvtIostorinvdtlService.java similarity index 56% rename from wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/stor_manage/service/iostor_dtl/IStIvtIostorinvdtlService.java rename to wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/stor_manage/service/IStIvtIostorinvdtlService.java index bb58279b..66f14158 100644 --- a/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/stor_manage/service/iostor_dtl/IStIvtIostorinvdtlService.java +++ b/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/stor_manage/service/IStIvtIostorinvdtlService.java @@ -1,6 +1,6 @@ -package org.nl.wms.stor_manage.service.iostor_dtl; +package org.nl.wms.stor_manage.service; -import org.nl.wms.stor_manage.service.iostor_dtl.dao.StIvtIostorinvdtl; +import org.nl.wms.stor_manage.service.dao.StIvtIostorinvdtl; import com.baomidou.mybatisplus.extension.service.IService; import java.util.List; @@ -11,9 +11,10 @@ import java.util.List; *

* * @author generator - * @since 2024-03-29 + * @since 2024-04-08 */ public interface IStIvtIostorinvdtlService extends IService { - void batchInsert(List dtls); + void batchInsert(List iostorinvs); + } diff --git a/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/stor_manage/service/dao/StIvtIostorinv.java b/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/stor_manage/service/dao/StIvtIostorinv.java new file mode 100644 index 00000000..94f44919 --- /dev/null +++ b/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/stor_manage/service/dao/StIvtIostorinv.java @@ -0,0 +1,173 @@ +package org.nl.wms.stor_manage.service.dao; + +import java.math.BigDecimal; + +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import java.io.Serializable; +import lombok.Data; +import lombok.EqualsAndHashCode; + +/** + *

+ * 出入库单主表 + *

+ * + * @author generator + * @since 2024-04-08 + */ +@Data +@EqualsAndHashCode(callSuper = false) +@TableName("st_ivt_iostorinv") +public class StIvtIostorinv implements Serializable { + + private static final long serialVersionUID = 1L; + + /** + * 出入单标识 + */ + @TableId + private String iostorinv_id; + + /** + * 单据编号 + */ + private String bill_code; + + /** + * 出入类型 + */ + private String io_type; + + /** + * 单据类型 + */ + private String bill_type; + + /** + * 业务日期 + */ + private String biz_date; + + /** + * 仓库标识 + */ + private String stor_id; + + /** + * 来源方标识 + */ + private String source_id; + + /** + * 总数量 + */ + private BigDecimal total_qty; + + /** + * 总重量 + */ + private BigDecimal total_weight; + + /** + * 明细数 + */ + private BigDecimal detail_count; + + /** + * 单据状态 + */ + private String bill_status; + + /** + * 备注 + */ + private String remark; + + /** + * 生成方式 + */ + private String create_mode; + + /** + * 制单人 + */ + private String input_optid; + + /** + * 制单人姓名 + */ + private String input_optname; + + /** + * 制单时间 + */ + private String input_time; + + /** + * 修改人 + */ + private String update_optid; + + /** + * 修改人姓名 + */ + private String update_optname; + + /** + * 修改时间 + */ + private String update_time; + + /** + * 分配人 + */ + private String dis_optid; + + /** + * 分配人姓名 + */ + private String dis_optname; + + /** + * 分配时间 + */ + private String dis_time; + + /** + * 确认人 + */ + private String confirm_optid; + + /** + * 确认人姓名 + */ + private String confirm_optname; + + /** + * 确认时间 + */ + private String confirm_time; + + /** + * 是否删除 + */ + private Boolean is_delete; + + /** + * 是否已上传 + */ + private Boolean is_upload; + + /** + * 回传人 + */ + private String upload_optid; + + /** + * 回传时间 + */ + private String upload_time; + + +} diff --git a/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/stor_manage/service/iostor_dtl/dao/StIvtIostorinvdtl.java b/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/stor_manage/service/dao/StIvtIostorinvdtl.java similarity index 81% rename from wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/stor_manage/service/iostor_dtl/dao/StIvtIostorinvdtl.java rename to wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/stor_manage/service/dao/StIvtIostorinvdtl.java index 80af67da..66ae9343 100644 --- a/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/stor_manage/service/iostor_dtl/dao/StIvtIostorinvdtl.java +++ b/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/stor_manage/service/dao/StIvtIostorinvdtl.java @@ -1,6 +1,8 @@ -package org.nl.wms.stor_manage.service.iostor_dtl.dao; +package org.nl.wms.stor_manage.service.dao; import java.math.BigDecimal; + +import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; import java.io.Serializable; import lombok.Data; @@ -12,7 +14,7 @@ import lombok.EqualsAndHashCode; *

* * @author generator - * @since 2024-03-29 + * @since 2024-04-08 */ @Data @EqualsAndHashCode(callSuper = false) @@ -24,12 +26,13 @@ public class StIvtIostorinvdtl implements Serializable { /** * 出入单明细标识 */ - private Long iostorinvdtl_id; + @TableId + private String iostorinvdtl_id; /** * 出入单标识 */ - private Long iostorinv_id; + private String iostorinv_id; /** * 明细序号 @@ -39,7 +42,7 @@ public class StIvtIostorinvdtl implements Serializable { /** * 物料标识 */ - private Long material_id; + private String material_id; /** * 批次 @@ -59,12 +62,7 @@ public class StIvtIostorinvdtl implements Serializable { /** * 数量计量单位标识 */ - private Long qty_unit_id; - - /** - * 数量计量单位名称 - */ - private String qty_unit_name; + private String qty_unit_id; /** * 数量 @@ -74,7 +72,7 @@ public class StIvtIostorinvdtl implements Serializable { /** * 来源单据明细标识 */ - private Long source_billdtl_id; + private String source_billdtl_id; /** * 来源单据类型 diff --git a/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/stor_manage/service/iostor/dao/mapper/StIvtIostorinvMapper.java b/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/stor_manage/service/dao/mapper/StIvtIostorinvMapper.java similarity index 60% rename from wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/stor_manage/service/iostor/dao/mapper/StIvtIostorinvMapper.java rename to wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/stor_manage/service/dao/mapper/StIvtIostorinvMapper.java index ae64d702..a16f2d35 100644 --- a/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/stor_manage/service/iostor/dao/mapper/StIvtIostorinvMapper.java +++ b/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/stor_manage/service/dao/mapper/StIvtIostorinvMapper.java @@ -1,6 +1,6 @@ -package org.nl.wms.stor_manage.service.iostor.dao.mapper; +package org.nl.wms.stor_manage.service.dao.mapper; -import org.nl.wms.stor_manage.service.iostor.dao.StIvtIostorinv; +import org.nl.wms.stor_manage.service.dao.StIvtIostorinv; import com.baomidou.mybatisplus.core.mapper.BaseMapper; /** @@ -9,7 +9,7 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper; *

* * @author generator - * @since 2024-03-28 + * @since 2024-04-08 */ public interface StIvtIostorinvMapper extends BaseMapper { diff --git a/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/stor_manage/service/iostor_dtl/dao/mapper/StIvtIostorinvdtlMapper.java b/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/stor_manage/service/dao/mapper/StIvtIostorinvdtlMapper.java similarity index 54% rename from wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/stor_manage/service/iostor_dtl/dao/mapper/StIvtIostorinvdtlMapper.java rename to wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/stor_manage/service/dao/mapper/StIvtIostorinvdtlMapper.java index c435f7e5..7b403e50 100644 --- a/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/stor_manage/service/iostor_dtl/dao/mapper/StIvtIostorinvdtlMapper.java +++ b/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/stor_manage/service/dao/mapper/StIvtIostorinvdtlMapper.java @@ -1,6 +1,6 @@ -package org.nl.wms.stor_manage.service.iostor_dtl.dao.mapper; +package org.nl.wms.stor_manage.service.dao.mapper; -import org.nl.wms.stor_manage.service.iostor_dtl.dao.StIvtIostorinvdtl; +import org.nl.wms.stor_manage.service.dao.StIvtIostorinvdtl; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import java.util.List; @@ -11,10 +11,9 @@ import java.util.List; *

* * @author generator - * @since 2024-03-29 + * @since 2024-04-08 */ public interface StIvtIostorinvdtlMapper extends BaseMapper { - Integer batchInsert(List dtls); - + void batchInsert(List iostorinvs); } diff --git a/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/stor_manage/service/iostor/dao/mapper/xml/StIvtIostorinvMapper.xml b/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/stor_manage/service/dao/mapper/xml/StIvtIostorinvMapper.xml similarity index 63% rename from wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/stor_manage/service/iostor/dao/mapper/xml/StIvtIostorinvMapper.xml rename to wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/stor_manage/service/dao/mapper/xml/StIvtIostorinvMapper.xml index 16d722a1..8dc7c6a0 100644 --- a/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/stor_manage/service/iostor/dao/mapper/xml/StIvtIostorinvMapper.xml +++ b/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/stor_manage/service/dao/mapper/xml/StIvtIostorinvMapper.xml @@ -1,5 +1,5 @@ - + diff --git a/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/stor_manage/service/iostor_dtl/dao/mapper/xml/StIvtIostorinvdtlMapper.xml b/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/stor_manage/service/dao/mapper/xml/StIvtIostorinvdtlMapper.xml similarity index 76% rename from wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/stor_manage/service/iostor_dtl/dao/mapper/xml/StIvtIostorinvdtlMapper.xml rename to wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/stor_manage/service/dao/mapper/xml/StIvtIostorinvdtlMapper.xml index 74f18899..eb79307f 100644 --- a/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/stor_manage/service/iostor_dtl/dao/mapper/xml/StIvtIostorinvdtlMapper.xml +++ b/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/stor_manage/service/dao/mapper/xml/StIvtIostorinvdtlMapper.xml @@ -1,7 +1,6 @@ - - + insert into st_ivt_iostorinvdtl() values diff --git a/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/stor_manage/service/iostor/impl/StIvtIostorinvServiceImpl.java b/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/stor_manage/service/impl/StIvtIostorinvServiceImpl.java similarity index 54% rename from wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/stor_manage/service/iostor/impl/StIvtIostorinvServiceImpl.java rename to wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/stor_manage/service/impl/StIvtIostorinvServiceImpl.java index 7eb4393c..55ffa946 100644 --- a/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/stor_manage/service/iostor/impl/StIvtIostorinvServiceImpl.java +++ b/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/stor_manage/service/impl/StIvtIostorinvServiceImpl.java @@ -1,8 +1,8 @@ -package org.nl.wms.stor_manage.service.iostor.impl; +package org.nl.wms.stor_manage.service.impl; -import org.nl.wms.stor_manage.service.iostor.IStIvtIostorinvService; -import org.nl.wms.stor_manage.service.iostor.dao.StIvtIostorinv; -import org.nl.wms.stor_manage.service.iostor.dao.mapper.StIvtIostorinvMapper; +import org.nl.wms.stor_manage.service.dao.StIvtIostorinv; +import org.nl.wms.stor_manage.service.dao.mapper.StIvtIostorinvMapper; +import org.nl.wms.stor_manage.service.IStIvtIostorinvService; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import org.springframework.stereotype.Service; @@ -12,7 +12,7 @@ import org.springframework.stereotype.Service; *

* * @author generator - * @since 2024-03-28 + * @since 2024-04-08 */ @Service public class StIvtIostorinvServiceImpl extends ServiceImpl implements IStIvtIostorinvService { diff --git a/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/stor_manage/service/impl/StIvtIostorinvdtlServiceImpl.java b/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/stor_manage/service/impl/StIvtIostorinvdtlServiceImpl.java new file mode 100644 index 00000000..43ac97b8 --- /dev/null +++ b/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/stor_manage/service/impl/StIvtIostorinvdtlServiceImpl.java @@ -0,0 +1,26 @@ +package org.nl.wms.stor_manage.service.impl; + +import org.nl.wms.stor_manage.service.dao.StIvtIostorinvdtl; +import org.nl.wms.stor_manage.service.dao.mapper.StIvtIostorinvdtlMapper; +import org.nl.wms.stor_manage.service.IStIvtIostorinvdtlService; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import org.springframework.stereotype.Service; + +import java.util.List; + +/** + *

+ * 出入库单明细表 服务实现类 + *

+ * + * @author generator + * @since 2024-04-08 + */ +@Service +public class StIvtIostorinvdtlServiceImpl extends ServiceImpl implements IStIvtIostorinvdtlService { + + @Override + public void batchInsert(List iostorinvs) { + this.baseMapper.batchInsert(iostorinvs); + } +} diff --git a/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/stor_manage/service/iostor_dtl/impl/StIvtIostorinvdtlServiceImpl.java b/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/stor_manage/service/iostor_dtl/impl/StIvtIostorinvdtlServiceImpl.java deleted file mode 100644 index c530ce82..00000000 --- a/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/stor_manage/service/iostor_dtl/impl/StIvtIostorinvdtlServiceImpl.java +++ /dev/null @@ -1,27 +0,0 @@ -package org.nl.wms.stor_manage.service.iostor_dtl.impl; - -import org.nl.wms.stor_manage.service.iostor_dtl.dao.StIvtIostorinvdtl; -import org.nl.wms.stor_manage.service.iostor_dtl.dao.mapper.StIvtIostorinvdtlMapper; -import org.nl.wms.stor_manage.service.iostor_dtl.IStIvtIostorinvdtlService; -import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; -import org.springframework.stereotype.Service; - -import java.util.List; - -/** - *

- * 出入库单明细表 服务实现类 - *

- * - * @author generator - * @since 2024-03-29 - */ -@Service -public class StIvtIostorinvdtlServiceImpl extends ServiceImpl implements IStIvtIostorinvdtlService { - - - @Override - public void batchInsert(List dtls) { - this.baseMapper.batchInsert(dtls); - } -} diff --git a/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/system_manage/service/menu/impl/SysMenuServiceImpl.java b/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/system_manage/service/menu/impl/SysMenuServiceImpl.java index b3ccc895..a449e4ef 100644 --- a/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/system_manage/service/menu/impl/SysMenuServiceImpl.java +++ b/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/system_manage/service/menu/impl/SysMenuServiceImpl.java @@ -7,7 +7,7 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; - import lombok.RequiredArgsConstructor; +import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.apache.commons.compress.utils.Lists; import org.apache.commons.lang3.StringUtils; @@ -434,4 +434,4 @@ public class SysMenuServiceImpl extends ServiceImpl impl baseMapper.getMenusByRole(systemType,category); return null; } -} +} \ No newline at end of file diff --git a/wms_pro/qd/src/views/wms/base_manage/strategy/AddDialog.vue b/wms_pro/qd/src/views/wms/base_manage/strategy/AddDialog.vue new file mode 100644 index 00000000..0382277e --- /dev/null +++ b/wms_pro/qd/src/views/wms/base_manage/strategy/AddDialog.vue @@ -0,0 +1,158 @@ + + + + + diff --git a/wms_pro/qd/src/views/wms/base_manage/strategy/index.vue b/wms_pro/qd/src/views/wms/base_manage/strategy/index.vue new file mode 100644 index 00000000..c6713489 --- /dev/null +++ b/wms_pro/qd/src/views/wms/base_manage/strategy/index.vue @@ -0,0 +1,153 @@ + + + + + diff --git a/wms_pro/qd/src/views/wms/base_manage/strategy/strategy.js b/wms_pro/qd/src/views/wms/base_manage/strategy/strategy.js new file mode 100644 index 00000000..7fd8782c --- /dev/null +++ b/wms_pro/qd/src/views/wms/base_manage/strategy/strategy.js @@ -0,0 +1,35 @@ +import request from '@/utils/request' + +export function add(data) { + return request({ + url: 'api/strategy', + method: 'post', + data + }) +} + +export function del(ids) { + return request({ + url: 'api/strategy/', + method: 'delete', + data: ids + }) +} + +export function edit(data) { + return request({ + url: 'api/strategy', + method: 'put', + data + }) +} + +export function changeActive(data) { + return request({ + url: 'api/strategy/changeActive', + method: 'put', + data + }) +} + +export default { add, edit, del, changeActive }