add:添加组盘页面

This commit is contained in:
zhangzq
2025-07-29 20:32:51 +08:00
parent 62294fcdf5
commit 9916121e63
54 changed files with 1569 additions and 835 deletions

View File

@@ -205,6 +205,7 @@
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>8.0.20</version>
</dependency>
<!-- druid数据源驱动 -->

View File

@@ -100,7 +100,7 @@ public class LogAspect {
SysLog log = new SysLog("INFO", System.currentTimeMillis() - currentTime.get());
currentTime.remove();
logService.save(getUsername(), StringUtils.getBrowser(request), StringUtils.getIp(request), joinPoint, log);
// logService.save(getUsername(), StringUtils.getBrowser(request), StringUtils.getIp(request), joinPoint, log);
return result;
}
@@ -149,7 +149,7 @@ public class LogAspect {
currentTime.remove();
log.setException_detail(ThrowableUtil.getStackTrace(e).getBytes());
HttpServletRequest request = RequestHolder.getHttpServletRequest();
logService.save(getUsername(), StringUtils.getBrowser(request), StringUtils.getIp(request), (ProceedingJoinPoint) joinPoint, log);
// logService.save(getUsername(), StringUtils.getBrowser(request), StringUtils.getIp(request), (ProceedingJoinPoint) joinPoint, log);
}
public String getUsername() {

View File

@@ -1,9 +1,11 @@
package org.nl.system.controller.dict;
import cn.dev33.satoken.annotation.SaIgnore;
import com.alibaba.fastjson.JSONObject;
import org.nl.common.base.TableDataInfo;
import org.nl.common.domain.query.PageQuery;
import org.nl.common.exception.BadRequestException;
import org.nl.common.logging.annotation.Log;
import org.nl.system.service.dict.ISysDictService;
import org.nl.system.service.dict.dao.Dict;
@@ -36,12 +38,12 @@ public class SysDictController {
@Log("查询字典")
@GetMapping
public ResponseEntity<Object> query(@RequestParam Map whereJson, PageQuery pageable){
return new ResponseEntity<>(TableDataInfo.build(dictService.queryAll(whereJson,pageable)), HttpStatus.OK);
}
@GetMapping(value = "/all")
public ResponseEntity<Object> queryAll(){
return new ResponseEntity<>(dictService.queryAll(),HttpStatus.OK);
@@ -74,7 +76,7 @@ public class SysDictController {
return new ResponseEntity<>(TableDataInfo.build(dictService.queryAllDetail(dictQuery,pageable)),HttpStatus.OK);
}
@GetMapping(value = "/dictDetail/map")
public ResponseEntity<Object> getDictDetailMaps(@RequestParam String dictName){
String[] names = dictName.split("[,]");
@@ -106,5 +108,18 @@ public class SysDictController {
return new ResponseEntity<>(HttpStatus.OK);
}
@GetMapping("/getTableEnum")
@SaIgnore
public ResponseEntity<Object> getTableEnum(@RequestParam Map criteria) {
Object type = criteria.get("code");
Object label = criteria.get("label");
Object value = criteria.get("value");
if (type == null||label == null||value == null){
throw new BadRequestException("参数不能为空");
}
List<Map> maps = dictService.dynamicTableEnum((String) type, (String) label, (String) value);
return new ResponseEntity<>(maps, HttpStatus.OK);
}
}

View File

@@ -85,4 +85,7 @@ public interface ISysDictService extends IService<Dict> {
* @return
*/
List<Dict> queryAll();
List<Map> dynamicTableEnum(String table,String label,String value);
}

View File

@@ -1,8 +1,12 @@
package org.nl.system.service.dict.dao.mapper;
import org.apache.ibatis.annotations.Param;
import org.nl.system.service.dict.dao.Dict;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import java.util.List;
import java.util.Map;
/**
* <p>
* 字典表 Mapper 接口
@@ -12,5 +16,6 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper;
* @since 2022-12-14
*/
public interface SysDictMapper extends BaseMapper<Dict> {
List<Map> dynamicTableEnum(@Param("table") String table, @Param("label")String label, @Param("value")String value);
}

View File

@@ -2,4 +2,7 @@
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="org.nl.system.service.dict.dao.mapper.SysDictMapper">
<select id="dynamicTableEnum" resultType="java.util.Map">
select ${label} as label,${value} as value from ${table}
</select>
</mapper>

View File

@@ -8,6 +8,7 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.apache.commons.lang3.StringUtils;
import org.nl.common.domain.query.PageQuery;
import org.nl.common.exception.BadRequestException;
import org.nl.common.utils.SecurityUtils;
@@ -194,4 +195,12 @@ public class SysDictServiceImpl extends ServiceImpl<SysDictMapper, Dict> impleme
.groupBy(Dict::getCode, Dict::getName));
}
@Override
public List<Map> dynamicTableEnum(String table, String label, String value) {
if (StringUtils.isEmpty(table)||StringUtils.isEmpty(label)||StringUtils.isEmpty(value)){
throw new BadRequestException("参数不能为空");
}
return this.sysDictMapper.dynamicTableEnum(table,label,value);
}
}

View File

@@ -1,7 +1,6 @@
package org.nl.wms.basedata.master.vehicle.service.dao;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;
@@ -126,19 +125,5 @@ public class Storagevehicleinfo implements Serializable {
*/
private String ext_id;
@TableField(exist = false)
private String material_code;
@TableField(exist = false)
private String material_name;
@TableField(exist = false)
private String point_code;
@TableField(exist = false)
private String point_name;
@TableField(exist = false)
private String storagevehicle_type_name;
}

View File

@@ -5,18 +5,9 @@
<select id="selectPageLeftJoin"
resultType="org.nl.wms.basedata.master.vehicle.service.dao.Storagevehicleinfo">
SELECT
s.*,
mater.material_code,
mater.material_name,
point.point_code,
point.point_name,
class.class_name AS storagevehicle_type_name
s.*
FROM
md_pb_storagevehicleinfo s
LEFT JOIN sch_base_point point ON point.vehicle_code = s.storagevehicle_code
LEFT JOIN ST_IVT_StructIvt ivt ON point.source_id = ivt.struct_id
LEFT JOIN md_base_material mater ON mater.material_id = ivt.material_id
LEFT JOIN md_base_classstandard class ON class.class_code = s.storagevehicle_type
WHERE s.is_delete = '0'
<if test="queryObj.storagevehicle_code_begin != null">
AND s.storagevehicle_code <![CDATA[ >= ]]> queryObj.storagevehicle_code_begin
@@ -24,6 +15,9 @@
<if test="queryObj.storagevehicle_code_end != null">
AND s.storagevehicle_code <![CDATA[ <= ]]> queryObj.storagevehicle_code_end
</if>
<if test="queryObj.storagevehicle_type != null">
AND s.storagevehicle_type = #{queryObj.storagevehicle_type}
</if>
<if test="queryObj.classIds != null">
AND class.class_id IN
<foreach collection="queryObj.classIds" item="code" separator="," open="(" close=")">

View File

@@ -2,20 +2,16 @@ package org.nl.wms.basedata.master.vehicle.service.impl;
import cn.hutool.core.date.DateUtil;
import cn.hutool.core.util.IdUtil;
import cn.hutool.core.util.ObjectUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.nl.config.language.LangProcess;
import org.nl.common.domain.query.PageQuery;
import org.nl.common.exception.BadRequestException;
import org.nl.common.utils.SecurityUtils;
import org.nl.wms.basedata.master.classification.service.IMdBaseClassstandardService;
import org.nl.wms.basedata.master.classification.service.dao.MdBaseClassstandard;
import org.nl.wms.basedata.master.vehicle.service.IStoragevehicleinfoService;
import org.nl.wms.basedata.master.vehicle.service.dao.mapper.StoragevehicleinfoMapper;
import org.nl.wms.basedata.master.vehicle.service.dao.Storagevehicleinfo;
@@ -23,10 +19,7 @@ import org.nl.wms.basedata.master.vehicle.service.dto.StoragevehicleinfoQuery;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.ArrayList;
import java.util.Map;
import java.util.Set;
import java.util.stream.Collectors;
/**
* @description 服务实现
@@ -46,11 +39,11 @@ public class StoragevehicleinfoServiceImpl extends ServiceImpl<Storagevehicleinf
@Override
public IPage<Storagevehicleinfo> queryAll(StoragevehicleinfoQuery queryObj, PageQuery page) {
// 获取所有子集
if (ObjectUtil.isNotEmpty(queryObj.getStoragevehicle_type())) {
ArrayList<String> list = mdBaseClassstandardService.getAllChildrenIds(queryObj.getStoragevehicle_type());
list.add(queryObj.getStoragevehicle_type());
queryObj.setClassIds(list);
}
// if (ObjectUtil.isNotEmpty(queryObj.getStoragevehicle_type())) {
// ArrayList<String> list = mdBaseClassstandardService.getAllChildrenIds(queryObj.getStoragevehicle_type());
// list.add(queryObj.getStoragevehicle_type());
// queryObj.setClassIds(list);
// }
IPage<Storagevehicleinfo> pages = new Page<>(page.getPage() + 1, page.getSize());
pages = storagevehicleinfoMapper.selectPageLeftJoin(pages, queryObj);
return pages;
@@ -61,7 +54,6 @@ public class StoragevehicleinfoServiceImpl extends ServiceImpl<Storagevehicleinf
String currentUserId = SecurityUtils.getCurrentUserId();
String nickName = SecurityUtils.getCurrentNickName();
String now = DateUtil.now();
entity.setStoragevehicle_id(IdUtil.getSnowflake(1, 1).nextIdStr());
entity.setCreate_id(currentUserId);
entity.setCreate_name(nickName);

View File

@@ -46,7 +46,7 @@ public class MaterialbaseController {
@PostMapping
@Log("新增物料")
public ResponseEntity<Object> create(@Validated @RequestBody MdMeMaterialbase dto) {
public ResponseEntity<Object> create(@Validated @RequestBody JSONObject dto) {
iMdMeMaterialbaseService.create(dto);
return new ResponseEntity<>(HttpStatus.CREATED);
}

View File

@@ -30,7 +30,7 @@ public interface IMdMeMaterialbaseService extends IService<MdMeMaterialbase> {
* 新增物料
* @param dto 物料实体类
*/
void create(MdMeMaterialbase dto);
void create(JSONObject dto);
/**
* 修改物料
* @param dto 物料实体类

View File

@@ -57,7 +57,11 @@ public class MdMeMaterialbase implements Serializable {
/**
* 基本计量单位
*/
private String base_unit_id;
private String measure_unit_id;
/**
* 基本计量名称
*/
private String unit_name;
/**
* 辅助计量单位

View File

@@ -9,6 +9,7 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.apache.commons.lang3.StringUtils;
import org.nl.common.domain.query.PageQuery;
import org.nl.common.exception.BadRequestException;
import org.nl.common.utils.IdUtil;
@@ -53,8 +54,9 @@ public class MdMeMaterialbaseServiceImpl extends ServiceImpl<MdMeMaterialbaseMap
@Override
@Transactional(rollbackFor = Exception.class)
public void create(MdMeMaterialbase dto) {
public void create(JSONObject mdMeMaterial) {
// 根据物料编码查询是否有相同物料编码的物料
MdMeMaterialbase dto = mdMeMaterial.toJavaObject(MdMeMaterialbase.class);
MdMeMaterialbase mdMeMaterialbase = this.baseMapper.selectOne(
new QueryWrapper<MdMeMaterialbase>().lambda()
.eq(MdMeMaterialbase::getMaterial_code, dto.getMaterial_code())
@@ -71,6 +73,11 @@ public class MdMeMaterialbaseServiceImpl extends ServiceImpl<MdMeMaterialbaseMap
dto.setUpdate_optid(SecurityUtils.getCurrentUserId());
dto.setUpdate_optname(SecurityUtils.getCurrentNickName());
dto.setUpdate_time(DateUtil.now());
if (StringUtils.isNotEmpty(mdMeMaterial.getString("qty_unit_name"))){
String[] unitSplit = mdMeMaterial.getString("qty_unit_name").split("@");
dto.setMeasure_unit_id(unitSplit[0]);
dto.setUnit_name(unitSplit[1]);
}
this.save(dto);
}

View File

@@ -0,0 +1,35 @@
package org.nl.wms.pdm.structivt.controller;
import lombok.extern.slf4j.Slf4j;
import org.nl.common.base.TableDataInfo;
import org.nl.common.domain.query.PageQuery;
import org.nl.common.logging.annotation.Log;
import org.nl.wms.pdm.structivt.service.RegionStructIvtService;
import org.nl.wms.pdm.structivt.service.dto.RegionStructQuery;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.HttpStatus;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.*;
import java.util.Map;
import java.util.Set;
/**
* @author lyd
* @date 2025-07-14
**/
@Slf4j
@RestController
@RequestMapping("/api/regionStruct")
public class RegionStructIvtController {
@Autowired
private RegionStructIvtService regionStructIvtService;
@GetMapping
@Log("查询区域库存")
public ResponseEntity<Object> query(RegionStructQuery query, PageQuery page){
TableDataInfo dataInfo = regionStructIvtService.queryStruct(query, page);
return new ResponseEntity<>(dataInfo,HttpStatus.OK);
}
}

View File

@@ -0,0 +1,24 @@
package org.nl.wms.pdm.structivt.service;
import org.nl.common.base.TableDataInfo;
import org.nl.wms.pdm.structivt.service.dto.RegionStructIvtVo;
import org.nl.wms.pdm.structivt.service.dto.RegionStructQuery;
import org.nl.wms.sch.point.service.ISchBasePointService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.nl.common.domain.query.PageQuery;
import java.util.List;
@Service
public class RegionStructIvtService {
@Autowired
private ISchBasePointService iSchBasePointService;
public TableDataInfo queryStruct(RegionStructQuery query,PageQuery pageQuery){
TableDataInfo<RegionStructIvtVo> dataInfo = iSchBasePointService.queryStruct(query, pageQuery);
return dataInfo;
}
}

View File

@@ -0,0 +1,63 @@
package org.nl.wms.pdm.structivt.service.dto;
import lombok.Data;
import java.math.BigDecimal;
@Data
public class RegionStructIvtVo {
/**
* 区域编码
*/
private String region_code;
/**
* 区域编码
*/
private String region_name;
/**
* 点位编码
*/
private String point_code;
/**
* 载具编码
*/
private String storagevehicle_code;
/**
* 物料编码
*/
private String material_code;
/**
* 物料名称
*/
private String material_name;
private String material_spec;
/**
* 载具数量
*/
private BigDecimal qty;
/**
* 载具冻结数量
*/
private BigDecimal frozen_qty;
/**
* 批次
*/
private String pcsn;
/**
* 单位id
*/
private String measure_unit_id;
/**
* 单位名称
*/
private String unit_name;
/**
* 入库时间
*/
private String inbound_time;
/**
* 组盘状态
*/
private String status;
}

View File

@@ -0,0 +1,18 @@
package org.nl.wms.pdm.structivt.service.dto;
import lombok.Data;
import org.nl.common.domain.query.BaseQuery;
import org.nl.wms.sch.region.service.dao.SchBaseRegion;
/**
* @author lyd
* @date 2023-05-15
**/
@Data
public class RegionStructQuery extends BaseQuery<SchBaseRegion> {
private String region_code;
private String point_code;
private String material_code;
private String storagevehicle_code;
private String pcsn;
}

View File

@@ -0,0 +1,84 @@
package org.nl.wms.sch.group.controller;
import cn.hutool.core.date.DateUtil;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.nl.common.base.TableDataInfo;
import org.nl.common.domain.query.PageQuery;
import org.nl.common.exception.BadRequestException;
import org.nl.common.logging.annotation.Log;
import org.nl.common.utils.IdUtil;
import org.nl.common.utils.SecurityUtils;
import org.nl.wms.sch.group.service.IMdPbGroupplateService;
import org.nl.wms.sch.group.service.dao.GroupPlate;
import org.nl.wms.sch.group.service.enums.GroupStatus;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.HttpStatus;
import org.springframework.http.ResponseEntity;
import org.springframework.util.Assert;
import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource;
import java.util.Map;
import java.util.Set;
/**
* <p>
* 组盘记录 控制层
* </p>
*
* @author Liuxy
* @since 2025-06-03
*/
@RestController
@RequiredArgsConstructor
@RequestMapping("/api/group")
@Slf4j
public class GroupController {
@Autowired
private final IMdPbGroupplateService iMdPbGroupplateService;
@GetMapping
@Log("分页查询")
public ResponseEntity<Object> query(@RequestParam Map whereJson, PageQuery page) {
return new ResponseEntity<>(TableDataInfo.build(iMdPbGroupplateService.queryAll(whereJson, page)), HttpStatus.OK);
}
@PostMapping
@Log("新增组盘组盘")
public ResponseEntity<Object> create(@RequestBody JSONObject group) {
Assert.noNullElements(new Object[]{group,group.get("material_id"),group.get("storagevehicle_code"),group.get("qty")},"请求参数不能为空");
GroupPlate groupPlate = group.toJavaObject(GroupPlate.class);
String storagevehicleCode = groupPlate.getStoragevehicle_code();
{
// iMdPbStoragevehicleinfoService.getByCode(storagevehicleCode);
// int has = iMdPbGroupplateService.count(new LambdaUpdateWrapper<GroupPlate>()
// .eq(GroupPlate::getStoragevehicle_code, groupPlate.getStoragevehicle_code())
// .lt(GroupPlate::getStatus, IOSEnum.GROUP_PLATE_STATUS.code("出库")));
// if (has>0){
// throw new BadRequestException("当前载具组盘信息已存在");
// }
}
groupPlate.setGroup_id(IdUtil.getStringId());
groupPlate.setCreate_id(SecurityUtils.getCurrentUserId());
groupPlate.setCreate_name(SecurityUtils.getCurrentUsername());
groupPlate.setCreate_time(DateUtil.now());
groupPlate.setStatus(GroupStatus.START.getCode());
iMdPbGroupplateService.save(groupPlate);
return new ResponseEntity<>(HttpStatus.OK);
}
@DeleteMapping
@Log("删除组盘")
public ResponseEntity<Object> delete(@RequestBody Set<String> ids) {
iMdPbGroupplateService.delete(ids);
return new ResponseEntity<>(HttpStatus.OK);
}
}

View File

@@ -1,71 +0,0 @@
package org.nl.wms.sch.group.controller;
import com.alibaba.fastjson.JSONObject;
import lombok.extern.slf4j.Slf4j;
import org.nl.common.base.TableDataInfo;
import org.nl.common.domain.query.PageQuery;
import org.nl.common.logging.annotation.Log;
import org.nl.wms.sch.group.service.ISchBaseVehiclematerialgroupService;
import org.nl.wms.sch.group.service.dao.SchBaseVehiclematerialgroup;
import org.nl.wms.sch.group.service.dto.SchBaseVehiclematerialgroupQuery;
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.*;
import java.util.Map;
import java.util.Set;
/**
* @author lyd
* @date 2023-05-16
**/
@Slf4j
@RestController
@RequestMapping("/api/schBaseVehiclematerialgroup")
public class SchBaseVehiclematerialgroupController {
@Autowired
private ISchBaseVehiclematerialgroupService schBaseVehiclematerialgroupService;
@GetMapping
@Log("查询组盘信息管理")
public ResponseEntity<Object> query(SchBaseVehiclematerialgroupQuery whereJson, PageQuery page){
return new ResponseEntity<>(TableDataInfo.build(schBaseVehiclematerialgroupService
.queryAll(whereJson,page)),HttpStatus.OK);
}
@PostMapping
@Log("新增组盘信息管理")
public ResponseEntity<Object> create(@Validated @RequestBody SchBaseVehiclematerialgroup entity){
schBaseVehiclematerialgroupService.create(entity);
return new ResponseEntity<>(HttpStatus.CREATED);
}
@PutMapping
@Log("修改组盘信息管理")
public ResponseEntity<Object> update(@Validated @RequestBody SchBaseVehiclematerialgroup entity){
schBaseVehiclematerialgroupService.update(entity);
return new ResponseEntity<>(HttpStatus.NO_CONTENT);
}
@Log("删除组盘信息管理")
@DeleteMapping
public ResponseEntity<Object> delete(@RequestBody Set<String> ids) {
schBaseVehiclematerialgroupService.deleteAll(ids);
return new ResponseEntity<>(HttpStatus.OK);
}
@PostMapping("/getGroup")
@Log("获取组盘信息管理")
public ResponseEntity<Object> getGroup(@RequestBody JSONObject entity){
return new ResponseEntity<>(schBaseVehiclematerialgroupService.getGroup(entity), HttpStatus.OK);
}
}

View File

@@ -0,0 +1,38 @@
package org.nl.wms.sch.group.service;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.service.IService;
import org.nl.common.domain.query.PageQuery;
import org.nl.wms.sch.group.service.dao.GroupPlate;
import java.util.List;
import java.util.Map;
import java.util.Set;
/**
* <p>
* 组盘记录表 服务类
* </p>
*
* @author Liuxy
* @since 2025-05-23
*/
public interface IMdPbGroupplateService extends IService<GroupPlate> {
/**
* 分页查询
* @param whereJson : {查询参数}
* @param page : 分页对象
* @return 返回结果
*/
IPage<JSONObject> queryAll(Map whereJson, PageQuery page);
/**
* 删除组盘
* @param ids 标识集合
*/
void delete(Set<String> ids);
}

View File

@@ -1,100 +0,0 @@
package org.nl.wms.sch.group.service;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.service.IService;
import org.nl.common.domain.query.PageQuery;
import org.nl.wms.sch.group.service.dao.SchBaseVehiclematerialgroup;
import org.nl.wms.sch.group.service.dto.SchBaseVehiclematerialgroupQuery;
import java.util.Set;
/**
* @description 服务接口
* @author lyd
* @date 2023-05-16
**/
public interface ISchBaseVehiclematerialgroupService extends IService<SchBaseVehiclematerialgroup> {
/**
* 查询数据分页
* @param whereJson 条件
* @param pageable 分页参数
* @return IPage<SchBaseVehiclematerialgroup>
*/
IPage<SchBaseVehiclematerialgroup> queryAll(SchBaseVehiclematerialgroupQuery whereJson, PageQuery pageable);
/**
* 创建
* @param entity /
*/
void create(SchBaseVehiclematerialgroup entity);
/**
* 编辑
* @param entity /
*/
void update(SchBaseVehiclematerialgroup entity);
/**
* 多选删除
* @param ids /
*/
void deleteAll(Set<String> ids);
/**
* 根据载具编码返回数据
* @param entity
* @return
*/
SchBaseVehiclematerialgroup getGroup(JSONObject entity);
/**
* 根据载具编码、载具类型、状态、物料查找组盘信息
* @param vehicleCode
* @param vehicleType
* @param value 物料托盘组盘状态
* @param materialId
* @return
*/
SchBaseVehiclematerialgroup getGroupInfo(String vehicleCode, String vehicleType, String value, String materialId);
/**
* 根据载具编码、载具类型、状态、物料查找组盘信息
* @param vehicleCode
* @param vehicleType
* @param value 物料托盘组盘状态
* @return
*/
SchBaseVehiclematerialgroup getGroupInfo(String vehicleCode, String vehicleType, String value);
/**
* 根据载具编码、状态、物料查找组盘信息
* @param vehicleCode
* @param value 物料托盘组盘状态
* @return
*/
SchBaseVehiclematerialgroup getGroupInfo(String vehicleCode, String value);
/**
* 返回当前物料的剩余库存数
* @param materialId
* @return
*/
int getInventoryQtyByMaterialId(String materialId);
/**
* 解绑同载具的信息
* @param vehicleCode
* @param vehicleType
*/
void unBindingSameVehicleMaterial(String vehicleCode, String vehicleType);
/**
* 包装获取组盘信息
* @param vehicleCode
* @param value
* @return
*/
SchBaseVehiclematerialgroup getOneByVehicleCode(String vehicleCode, String value);
}

View File

@@ -0,0 +1,119 @@
package org.nl.wms.sch.group.service.dao;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.io.Serializable;
import java.math.BigDecimal;
/**
* @author dsh
* 2025/5/20
*/
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
@TableName("md_pb_groupplate")
public class GroupPlate implements Serializable {
private static final long serialVersionUID = 1L;
/**
* 组盘标识
*/
@TableId("group_id")
private String group_id;
/**
* 载具编码
*/
private String storagevehicle_code;
/**
* 物料编码
*/
private String material_code;
/**
* 批次
*/
private String pcsn;
/**
* 计量单位标识
*/
private String measure_unit_id;
/**
* 计量单位名称
*/
private String unit_name;
/**
* 组盘数量
*/
private int qty;
/**
* 冻结数量
*/
private int frozen_qty;
/**
* 备注
*/
private String remark;
/**
* 状态 01组盘 02入库 03出库
*/
private String status;
private String type;
/**
* 组盘人
*/
private String create_id;
/**
* 组盘人名称
*/
private String create_name;
/**
* 组盘时间
*/
private String create_time;
/**
* 修改人
*/
private String update_id;
/**
* 修改人姓名
*/
private String update_name;
/**
* 修改时间
*/
private String update_time;
/**
* 来源单据号
*/
private String inbound_time;
private String outbound_time;
/**
* 来源单据类型
*/
private String ext_code;
private String ext_type;
}

View File

@@ -1,117 +0,0 @@
package org.nl.wms.sch.group.service.dao;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;
import lombok.EqualsAndHashCode;
import java.io.Serializable;
import java.math.BigDecimal;
/**
* @author lyd
* @description /
* @date 2023-05-16
**/
@Data
@EqualsAndHashCode(callSuper = false)
@TableName("sch_base_vehiclematerialgroup")
public class SchBaseVehiclematerialgroup implements Serializable {
private static final long serialVersionUID = 1L;
@TableId(value = "group_id", type = IdType.NONE)
private String group_id;
private String vehicle_code;
private String material_id;
private String redundance_material_code;
private String vehicle_type;
private String child_vehicle_code;
private String source_vehicle_code;
private String point_code;
private String point_name;
private Boolean is_full;
private String pcsn;
private String instorage_time;
private Integer material_qty;
private BigDecimal material_weight;
private String workorder_code;
private String task_code;
private String ext_data;
private String workshop_code;
private String group_status;
private String move_way;
private String buss_move_id;
private String remark;
private Boolean is_delete;
private String create_id;
private String create_name;
private String create_time;
private String update_id;
private String update_name;
private String update_time;
@TableField(exist = false)
private String material_name;
@TableField(exist = false)
private String material_code;
@TableField(exist = false)
private String material_spec;
@TableField(exist = false)
private String region_name;
}

View File

@@ -0,0 +1,44 @@
package org.nl.wms.sch.group.service.dao.mapper;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import org.apache.ibatis.annotations.Param;
import org.nl.wms.sch.group.service.dao.GroupPlate;
import java.util.List;
import java.util.Map;
/**
* <p>
* 组盘记录表 Mapper 接口
* </p>
*
* @author Liuxy
* @since 2025-05-23
*/
public interface MdPbGroupplateMapper extends BaseMapper<GroupPlate> {
/**
* 获取明细
* @param whereJson {
* storagevehicle_code : 载具编码
* }
*/
List<JSONObject> getDtl(@Param("param") JSONObject whereJson);
/**
* 分页查询
* @param page 分页条件
* @param whereJson 查询条件
* @return IPage<StIvtMoveinv>
*/
IPage<JSONObject> queryAllByPage(Page<JSONObject> page, @Param("param") Map whereJson);
//查询载具物料信息
List<JSONObject> getVehicleMaterial(@Param("params") Map whereJson);
}

View File

@@ -0,0 +1,81 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="org.nl.wms.sch.group.service.dao.mapper.MdPbGroupplateMapper">
<select id="getDtl" resultType="com.alibaba.fastjson.JSONObject">
SELECT
late.*,
mater.material_code,
mater.material_name
FROM
md_pb_groupplate late
LEFT JOIN md_me_materialbase mater ON mater.material_code = late.material_code
<where>
late.status = '01'
<if test="param.storagevehicle_code != null and param.storagevehicle_code != ''">
AND
late.storagevehicle_code = #{param.storagevehicle_code}
</if>
</where>
</select>
<select id="queryAllByPage" resultType="com.alibaba.fastjson.JSONObject">
SELECT
late.*,
mater.material_code,
mater.material_name
FROM
md_pb_groupplate late
INNER JOIN md_me_materialbase mater ON mater.material_code = late.material_code
<where>
1 = 1
<if test="param.material_code != null and param.material_code != ''">
AND
(mater.material_code LIKE #{param.material_code} or
mater.material_name LIKE #{param.material_code} )
</if>
<if test="param.pcsn != null and param.pcsn != ''">
AND
late.pcsn LIKE #{param.pcsn}
</if>
<if test="param.storagevehicle_code != null and param.storagevehicle_code != ''">
AND
late.storagevehicle_code LIKE #{param.storagevehicle_code}
</if>
<if test="param.status != null and param.status != ''">
AND
late.status = #{param.status}
</if>
</where>
ORDER BY late.create_time Desc
</select>
<select id="getVehicleMaterial" resultType="com.alibaba.fastjson.JSONObject">
SELECT
gro.*,
mater.material_id,
mater.material_code,
mater.material_name
FROM
md_pb_groupplate gro
LEFT JOIN md_me_materialbase mater ON mater.material_id = gro.material_id
<where>
1 = 1
<if test="params.vehicleCode != null and params.vehicleCode != ''">
AND
gro.storagevehicle_code = #{params.vehicleCode}
</if>
<if test="params.status != null and params.status != ''">
AND
gro.status = #{params.status}
</if>
<if test="params.qty != null and params.qty != ''">
AND
gro.qty>0
</if>
</where>
ORDER BY gro.create_time Desc
</select>
</mapper>

View File

@@ -1,36 +0,0 @@
package org.nl.wms.sch.group.service.dao.mapper;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import org.nl.wms.sch.group.service.dao.SchBaseVehiclematerialgroup;
import org.nl.wms.sch.group.service.dto.SchBaseVehiclematerialgroupQuery;
/**
* @author lyd
* @date 2023-05-16
**/
public interface SchBaseVehiclematerialgroupMapper extends BaseMapper<SchBaseVehiclematerialgroup> {
/**
* 分页查询
* @param pages 、
* @param query 查询条件
* @return IPage<SchBaseVehiclematerialgroup>
*/
IPage<SchBaseVehiclematerialgroup> selectPageLeftJoin(IPage<SchBaseVehiclematerialgroup> pages, SchBaseVehiclematerialgroupQuery query);
/**
* 获取组盘信息
* @param entity 、
* @return SchBaseVehiclematerialgroup 实体类
*/
SchBaseVehiclematerialgroup getGroup(JSONObject entity);
/**
* 获取物料嘻嘻
* @param materialId 物料id
* @return int 数字
*/
int getInventoryQtyByMaterialId(String materialId);
}

View File

@@ -1,68 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="org.nl.wms.sch.group.service.dao.mapper.SchBaseVehiclematerialgroupMapper">
<select id="selectPageLeftJoin" resultType="org.nl.wms.sch.group.service.dao.SchBaseVehiclematerialgroup">
SELECT vg.*
, ma.material_name
, ma.material_code
, ma.material_spec
, po.region_name
FROM sch_base_vehiclematerialgroup vg
LEFT JOIN md_me_materialbase ma ON vg.material_id = ma.material_id
LEFT JOIN sch_base_point po ON po.point_code = vg.point_code
WHERE 1 = 1
<if test="query.vehicle_code != null">
AND vg.vehicle_code = #{query.vehicle_code}
</if>
<if test="query.workshop_code != null">
AND vg.workshop_code = #{query.workshop_code}
</if>
<if test="query.group_status != null">
AND vg.group_status = #{query.group_status}
</if>
<if test="query.region_code != null">
AND vg.point_code IN (
SELECT p.point_code
FROM sch_base_point p
WHERE p.region_code = #{query.region_code}
)
</if>
</select>
<select id="getGroup" resultType="org.nl.wms.sch.group.service.dao.SchBaseVehiclematerialgroup" parameterType="com.alibaba.fastjson.JSONObject">
SELECT vg.*
, ma.material_name
, ma.material_code
, ma.material_spec
, po.region_name
, sd.label AS group_bind_material_status_name
FROM sch_base_vehiclematerialgroup vg
LEFT JOIN md_me_materialbase ma ON vg.material_id = ma.material_id
LEFT JOIN sch_base_point po ON po.point_code = vg.point_code
LEFT JOIN sys_dict sd ON sd.code = 'group_bind_material_status' AND sd.value = vg.group_bind_material_status
WHERE 1 = 1
<if test="vehicle_code != null">
AND vg.vehicle_code = #{vehicle_code}
</if>
<if test="vehicle_type != null">
AND vg.vehicle_type = #{vehicle_type}
</if>
AND vg.group_bind_material_status = '2'
</select>
<select id="getInventoryQtyByMaterialId" resultType="java.lang.Integer">
SELECT
IF(SUM(vg.material_qty)>0,SUM(vg.material_qty),0) AS qty
FROM
`sch_base_point` p
LEFT JOIN sch_base_vehiclematerialgroup vg ON vg.vehicle_code = p.vehicle_code
AND vg.vehicle_type = p.vehicle_type
AND vg.group_bind_material_status = '2'
WHERE
p.region_code = 'GTPHC'
AND p.point_status = '3'
AND p.vehicle_code IS NOT NULL
AND p.vehicle_code != ''
AND vg.group_id IS NOT NULL
AND vg.material_id = #{materialId}
</select>
</mapper>

View File

@@ -0,0 +1,24 @@
package org.nl.wms.sch.group.service.dto;
import lombok.Data;
import org.nl.wms.sch.group.service.dao.GroupPlate;
/**
* @author dsh
* 2025/5/20
*/
@Data
public class GroupPlateDto extends GroupPlate{
/**
* 物料编码
*/
private String material_spec;
private String material_code;
/**
* 物料名称
*/
private String material_name;
}

View File

@@ -1,131 +0,0 @@
package org.nl.wms.sch.group.service.dto;
import java.math.BigDecimal;
import lombok.Data;
import java.io.Serializable;
/**
* @description /
* @author lyd
* @date 2023-05-16
**/
@Data
public class SchBaseVehiclematerialgroupDto implements Serializable {
/** 组盘id */
private String group_id;
/** 载具编码 */
private String vehicle_code;
/** 物料标识 */
private String material_id;
/** 子载具编码 */
private String child_vehicle_code;
/** 来源载具编码 */
private String source_vehicle_code;
/** 点位编码 */
private String point_code;
/** 点位名称 */
private String point_name;
/** 是否满托 */
private Boolean is_full;
/** 是否已烧制 */
private Boolean is_firing;
/** 批次 */
private String pcsn;
/** 入库时间 */
private String instorage_time;
/** 静置时间(分钟) */
private BigDecimal standing_time;
/** 物料数量 */
private BigDecimal material_qty;
/** 物料重量 */
private BigDecimal material_weight;
/** 搬运工单编码 */
private String workorder_code;
/** 组盘次数 */
private BigDecimal group_number;
/** 任务编码 */
private String task_code;
/** 额外信息 */
private String ext_data;
/** 车间编码 */
private String workshop_code;
/** 组盘状态 */
private String group_status;
/** 业务表表名 */
private String table_name;
/** 业务表表名主键字段 */
private String table_fk;
/** 业务表表名主键值 */
private String table_fk_id;
/** 业务链路标识 */
private String buss_move_id;
/** 是否首个流程任务 */
private Boolean is_first_flow_task;
/** 流程编码 */
private String flow_code;
/** 流程顺序 */
private BigDecimal flow_num;
/** 上一任务编码 */
private String before_task_code;
/** 下一任务编码 */
private String next_task_code;
/** 备注 */
private String remark;
/** 是否删除 */
private Boolean is_delete;
/** 创建人 */
private String create_id;
/** 创建人 */
private String create_name;
/** 创建时间 */
private String create_time;
/** 修改人 */
private String update_id;
/** 修改人 */
private String update_name;
/** 修改时间 */
private String update_time;
/** 出窑时间 */
private String out_kiln_time;
/** 入窑时间 */
private String into_kiln_time;
}

View File

@@ -1,19 +0,0 @@
package org.nl.wms.sch.group.service.dto;
import lombok.Data;
import org.nl.common.domain.query.BaseQuery;
import org.nl.wms.sch.group.service.dao.SchBaseVehiclematerialgroup;
import java.io.Serializable;
/**
* @author lyd
* @date 2023-05-16
**/
@Data
public class SchBaseVehiclematerialgroupQuery implements Serializable {
private String vehicle_code;
private String workshop_code;
private String region_code;
private String group_status;
}

View File

@@ -0,0 +1,14 @@
package org.nl.wms.sch.group.service.enums;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.Getter;
@Getter
@AllArgsConstructor
public enum GroupStatus {
START("1","生成");
private String code;
private String desc;
}

View File

@@ -0,0 +1,43 @@
package org.nl.wms.sch.group.service.impl;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.nl.common.domain.query.PageQuery;
import org.nl.wms.sch.group.service.IMdPbGroupplateService;
import org.nl.wms.sch.group.service.dao.GroupPlate;
import org.nl.wms.sch.group.service.dao.mapper.MdPbGroupplateMapper;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.util.List;
import java.util.Map;
import java.util.Set;
/**
* <p>
* 组盘记录表 服务实现类
* </p>
*
* @author Liuxy
* @since 2025-05-23
*/
@Service
public class MdPbGroupplateServiceImpl extends ServiceImpl<MdPbGroupplateMapper, GroupPlate> implements IMdPbGroupplateService {
@Override
public IPage<JSONObject> queryAll(Map whereJson, PageQuery page) {
return this.baseMapper.queryAllByPage(new Page<>(page.getPage() + 1, page.getSize()),
whereJson);
}
@Override
@Transactional
public void delete(Set<String> ids) {
this.baseMapper.deleteBatchIds(ids);
}
}

View File

@@ -1,151 +0,0 @@
package org.nl.wms.sch.group.service.impl;
import cn.hutool.core.date.DateUtil;
import cn.hutool.core.util.IdUtil;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import lombok.extern.slf4j.Slf4j;
import org.nl.common.domain.query.PageQuery;
import org.nl.common.utils.SecurityUtils;
import org.nl.wms.sch.group.service.ISchBaseVehiclematerialgroupService;
import org.nl.wms.sch.group.service.dao.SchBaseVehiclematerialgroup;
import org.nl.wms.sch.group.service.dao.mapper.SchBaseVehiclematerialgroupMapper;
import org.nl.wms.sch.group.service.dto.SchBaseVehiclematerialgroupQuery;
import org.nl.wms.sch.point.service.ISchBasePointService;
import org.nl.wms.sch.task_manage.enums.GroupBindMaterialStatusEnum;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.ArrayList;
import java.util.List;
import java.util.Set;
/**
* @author lyd
* @description 服务实现
* @date 2023-05-16
**/
@Slf4j
@Service
public class SchBaseVehiclematerialgroupServiceImpl extends ServiceImpl<SchBaseVehiclematerialgroupMapper, SchBaseVehiclematerialgroup> implements ISchBaseVehiclematerialgroupService {
@Autowired
private SchBaseVehiclematerialgroupMapper vehiclematerialgroupMapper;
@Autowired
private ISchBasePointService pointService;
@Override
public IPage<SchBaseVehiclematerialgroup> queryAll(SchBaseVehiclematerialgroupQuery whereJson, PageQuery page) {
IPage<SchBaseVehiclematerialgroup> pages = new Page<>(page.getPage() + 1, page.getSize());
pages = vehiclematerialgroupMapper.selectPageLeftJoin(pages, whereJson);
return pages;
}
@Override
public void create(SchBaseVehiclematerialgroup entity) {
String currentUserId = SecurityUtils.getCurrentUserId();
String nickName = SecurityUtils.getCurrentNickName();
String now = DateUtil.now();
entity.setGroup_id(IdUtil.getSnowflake(1, 1).nextIdStr());
entity.setCreate_id(currentUserId);
entity.setCreate_name(nickName);
entity.setCreate_time(now);
entity.setUpdate_id(currentUserId);
entity.setUpdate_name(nickName);
entity.setUpdate_time(now);
vehiclematerialgroupMapper.insert(entity);
}
@Override
public void update(SchBaseVehiclematerialgroup entity) {
String currentUserId = SecurityUtils.getCurrentUserId();
String nickName = SecurityUtils.getCurrentNickName();
String now = DateUtil.now();
entity.setUpdate_id(currentUserId);
entity.setUpdate_name(nickName);
entity.setUpdate_time(now);
vehiclematerialgroupMapper.updateById(entity);
}
@Override
public void deleteAll(Set<String> ids) {
// 真删除
vehiclematerialgroupMapper.deleteBatchIds(ids);
}
@Override
public SchBaseVehiclematerialgroup getGroup(JSONObject entity) {
return vehiclematerialgroupMapper.getGroup(entity);
}
@Override
public SchBaseVehiclematerialgroup getGroupInfo(String vehicleCode, String vehicleType, String value, String materialId) {
LambdaQueryWrapper<SchBaseVehiclematerialgroup> lambda = new QueryWrapper<SchBaseVehiclematerialgroup>().lambda();
lambda.eq(SchBaseVehiclematerialgroup::getVehicle_code, vehicleCode)
.eq(SchBaseVehiclematerialgroup::getVehicle_type, vehicleType)
.eq(SchBaseVehiclematerialgroup::getGroup_status, value)
.eq(SchBaseVehiclematerialgroup::getMaterial_id, materialId)
.eq(SchBaseVehiclematerialgroup::getIs_delete, false);
List<SchBaseVehiclematerialgroup> selectOne = vehiclematerialgroupMapper.selectList(lambda);
return selectOne.size() > 0 ? selectOne.get(0) : null;
}
@Override
public SchBaseVehiclematerialgroup getGroupInfo(String vehicleCode, String vehicleType, String value) {
LambdaQueryWrapper<SchBaseVehiclematerialgroup> lambda = new QueryWrapper<SchBaseVehiclematerialgroup>().lambda();
lambda.eq(SchBaseVehiclematerialgroup::getVehicle_code, vehicleCode)
.eq(SchBaseVehiclematerialgroup::getVehicle_type, vehicleType)
.eq(SchBaseVehiclematerialgroup::getGroup_status, value)
.eq(SchBaseVehiclematerialgroup::getIs_delete, false);
List<SchBaseVehiclematerialgroup> selectOne = vehiclematerialgroupMapper.selectList(lambda);
return selectOne.size() > 0 ? selectOne.get(0) : null;
}
@Override
public SchBaseVehiclematerialgroup getGroupInfo(String vehicleCode, String value) {
LambdaQueryWrapper<SchBaseVehiclematerialgroup> lambda = new QueryWrapper<SchBaseVehiclematerialgroup>().lambda();
lambda.eq(SchBaseVehiclematerialgroup::getVehicle_code, vehicleCode)
.eq(SchBaseVehiclematerialgroup::getGroup_status, value)
.eq(SchBaseVehiclematerialgroup::getIs_delete, false);
List<SchBaseVehiclematerialgroup> selectOne = vehiclematerialgroupMapper.selectList(lambda);
return selectOne.size() > 0 ? selectOne.get(0) : null;
}
@Override
public int getInventoryQtyByMaterialId(String materialId) {
return vehiclematerialgroupMapper.getInventoryQtyByMaterialId(materialId);
}
@Override
public void unBindingSameVehicleMaterial(String vehicleCode, String vehicleType) {
LambdaQueryWrapper<SchBaseVehiclematerialgroup> lambda = new QueryWrapper<SchBaseVehiclematerialgroup>().lambda();
lambda.eq(SchBaseVehiclematerialgroup::getVehicle_code, vehicleCode)
.eq(SchBaseVehiclematerialgroup::getVehicle_type, vehicleType)
.ne(SchBaseVehiclematerialgroup::getGroup_status, GroupBindMaterialStatusEnum.UNBOUND.getValue())
.eq(SchBaseVehiclematerialgroup::getIs_delete, false);
List<SchBaseVehiclematerialgroup> list = vehiclematerialgroupMapper.selectList(lambda);
list.forEach(schBaseVehiclematerialgroup ->
schBaseVehiclematerialgroup.setGroup_status(GroupBindMaterialStatusEnum.UNBOUND.getValue()));
this.updateBatchById(list);
}
@Override
public SchBaseVehiclematerialgroup getOneByVehicleCode(String vehicleCode, String value) {
List<String> list = new ArrayList<>();
// list.add(GeneralDefinition.STEEL_TRAY);
// list.add(GeneralDefinition.MATERIAL_CUP);
LambdaQueryWrapper<SchBaseVehiclematerialgroup> lambda = new QueryWrapper<SchBaseVehiclematerialgroup>().lambda();
lambda.eq(SchBaseVehiclematerialgroup::getVehicle_code, vehicleCode)
.eq(SchBaseVehiclematerialgroup::getGroup_status, value)
.eq(SchBaseVehiclematerialgroup::getIs_delete, false)
.notIn(SchBaseVehiclematerialgroup::getVehicle_type, list);
List<SchBaseVehiclematerialgroup> selectOne = vehiclematerialgroupMapper.selectList(lambda);
return selectOne.size() > 0 ? selectOne.get(0) : null;
}
}

View File

@@ -2,8 +2,11 @@ package org.nl.wms.sch.point.service;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.metadata.IPage;
import org.nl.common.base.TableDataInfo;
import org.nl.common.domain.query.PageQuery;
import com.baomidou.mybatisplus.extension.service.IService;
import org.nl.wms.pdm.structivt.service.dto.RegionStructIvtVo;
import org.nl.wms.pdm.structivt.service.dto.RegionStructQuery;
import org.nl.wms.sch.point.service.dao.SchBasePoint;
import org.nl.wms.sch.point.service.dto.SchBasePointQuery;
@@ -69,4 +72,9 @@ public interface ISchBasePointService extends IService<SchBasePoint> {
* @param lock_ype 锁定类型
*/
void lockPoint(List<SchBasePoint> list, String lock_ype);
/*
* 区域点位库存查看
* */
TableDataInfo<RegionStructIvtVo> queryStruct(RegionStructQuery query, PageQuery pageQuery);
}

View File

@@ -55,7 +55,7 @@ public class SchBasePoint implements Serializable {
private String vehicle_type;
/** 载具编码 */
private String vehicle_code;
private String storagevehicle_code;
/** 载具数量 */
private Integer vehicle_qty;

View File

@@ -2,6 +2,10 @@ package org.nl.wms.sch.point.service.dao.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import org.apache.ibatis.annotations.Param;
import org.nl.common.domain.query.PageQuery;
import org.nl.wms.pdm.structivt.service.dto.RegionStructIvtVo;
import org.nl.wms.pdm.structivt.service.dto.RegionStructQuery;
import org.nl.wms.sch.point.service.dao.SchBasePoint;
import org.nl.wms.sch.point.service.dto.SchBasePointQuery;
@@ -28,4 +32,6 @@ public interface SchBasePointMapper extends BaseMapper<SchBasePoint> {
* @return
*/
IPage<SchBasePoint> selectPageLeftJoin(IPage<SchBasePoint> pages, SchBasePointQuery whereJson);
List<RegionStructIvtVo> queryStruct(@Param("query") RegionStructQuery query);
}

View File

@@ -59,4 +59,36 @@
</where>
ORDER BY p.region_code, p.point_code, p.point_type
</select>
<select id="queryStruct" resultType="org.nl.wms.pdm.structivt.service.dto.RegionStructIvtVo">
select sch_base_point.point_code,
sch_base_point.region_code,
sch_base_point.storagevehicle_code,
md_pb_groupplate.material_code,
md_me_materialbase.material_name,
md_me_materialbase.material_spec,
md_pb_groupplate.pcsn,
md_pb_groupplate.qty,
md_pb_groupplate.frozen_qty,
md_pb_groupplate.unit_name,
md_pb_groupplate.status,
md_pb_groupplate.inbound_time,
md_pb_groupplate.remark
from sch_base_point
inner join md_pb_groupplate on sch_base_point.storagevehicle_code = md_pb_groupplate.storagevehicle_code
left join md_me_materialbase on md_pb_groupplate.material_code = md_me_materialbase.material_code
where sch_base_point.storagevehicle_code is not null and sch_base_point.is_used = 1
<if test="query.storagevehicle_code != null">
AND sch_base_point.storagevehicle_code = #{query.storagevehicle_code}
</if>
<if test="query.region_code != null">
AND sch_base_point.region_code = #{query.region_code}
</if>
<if test="query.pcsn != null">
AND md_pb_groupplate.pcsn = #{query.pcsn}
</if>
<if test="query.material_code != null">
AND md_pb_groupplate.material_code = #{query.material_code}
</if>
</select>
</mapper>

View File

@@ -9,11 +9,15 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.github.pagehelper.PageHelper;
import lombok.extern.slf4j.Slf4j;
import org.nl.common.base.TableDataInfo;
import org.nl.common.domain.query.PageQuery;
import org.nl.common.exception.BadRequestException;
import org.nl.common.utils.SecurityUtils;
import org.nl.config.language.LangProcess;
import org.nl.wms.pdm.structivt.service.dto.RegionStructIvtVo;
import org.nl.wms.pdm.structivt.service.dto.RegionStructQuery;
import org.nl.wms.sch.point.service.ISchBasePointService;
import org.nl.wms.sch.point.service.dao.SchBasePoint;
import org.nl.wms.sch.point.service.dao.mapper.SchBasePointMapper;
@@ -25,6 +29,7 @@ import org.nl.wms.util.PointUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.util.CollectionUtils;
import java.util.Arrays;
import java.util.List;
@@ -129,7 +134,7 @@ public class SchBasePointServiceImpl extends ServiceImpl<SchBasePointMapper, Sch
// 根据点位状态来判断更新内容
if (ObjectUtil.isNotEmpty(pointStatus) && pointStatus.equals(PointStatusEnum.EMPTY_POINT.getCode())) {
entity.setVehicle_type("");
entity.setVehicle_code("");
entity.setStoragevehicle_code("");
entity.setVehicle_qty(0);
}
pointMapper.updateById(entity);
@@ -183,4 +188,14 @@ public class SchBasePointServiceImpl extends ServiceImpl<SchBasePointMapper, Sch
this.updateBatchById(list);
}
@Override
public TableDataInfo<RegionStructIvtVo> queryStruct(RegionStructQuery query, PageQuery pageQuery) {
com.github.pagehelper.Page<Object> page = PageHelper.startPage(pageQuery.getPage() + 1, pageQuery.getSize());
// page.setOrderBy("point_code DESC");
List<RegionStructIvtVo> ivtVo = this.baseMapper.queryStruct(query);
TableDataInfo build = TableDataInfo.build(ivtVo);
build.setTotalElements(page.getTotal());
return build;
}
}

View File

@@ -48,7 +48,7 @@ public class PointUtils {
SchBasePointServiceImpl pointService = SpringContextHolder.getBean(SchBasePointServiceImpl.class);
point.setPoint_status(PointStatusEnum.EMPTY_POINT.getCode());
point.setVehicle_type("");
point.setVehicle_code("");
point.setStoragevehicle_code("");
point.setIng_task_code("");
point.setVehicle_qty(0);
point.setUpdate_time(DateUtil.now());
@@ -70,7 +70,7 @@ public class PointUtils {
String parentPointCode = point.getParent_point_code();
SchBasePoint basePoint = pointService.getById(parentPointCode);
point.setVehicle_type("");
point.setVehicle_code("");
point.setStoragevehicle_code("");
point.setIng_task_code("");
point.setVehicle_qty(point.getVehicle_qty() == 5 ? point.getVehicle_qty() : point.getVehicle_qty() + 1);
// 等到新的点执行第一托的时候才判断另一个点满足5个托盘的时候就清空

View File

@@ -7,7 +7,6 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import lombok.extern.slf4j.Slf4j;
import org.nl.common.utils.SecurityUtils;
import org.nl.config.SpringContextHolder;
import org.nl.wms.sch.group.service.dao.SchBaseVehiclematerialgroup;
import org.nl.wms.sch.task.service.ISchBaseTaskService;
import org.nl.wms.sch.task.service.dao.SchBaseTask;
import org.nl.wms.sch.task_manage.GeneralDefinition;
@@ -71,30 +70,6 @@ public class TaskUtils {
taskObj.setUpdate_time(DateUtil.now());
}
public static void setGroupUpdateByAcs(SchBaseVehiclematerialgroup groupEntity) {
groupEntity.setUpdate_id(GeneralDefinition.ACS_ID);
groupEntity.setUpdate_name(GeneralDefinition.ACS_NAME);
groupEntity.setUpdate_time(DateUtil.now());
}
public static void setGroupUpdateByPC(SchBaseVehiclematerialgroup groupEntity) {
groupEntity.setUpdate_id(SecurityUtils.getCurrentUserId());
groupEntity.setUpdate_name(SecurityUtils.getCurrentNickName());
groupEntity.setUpdate_time(DateUtil.now());
}
/**
* 根据类型去判断谁修改的
* @param groupEntity
* @param taskFinishedType
*/
public static void setGroupUpdateByType(SchBaseVehiclematerialgroup groupEntity, TaskFinishedTypeEnum taskFinishedType) {
if (taskFinishedType.equals(TaskFinishedTypeEnum.AUTO_ACS)) {
setGroupUpdateByAcs(groupEntity);
} else {
setGroupUpdateByPC(groupEntity);
}
}
public static void setUpdateAuto(SchBaseTask taskObj) {
String currentUserId = ObjectUtil.isNotEmpty(SecurityUtils.getCurrentUserId())

View File

@@ -4,11 +4,11 @@ server:
nl:
config:
mysql:
ip: 127.0.0.1
ip: 192.168.81.251
port: 3306
username: root
password: 12356
database: nl-platform
password: P@ssw0rd.
database: lms_standardv1
redis:
ip: 127.0.0.1
port: 6379