add:添加组盘页面
This commit is contained in:
@@ -205,6 +205,7 @@
|
||||
<dependency>
|
||||
<groupId>mysql</groupId>
|
||||
<artifactId>mysql-connector-java</artifactId>
|
||||
<version>8.0.20</version>
|
||||
</dependency>
|
||||
|
||||
<!-- druid数据源驱动 -->
|
||||
|
||||
@@ -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() {
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
@@ -85,4 +85,7 @@ public interface ISysDictService extends IService<Dict> {
|
||||
* @return
|
||||
*/
|
||||
List<Dict> queryAll();
|
||||
|
||||
List<Map> dynamicTableEnum(String table,String label,String value);
|
||||
|
||||
}
|
||||
|
||||
@@ -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);
|
||||
|
||||
}
|
||||
|
||||
@@ -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>
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -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;
|
||||
|
||||
}
|
||||
|
||||
@@ -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=")">
|
||||
|
||||
@@ -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);
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
|
||||
@@ -30,7 +30,7 @@ public interface IMdMeMaterialbaseService extends IService<MdMeMaterialbase> {
|
||||
* 新增物料
|
||||
* @param dto 物料实体类
|
||||
*/
|
||||
void create(MdMeMaterialbase dto);
|
||||
void create(JSONObject dto);
|
||||
/**
|
||||
* 修改物料
|
||||
* @param dto 物料实体类
|
||||
|
||||
@@ -57,7 +57,11 @@ public class MdMeMaterialbase implements Serializable {
|
||||
/**
|
||||
* 基本计量单位
|
||||
*/
|
||||
private String base_unit_id;
|
||||
private String measure_unit_id;
|
||||
/**
|
||||
* 基本计量名称
|
||||
*/
|
||||
private String unit_name;
|
||||
|
||||
/**
|
||||
* 辅助计量单位
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
|
||||
}
|
||||
@@ -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;
|
||||
}
|
||||
}
|
||||
@@ -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;
|
||||
|
||||
}
|
||||
@@ -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;
|
||||
}
|
||||
@@ -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);
|
||||
}
|
||||
}
|
||||
@@ -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);
|
||||
}
|
||||
}
|
||||
@@ -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);
|
||||
|
||||
|
||||
}
|
||||
@@ -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);
|
||||
}
|
||||
@@ -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;
|
||||
}
|
||||
@@ -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;
|
||||
|
||||
}
|
||||
@@ -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);
|
||||
|
||||
}
|
||||
@@ -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>
|
||||
@@ -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);
|
||||
}
|
||||
@@ -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>
|
||||
@@ -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;
|
||||
}
|
||||
@@ -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;
|
||||
}
|
||||
@@ -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;
|
||||
}
|
||||
@@ -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;
|
||||
|
||||
}
|
||||
@@ -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);
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
}
|
||||
@@ -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);
|
||||
}
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
|
||||
@@ -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>
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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个托盘的时候就清空
|
||||
|
||||
@@ -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())
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -6,6 +6,7 @@
|
||||
"license": "Apache-2.0",
|
||||
"scripts": {
|
||||
"dev": "vue-cli-service serve",
|
||||
"dev_mac": "export NODE_OPTIONS=--openssl-legacy-provider && vue-cli-service serve",
|
||||
"build:prod": "vue-cli-service build",
|
||||
"build:stage": "vue-cli-service build --mode staging",
|
||||
"preview": "node build/index.js --preview",
|
||||
|
||||
34
nladmin-ui/src/components/TableEnum/TableEnum.js
Normal file
34
nladmin-ui/src/components/TableEnum/TableEnum.js
Normal file
@@ -0,0 +1,34 @@
|
||||
import Vue from 'vue'
|
||||
import { tableEnum as getEnumDetail } from '@/views/system/dict/enumDetail'
|
||||
|
||||
// tableEnums: ['st_ivt_bsrealstorattr#stor_name#stor_code'],
|
||||
export default class TableEnum {
|
||||
constructor(tableEnum) {
|
||||
this.tableEnum = tableEnum
|
||||
}
|
||||
|
||||
async init(names, completeCallback) {
|
||||
if (names === undefined || name === null) {
|
||||
throw new Error('need TableEnum names')
|
||||
}
|
||||
const ps = []
|
||||
names.forEach(n => {
|
||||
const split = n.split('#')
|
||||
const code = split[0]
|
||||
const label = split[1]
|
||||
const value = split[2]
|
||||
Vue.set(this.tableEnum.tableEnum, code, {})
|
||||
Vue.set(this.tableEnum.label, code, {})
|
||||
Vue.set(this.tableEnum, code, [])
|
||||
ps.push(getEnumDetail({ 'code': code, 'label': label, 'value': value }).then(data => {
|
||||
this.tableEnum[code].splice(0, 0, ...data)
|
||||
data.forEach(d => {
|
||||
Vue.set(this.tableEnum.tableEnum[code], d.value, d)
|
||||
Vue.set(this.tableEnum.label[code], d.value, d.label)
|
||||
})
|
||||
}))
|
||||
})
|
||||
await Promise.all(ps)
|
||||
completeCallback()
|
||||
}
|
||||
}
|
||||
29
nladmin-ui/src/components/TableEnum/index.js
Normal file
29
nladmin-ui/src/components/TableEnum/index.js
Normal file
@@ -0,0 +1,29 @@
|
||||
import TableEnum from './TableEnum'
|
||||
|
||||
const install = function(Vue) {
|
||||
Vue.mixin({
|
||||
data() {
|
||||
if (this.$options.tableEnums instanceof Array) {
|
||||
const tableEnum = {
|
||||
tableEnum: {},
|
||||
label: {}
|
||||
}
|
||||
return {
|
||||
tableEnum
|
||||
}
|
||||
}
|
||||
return {}
|
||||
},
|
||||
created() {
|
||||
if (this.$options.tableEnums instanceof Array) {
|
||||
new TableEnum(this.tableEnum).init(this.$options.tableEnums, () => {
|
||||
this.$nextTick(() => {
|
||||
this.$emit('dictReady')
|
||||
})
|
||||
})
|
||||
}
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
export default { install }
|
||||
@@ -11,6 +11,7 @@ import 'mavon-editor/dist/css/index.css'
|
||||
|
||||
// 数据字典
|
||||
import dict from './components/Dict'
|
||||
import tableEnum from './components/TableEnum'
|
||||
|
||||
import scroll from 'vue-seamless-scroll'
|
||||
// 权限指令
|
||||
@@ -71,6 +72,7 @@ Vue.use(VueHighlightJS)
|
||||
Vue.use(mavonEditor)
|
||||
Vue.use(permission)
|
||||
Vue.use(dict)
|
||||
Vue.use(tableEnum)
|
||||
Vue.use(VueBus)
|
||||
// 全局设置控件样式https://codeantenna.com/a/0IN5FMJk5h
|
||||
Element.Table.props.border = { type: Boolean, default: true }
|
||||
|
||||
22
nladmin-ui/src/views/system/dict/enumDetail.js
Normal file
22
nladmin-ui/src/views/system/dict/enumDetail.js
Normal file
@@ -0,0 +1,22 @@
|
||||
import request from '@/utils/request'
|
||||
|
||||
export function get(code) {
|
||||
const params = {
|
||||
code
|
||||
}
|
||||
return request({
|
||||
url: 'api/dict/getStatusEnum',
|
||||
method: 'get',
|
||||
params
|
||||
})
|
||||
}
|
||||
|
||||
export function tableEnum(params) {
|
||||
return request({
|
||||
url: 'api/dict/getTableEnum',
|
||||
method: 'get',
|
||||
params
|
||||
})
|
||||
}
|
||||
|
||||
export default { get, tableEnum }
|
||||
@@ -19,28 +19,6 @@
|
||||
:placeholder="$t('common.Please_select')"
|
||||
/>
|
||||
</el-form-item>
|
||||
|
||||
<el-form-item :label="$t('VehicleInfo.placeholder.vehicle_no')">
|
||||
<el-input
|
||||
v-model="query.storagevehicle_code_begin"
|
||||
clearable
|
||||
size="mini"
|
||||
:placeholder="$t('VehicleInfo.placeholder.start_vehicle')"
|
||||
style="width: 200px;"
|
||||
class="filter-item"
|
||||
@keyup.enter.native="crud.toQuery"
|
||||
/>
|
||||
-
|
||||
<el-input
|
||||
v-model="query.storagevehicle_code_end"
|
||||
clearable
|
||||
size="mini"
|
||||
:placeholder="$t('VehicleInfo.placeholder.end_vehicle')"
|
||||
style="width: 200px;"
|
||||
class="filter-item"
|
||||
@keyup.enter.native="crud.toQuery"
|
||||
/>
|
||||
</el-form-item>
|
||||
<rrOperation />
|
||||
</el-form>
|
||||
</div>
|
||||
@@ -65,32 +43,52 @@
|
||||
:visible.sync="crud.status.cu > 0"
|
||||
width="450px"
|
||||
>
|
||||
<el-form ref="form" :model="form" :rules="rules" size="mini" label-position="right" label-width="auto">
|
||||
<el-form-item
|
||||
:label="$t('VehicleInfo.table.storagevehicle_type_name')"
|
||||
prop="storagevehicle_type"
|
||||
>
|
||||
<treeselect
|
||||
v-model="form.storagevehicle_type"
|
||||
:load-options="loadChildNodes"
|
||||
:options="classes1"
|
||||
style="width: 80%"
|
||||
:placeholder="$t('common.Please_select')"
|
||||
/>
|
||||
<el-form ref="form" :model="form" :rules="rules" size="mini" label-width="100px">
|
||||
<el-form-item label="载具类型" prop="vehicle_type">
|
||||
<el-select
|
||||
v-model="form.vehicle_type"
|
||||
clearable
|
||||
size="mini"
|
||||
placeholder="请选择"
|
||||
class="filter-item"
|
||||
style="width: 250px;"
|
||||
@change="getVehicle"
|
||||
>
|
||||
<el-option
|
||||
v-for="item in dict.storagevehicle_type"
|
||||
:label="item.label"
|
||||
:value="item.para1"
|
||||
/>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<br>
|
||||
<el-form-item :label="$t('VehicleInfo.dialog.num')" prop="num">
|
||||
<el-input-number v-model="form.num" :precision="0" style="width: 80%" />
|
||||
<el-form-item label="起始载具号" prop="vehicle_code">
|
||||
<el-input v-model="form.vehicle_code" :disabled="true" style="width: 250px;"/>
|
||||
</el-form-item>
|
||||
<el-form-item :label="$t('VehicleInfo.table.is_used')">
|
||||
<el-radio v-model="form.is_used" label="0">{{ $t('common.No') }}</el-radio>
|
||||
<el-radio v-model="form.is_used" label="1">{{ $t('common.Yes') }}</el-radio>
|
||||
<el-form-item label="载具数量" prop="num">
|
||||
<el-input-number v-model="form.num" :precision="0" style="width: 150px;"/>
|
||||
</el-form-item>
|
||||
<el-form-item label="高度(mm)" prop="h">
|
||||
<el-input-number v-model="form.h" :precision="0" style="width: 150px;"/>
|
||||
</el-form-item>
|
||||
<el-form-item label="宽度(mm)" prop="w">
|
||||
<el-input-number v-model="form.w" :precision="0" style="width: 150px;"/>
|
||||
</el-form-item>
|
||||
<el-form-item label="深度(mm)" prop="l">
|
||||
<el-input-number v-model="form.l" :precision="0" style="width: 150px;"/>
|
||||
</el-form-item>
|
||||
<el-form-item label="重量(g)" prop="weight">
|
||||
<el-input-number v-model="form.weight" :precision="0" style="width: 150px;"/>
|
||||
</el-form-item>
|
||||
<el-form-item label="是否启用">
|
||||
<el-radio v-model="form.is_used" label="0">否</el-radio>
|
||||
<el-radio v-model="form.is_used" label="1">是</el-radio>
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
<div slot="footer" class="dialog-footer">
|
||||
<el-button type="info" @click="crud.cancelCU">{{ $t('common.Cancel') }}</el-button>
|
||||
<el-button :loading="crud.cu === 2" type="primary" @click="crud.submitCU">{{ $t('VehicleInfo.dialog.build') }}</el-button>
|
||||
<el-button type="primary" @click="addAndprint">{{ $t('VehicleInfo.dialog.build_print') }}</el-button>
|
||||
<el-button type="info" @click="crud.cancelCU">取消</el-button>
|
||||
<el-button :loading="crud.cu === 2" type="primary" @click="crud.submitCU">生成</el-button>
|
||||
<el-button type="primary" @click="addAndprint">生成并打印</el-button>
|
||||
</div>
|
||||
</el-dialog>
|
||||
<!--表格渲染-->
|
||||
@@ -103,11 +101,6 @@
|
||||
@selection-change="crud.selectionChangeHandler"
|
||||
>
|
||||
<el-table-column type="selection" width="55" />
|
||||
<el-table-column
|
||||
prop="storagevehicle_type_name"
|
||||
:label="$t('VehicleInfo.table.storagevehicle_type_name')"
|
||||
:min-width="flexWidth('storagevehicle_code', crud.data, $t('VehicleInfo.table.storagevehicle_type_name'))"
|
||||
/>
|
||||
<el-table-column
|
||||
prop="storagevehicle_code"
|
||||
:label="$t('VehicleInfo.table.storagevehicle_code')"
|
||||
@@ -266,7 +259,6 @@ export default {
|
||||
parent_class_code: 'vehicle_type'
|
||||
}
|
||||
crudClassstandard.getClassType(param).then(res => {
|
||||
debugger
|
||||
const data = res
|
||||
this.buildTree(data)
|
||||
this.classes1 = data
|
||||
@@ -317,6 +309,16 @@ export default {
|
||||
})
|
||||
})
|
||||
},
|
||||
getVehicle(code) {
|
||||
if (!code) {
|
||||
this.crud.notify('请选择载具类型', CRUD.NOTIFICATION_TYPE.INFO)
|
||||
this.form.vehicle_code = ''
|
||||
return false
|
||||
}
|
||||
crudStoragevehicleinfo.getVehicle(code).then(res => {
|
||||
this.form.vehicle_code = res.value
|
||||
})
|
||||
},
|
||||
print() {
|
||||
const _selectData = this.$refs.table.selection
|
||||
if (!_selectData || _selectData.length < 1) {
|
||||
|
||||
153
nladmin-ui/src/views/wms/basedata/material/MaterialDialog.vue
Normal file
153
nladmin-ui/src/views/wms/basedata/material/MaterialDialog.vue
Normal file
@@ -0,0 +1,153 @@
|
||||
<template>
|
||||
<el-dialog
|
||||
title="物料选择"
|
||||
append-to-body
|
||||
:visible.sync="dialogVisible"
|
||||
destroy-on-close
|
||||
width="1000px"
|
||||
@close="close"
|
||||
@open="open"
|
||||
>
|
||||
<el-form
|
||||
:inline="true"
|
||||
class="demo-form-inline"
|
||||
label-position="right"
|
||||
label-width="80px"
|
||||
label-suffix=":"
|
||||
>
|
||||
<el-form-item label="物料名称">
|
||||
<el-input
|
||||
v-model="query.search"
|
||||
clearable
|
||||
size="mini"
|
||||
placeholder="物料名称"
|
||||
@keyup.enter.native="crud.toQuery"
|
||||
/>
|
||||
</el-form-item>
|
||||
<rrOperation />
|
||||
</el-form>
|
||||
|
||||
<!--表格渲染-->
|
||||
<el-table
|
||||
ref="table"
|
||||
v-loading="crud.loading"
|
||||
:data="crud.data"
|
||||
style="width: 100%;"
|
||||
size="mini"
|
||||
border
|
||||
:cell-style="{'text-align':'center'}"
|
||||
:header-cell-style="{background:'#f5f7fa',color:'#606266','text-align':'center'}"
|
||||
@select="handleSelectionChange"
|
||||
@select-all="onSelectAll"
|
||||
@current-change="clickChange"
|
||||
>
|
||||
<el-table-column v-if="!isSingle" type="selection" width="55" />
|
||||
<el-table-column v-if="isSingle" label="选择" width="55">
|
||||
<template slot-scope="scope">
|
||||
<el-radio v-model="tableRadio" :label="scope.row"><i /></el-radio>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column prop="material_code" label="物料编码" width="140" />
|
||||
<el-table-column prop="material_name" label="物料名称" width="170" show-overflow-tooltip />
|
||||
<el-table-column prop="material_spec" label="物料规格" width="170" show-overflow-tooltip/>
|
||||
<el-table-column prop="class_name" label="物料分类" width="140" />
|
||||
<el-table-column prop="unit_name" label="计量单位" />
|
||||
<el-table-column prop="product_series_name" label="系列" />
|
||||
<el-table-column prop="update_optname" label="修改人" />
|
||||
<el-table-column prop="update_time" label="修改时间" width="135" />
|
||||
</el-table>
|
||||
<!--分页组件-->
|
||||
<pagination />
|
||||
<span slot="footer" class="dialog-footer">
|
||||
<el-button @click="dialogVisible = false">取 消</el-button>
|
||||
<el-button type="primary" @click="submit">确 定</el-button>
|
||||
</span>
|
||||
</el-dialog>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
|
||||
import CRUD, { header, presenter } from '@crud/crud'
|
||||
import rrOperation from '@crud/RR.operation'
|
||||
import pagination from '@crud/Pagination'
|
||||
import '@riophae/vue-treeselect/dist/vue-treeselect.css'
|
||||
|
||||
export default {
|
||||
name: 'MaterialDialog',
|
||||
components: { rrOperation, pagination },
|
||||
dicts: ['is_used'],
|
||||
cruds() {
|
||||
return CRUD({ title: '物料选择', url: 'api/Materia', optShow: {}})
|
||||
},
|
||||
mixins: [presenter(), header()],
|
||||
props: {
|
||||
dialogShow: {
|
||||
type: Boolean,
|
||||
default: false
|
||||
},
|
||||
isSingle: {
|
||||
type: Boolean,
|
||||
default: true
|
||||
}
|
||||
},
|
||||
data() {
|
||||
return {
|
||||
dialogVisible: false,
|
||||
tableRadio: null,
|
||||
tableData: []
|
||||
}
|
||||
},
|
||||
watch: {
|
||||
dialogShow: {
|
||||
handler(newValue) {
|
||||
this.dialogVisible = newValue
|
||||
}
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
clickChange(item) {
|
||||
this.tableRadio = item
|
||||
},
|
||||
open() {
|
||||
|
||||
},
|
||||
handleSelectionChange(val, row) {
|
||||
if (val.length > 1) {
|
||||
this.$refs.table.clearSelection()
|
||||
this.$refs.table.toggleRowSelection(val.pop())
|
||||
} else {
|
||||
this.checkrow = row
|
||||
}
|
||||
},
|
||||
onSelectAll() {
|
||||
this.$refs.table.clearSelection()
|
||||
},
|
||||
close() {
|
||||
this.crud.resetQuery(false)
|
||||
this.$emit('update:dialogShow', false)
|
||||
},
|
||||
submit() {
|
||||
// 处理单选
|
||||
if (this.isSingle && this.tableRadio) {
|
||||
this.$emit('update:dialogShow', false)
|
||||
this.$emit('materialChoose', this.tableRadio)
|
||||
return
|
||||
}
|
||||
this.rows = this.$refs.table.selection
|
||||
if (this.rows.length <= 0) {
|
||||
this.$message('请先勾选物料')
|
||||
return
|
||||
}
|
||||
this.crud.resetQuery(false)
|
||||
this.$emit('update:dialogShow', false)
|
||||
this.$emit('materialChoose', this.rows)
|
||||
}
|
||||
}
|
||||
}
|
||||
</script>
|
||||
<style rel="stylesheet/scss" lang="scss" scoped>
|
||||
::v-deep .el-dialog__body {
|
||||
padding-top: 0px;
|
||||
}
|
||||
</style>
|
||||
|
||||
@@ -85,21 +85,25 @@
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
<!-- <el-row>-->
|
||||
<!-- <el-col :span="8">-->
|
||||
<!-- <el-form-item label="静置时间" prop="standing_time">-->
|
||||
<!-- <el-input-number v-model="form.standing_time" :controls="false" :min="0" label="分钟"-->
|
||||
<!-- style="width: 200px;"-->
|
||||
<!-- />-->
|
||||
<!-- </el-form-item>-->
|
||||
<!-- </el-col>-->
|
||||
<!-- <el-col :span="8">-->
|
||||
<!-- <el-form-item label="是否启用" prop="is_used">-->
|
||||
<!-- <el-radio v-model="form.is_used" label="0">否</el-radio>-->
|
||||
<!-- <el-radio v-model="form.is_used" label="1">是</el-radio>-->
|
||||
<!-- </el-form-item>-->
|
||||
<!-- </el-col>-->
|
||||
<!-- </el-row>-->
|
||||
<el-row>
|
||||
<el-col :span="8">
|
||||
<el-form-item label="单位" prop="qty_unit_name">
|
||||
<el-select
|
||||
v-model="form.qty_unit_name"
|
||||
style="width: 100px"
|
||||
placeholder=""
|
||||
@change="unitChange"
|
||||
>
|
||||
<el-option
|
||||
v-for="item in tableEnum.md_pb_measureunit"
|
||||
:key="item.id"
|
||||
:label="item.label"
|
||||
:value="item.value+'@'+item.label"
|
||||
/>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
</el-form>
|
||||
<div slot="footer" class="dialog-footer">
|
||||
<el-button type="text" @click="crud.cancelCU">取消</el-button>
|
||||
@@ -206,6 +210,7 @@ export default {
|
||||
name: 'Materia',
|
||||
// 数据字典
|
||||
dicts: ['is_used'],
|
||||
tableEnums: ['md_pb_measureunit#unit_name#measure_unit_id'],
|
||||
components: { pagination, crudOperation, rrOperation, udOperation, UploadDialog },
|
||||
mixins: [presenter(), header(), form(defaultForm), crud()],
|
||||
cruds() {
|
||||
|
||||
27
nladmin-ui/src/views/wms/pdm/group/group.js
Normal file
27
nladmin-ui/src/views/wms/pdm/group/group.js
Normal file
@@ -0,0 +1,27 @@
|
||||
import request from '@/utils/request'
|
||||
|
||||
export function add(data) {
|
||||
return request({
|
||||
url: 'api/group',
|
||||
method: 'post',
|
||||
data
|
||||
})
|
||||
}
|
||||
|
||||
export function del(ids) {
|
||||
return request({
|
||||
url: 'api/group/',
|
||||
method: 'delete',
|
||||
data: ids
|
||||
})
|
||||
}
|
||||
|
||||
export function edit(data) {
|
||||
return request({
|
||||
url: 'api/group',
|
||||
method: 'put',
|
||||
data
|
||||
})
|
||||
}
|
||||
|
||||
export default { add, edit, del }
|
||||
269
nladmin-ui/src/views/wms/pdm/group/index.vue
Normal file
269
nladmin-ui/src/views/wms/pdm/group/index.vue
Normal file
@@ -0,0 +1,269 @@
|
||||
<template>
|
||||
<div class="app-container">
|
||||
<!--工具栏-->
|
||||
<div class="head-container">
|
||||
<el-row>
|
||||
<el-col :span="4">
|
||||
物料查询:
|
||||
<el-input
|
||||
v-model="query.material_code"
|
||||
clearable
|
||||
style="width: 150px"
|
||||
size="mini"
|
||||
placeholder="物料编码、名称"
|
||||
@keyup.enter.native="crud.toQuery"
|
||||
/>
|
||||
</el-col>
|
||||
<el-col :span="4">
|
||||
批次查询:
|
||||
<el-input
|
||||
v-model="query.pcsn"
|
||||
clearable
|
||||
style="width: 150px"
|
||||
size="mini"
|
||||
placeholder="批次"
|
||||
@keyup.enter.native="crud.toQuery"
|
||||
/>
|
||||
</el-col>
|
||||
<el-col :span="4">
|
||||
载具编码:
|
||||
<el-input
|
||||
v-model="query.storagevehicle_code"
|
||||
clearable
|
||||
style="width: 150px"
|
||||
size="mini"
|
||||
placeholder="载具编码"
|
||||
@keyup.enter.native="crud.toQuery"
|
||||
/>
|
||||
</el-col>
|
||||
<el-col :span="4">
|
||||
组盘状态:
|
||||
<el-select
|
||||
v-model="query.status"
|
||||
clearable
|
||||
style="width: 150px"
|
||||
size="mini"
|
||||
placeholder="状态"
|
||||
class="filter-item"
|
||||
@change="crud.toQuery"
|
||||
>
|
||||
<el-option
|
||||
v-for="item in dict.GROUP_STATUS"
|
||||
:label="item.label"
|
||||
:value="item.value"
|
||||
/>
|
||||
</el-select>
|
||||
</el-col>
|
||||
<el-col :span="4">
|
||||
<rrOperation />
|
||||
</el-col>
|
||||
</el-row>
|
||||
<!--如果想在工具栏加入更多按钮,可以使用插槽方式, slot = 'left' or 'right'-->
|
||||
<crudOperation :permission="permission" />
|
||||
<!--新增表格-->
|
||||
<el-dialog
|
||||
:close-on-click-modal="false"
|
||||
:before-close="crud.cancelCU"
|
||||
:visible.sync="crud.status.cu > 0"
|
||||
:title="crud.status.title"
|
||||
width="1200px"
|
||||
>
|
||||
<el-form ref="form" :model="form" :rules="rules" size="mini" label-width="110px">
|
||||
<el-row>
|
||||
<el-col :span="8">
|
||||
<el-form-item label="物料编码" prop="material_code" >
|
||||
<el-input v-model="form.material_code" @focus="getMaterial" style="width: 200px;" :disabled="crud.status.edit > 0" />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="8">
|
||||
<el-form-item label="物料名称" prop="material_name">
|
||||
<el-input disabled v-model="form.material_name" style="width: 200px;" />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="8">
|
||||
<el-form-item label="规格" prop="material_spec">
|
||||
<label slot="label">规 格</label>
|
||||
<el-input disabled v-model="form.material_spec" style="width: 200px;" />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
<el-row>
|
||||
<el-col :span="8">
|
||||
<el-form-item label="载具编码" prop="storagevehicle_code">
|
||||
<label slot="label">载具编码</label>
|
||||
<el-input v-model="form.storagevehicle_code" style="width: 200px;" />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="8">
|
||||
<el-form-item label="物料批号" prop="pcsn">
|
||||
<el-input v-model="form.pcsn" style="width: 200px;" />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="8">
|
||||
<el-form-item label="物料数量" prop="qty">
|
||||
<el-input-number v-model="form.qty" style="width: 200px;" />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
<el-row>
|
||||
<el-col :span="8">
|
||||
<el-form-item label="单位" prop="qty_unit_name">
|
||||
<el-select
|
||||
v-model="form.qty_unit_name"
|
||||
style="width: 100px"
|
||||
placeholder=""
|
||||
@change="unitChange"
|
||||
>
|
||||
<el-option
|
||||
v-for="item in tableEnum.md_pb_measureunit"
|
||||
:key="item.id"
|
||||
:label="item.label"
|
||||
:value="item.value+'@'+item.label"
|
||||
/>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="8">
|
||||
<el-form-item label="源单号" prop="ext_code">
|
||||
<el-input v-model="form.ext_code" style="width: 200px;" />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="8">
|
||||
<el-form-item label="源单类型" prop="ext_type">
|
||||
<el-input v-model="form.ext_type" style="width: 200px;" />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
</el-form>
|
||||
<div slot="footer" class="dialog-footer">
|
||||
<el-button type="text" @click="crud.cancelCU">取消</el-button>
|
||||
<el-button :loading="crud.cu === 2" type="primary" @click="crud.submitCU">确认</el-button>
|
||||
</div>
|
||||
</el-dialog>
|
||||
<!--表格渲染-->
|
||||
<el-table
|
||||
ref="table"
|
||||
v-loading="crud.loading"
|
||||
:data="crud.data"
|
||||
size="mini"
|
||||
style="width: 100%;"
|
||||
@selection-change="crud.selectionChangeHandler"
|
||||
>
|
||||
<el-table-column prop="storagevehicle_code" label="载具编码" :min-width="flexWidth('storagevehicle_code',crud.data,'载具编码')" />
|
||||
<el-table-column prop="material_code" label="物料编码" :min-width="flexWidth('material_code',crud.data,'物料编码')" />
|
||||
<el-table-column prop="material_name" label="物料名称" :min-width="flexWidth('material_name',crud.data,'物料名称')" />
|
||||
<el-table-column prop="pcsn" label="批次" :min-width="flexWidth('pcsn',crud.data,'批次')" />
|
||||
<el-table-column prop="status" label="状态" :formatter="formattStatus" :min-width="flexWidth('status',crud.data,'状态')" />
|
||||
<el-table-column prop="qty" label="组盘数量" :formatter="crud.formatNum3" :min-width="100" />
|
||||
<el-table-column prop="remark" label="备注" :min-width="flexWidth('remark',crud.data,'备注')" />
|
||||
<el-table-column prop="create_name" label="组盘人" :min-width="flexWidth('create_name',crud.data,'组盘人')" />
|
||||
<el-table-column prop="create_time" label="组盘时间" :min-width="flexWidth('create_time',crud.data,'组盘时间')" />
|
||||
<el-table-column
|
||||
v-permission="['admin','Supplierbase:edit','Supplierbase:del']"
|
||||
label="操作"
|
||||
width="150px"
|
||||
lign="center"
|
||||
>
|
||||
<template slot-scope="scope">
|
||||
<udOperation
|
||||
:data="scope.row"
|
||||
:is-visiable-edit="false"
|
||||
:disabled-dle="scope.row.status === '02'"
|
||||
:permission="permission"
|
||||
/>
|
||||
</template>
|
||||
</el-table-column>
|
||||
</el-table>
|
||||
<!--分页组件-->
|
||||
<pagination />
|
||||
</div>
|
||||
<!--放引用的组件-->
|
||||
<MaterialDialog :dialog-show.sync="materialDialog" @materialChoose="materialChoose" />
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import crudGroup from '@/views/wms/pdm/group/group'
|
||||
import CRUD, { crud, form, header, presenter } from '@crud/crud'
|
||||
import crudOperation from '@crud/CRUD.operation'
|
||||
import udOperation from '@crud/UD.operation'
|
||||
import pagination from '@crud/Pagination'
|
||||
import rrOperation from '@crud/RR.operation'
|
||||
import MaterialDialog from '@/views/wms/basedata/material/MaterialDialog'
|
||||
|
||||
const defaultForm = {
|
||||
group_id: null,
|
||||
storagevehicle_code: null,
|
||||
material_id: null,
|
||||
material_name: null,
|
||||
material_spec: null,
|
||||
pcsn: null,
|
||||
qty_unit_id: null,
|
||||
qty_unit_name: null,
|
||||
qty: null,
|
||||
remark: null,
|
||||
status: null,
|
||||
create_id: null,
|
||||
create_name: null,
|
||||
create_time: null,
|
||||
ext_code: null,
|
||||
ext_type: null
|
||||
}
|
||||
export default {
|
||||
name: 'Group',
|
||||
components: { pagination, MaterialDialog, crudOperation, rrOperation, udOperation },
|
||||
mixins: [presenter(), header(), form(defaultForm), crud()],
|
||||
tableEnums: ['md_pb_measureunit#unit_name#measure_unit_id'],
|
||||
// 数据字典
|
||||
dicts: ['is_used', 'GROUP_STATUS'],
|
||||
cruds() {
|
||||
return CRUD({
|
||||
title: '组盘记录',
|
||||
url: 'api/group',
|
||||
optShow: {
|
||||
add: true,
|
||||
reset: true
|
||||
},
|
||||
idField: 'group_id',
|
||||
sort: 'group_id,desc',
|
||||
crudMethod: { ...crudGroup }
|
||||
})
|
||||
},
|
||||
data() {
|
||||
return {
|
||||
permission: {},
|
||||
materialDialog: false,
|
||||
classes: [],
|
||||
rules: {
|
||||
}
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
// 钩子:在获取表格数据之前执行,false 则代表不获取数据
|
||||
[CRUD.HOOK.beforeRefresh]() {
|
||||
return true
|
||||
},
|
||||
formattStatus(row) {
|
||||
return this.dict.label.GROUP_STATUS[row.status]
|
||||
},
|
||||
getMaterial() {
|
||||
this.materialDialog = true
|
||||
},
|
||||
unitChange(row) {
|
||||
const split = row.split('@')
|
||||
this.form.qty_unit_id = split[0]
|
||||
this.form.qty_unit_name = split[1]
|
||||
},
|
||||
materialChoose(row) {
|
||||
this.form.material_name = row.material_name
|
||||
this.form.material_id = row.material_id
|
||||
this.form.material_code = row.material_code
|
||||
this.form.material_spec = row.material_spec
|
||||
}
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<style scoped>
|
||||
|
||||
</style>
|
||||
177
nladmin-ui/src/views/wms/pdm/structivt/index.vue
Normal file
177
nladmin-ui/src/views/wms/pdm/structivt/index.vue
Normal file
@@ -0,0 +1,177 @@
|
||||
<template>
|
||||
<div class="app-container">
|
||||
<!--工具栏-->
|
||||
<div class="head-container">
|
||||
<div v-if="crud.props.searchToggle">
|
||||
<!-- 搜索 -->
|
||||
<el-form
|
||||
:inline="true"
|
||||
class="demo-form-inline"
|
||||
label-position="right"
|
||||
label-width="90px"
|
||||
label-suffix=":"
|
||||
>
|
||||
<el-form-item label="所属区域">
|
||||
<el-select
|
||||
clearable
|
||||
v-model="query.region_code"
|
||||
style="width: 120px"
|
||||
placeholder=""
|
||||
>
|
||||
<el-option
|
||||
v-for="item in tableEnum.sch_base_region"
|
||||
:key="item.id"
|
||||
:label="item.label"
|
||||
:value="item.value"
|
||||
/>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item label="点位搜索">
|
||||
<el-input
|
||||
v-model="query.point_code"
|
||||
clearable
|
||||
size="small"
|
||||
placeholder="点位编码或名称"
|
||||
style="width: 200px;"
|
||||
class="filter-item"
|
||||
/>
|
||||
</el-form-item>
|
||||
<el-form-item label="物料搜索">
|
||||
<el-input
|
||||
v-model="query.material_code"
|
||||
clearable
|
||||
size="small"
|
||||
placeholder="物料编码、名称或规格"
|
||||
style="width: 200px;"
|
||||
class="filter-item"
|
||||
/>
|
||||
</el-form-item>
|
||||
<el-form-item label="批次号">
|
||||
<el-input
|
||||
v-model="query.pcsn"
|
||||
clearable
|
||||
size="small"
|
||||
placeholder="批次号"
|
||||
style="width: 200px;"
|
||||
class="filter-item"
|
||||
/>
|
||||
</el-form-item>
|
||||
<rrOperation :crud="crud" />
|
||||
</el-form>
|
||||
</div>
|
||||
<!--如果想在工具栏加入更多按钮,可以使用插槽方式, slot = 'left' or 'right'-->
|
||||
<crudOperation :permission="permission" />
|
||||
<!--表格渲染-->
|
||||
<el-table
|
||||
ref="table"
|
||||
v-loading="crud.loading"
|
||||
:data="crud.data"
|
||||
size="mini"
|
||||
style="width: 100%;"
|
||||
@selection-change="crud.selectionChangeHandler"
|
||||
>
|
||||
<el-table-column prop="point_code" label="点位编码" :min-width="flexWidth('struct_code',crud.data,'点位编码')" />
|
||||
<el-table-column prop="region_code" label="区域编码" :min-width="flexWidth('struct_name',crud.data,'区域编码')" />
|
||||
<el-table-column prop="material_code" label="物料编码" :min-width="flexWidth('material_code',crud.data,'物料编码')" />
|
||||
<el-table-column prop="material_spec" label="物料规格" :min-width="flexWidth('material_code',crud.data,'物料规格')" />
|
||||
<el-table-column prop="material_name" label="物料名称" :min-width="flexWidth('material_name',crud.data,'物料名称')" />
|
||||
<el-table-column prop="pcsn" label="批次号" :min-width="flexWidth('pcsn',crud.data,'批次号')" />
|
||||
<el-table-column prop="storagevehicle_code" label="载具号" :min-width="flexWidth('storagevehicle_code',crud.data,'载具号')" />
|
||||
<el-table-column prop="qty" label="总数" :formatter="crud.formatNum3" :min-width="100" />
|
||||
<el-table-column label="可用数" :min-width="100" >
|
||||
<template slot-scope="scope">
|
||||
<span>{{ scope.row.qty - scope.row.frozen_qty }}</span>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column prop="frozen_qty" label="冻结数" :formatter="crud.formatNum3" :min-width="100" />
|
||||
<el-table-column prop="unit_name" label="计量单位" :min-width="flexWidth('qty_unit_name',crud.data,'计量单位')" />
|
||||
<el-table-column prop="remark" label="备注" :min-width="flexWidth('remark',crud.data,'备注')" />
|
||||
<el-table-column prop="inbound_time" label="入库时间" :min-width="flexWidth('insert_time',crud.data,'入库时间')" />
|
||||
</el-table>
|
||||
<!--分页组件-->
|
||||
<pagination />
|
||||
</div>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import crudStructivt from '@/views/wms/pdm/structivt/structivt'
|
||||
import CRUD, { presenter, header, crud } from '@crud/crud'
|
||||
import rrOperation from '@crud/RR.operation'
|
||||
import crudOperation from '@crud/CRUD.operation'
|
||||
import pagination from '@crud/Pagination'
|
||||
import { download } from '@/api/data'
|
||||
import { downloadFile } from '@/utils'
|
||||
|
||||
export default {
|
||||
name: 'Structivt',
|
||||
components: { pagination, crudOperation, rrOperation },
|
||||
mixins: [presenter(), header(), crud()],
|
||||
tableEnums: ['sch_base_region#region_name#region_code'],
|
||||
cruds() {
|
||||
return CRUD({
|
||||
title: '库存管理', url: 'api/regionStruct', idField: 'stockrecord_id', sort: 'stockrecord_id,desc',
|
||||
optShow: {
|
||||
add: false,
|
||||
edit: false,
|
||||
showDtlLoading: false,
|
||||
del: false,
|
||||
download: false,
|
||||
reset: true
|
||||
},
|
||||
crudMethod: { ...crudStructivt }
|
||||
})
|
||||
},
|
||||
data() {
|
||||
return {
|
||||
sects: [],
|
||||
permission: {},
|
||||
rules: {}
|
||||
}
|
||||
},
|
||||
created() {
|
||||
},
|
||||
methods: {
|
||||
// 钩子:在获取表格数据之前执行,false 则代表不获取数据
|
||||
[CRUD.HOOK.beforeRefresh]() {
|
||||
return true
|
||||
},
|
||||
hand(value) {
|
||||
this.crud.toQuery()
|
||||
},
|
||||
sectQueryChange(val) {
|
||||
if (val.length === 1) {
|
||||
this.query.stor_id = val[0]
|
||||
this.query.sect_id = ''
|
||||
}
|
||||
if (val.length === 0) {
|
||||
this.query.sect_id = ''
|
||||
this.query.stor_id = ''
|
||||
}
|
||||
if (val.length === 2) {
|
||||
this.query.stor_id = val[0]
|
||||
this.query.sect_id = val[1]
|
||||
}
|
||||
this.crud.toQuery()
|
||||
},
|
||||
querytable() {
|
||||
this.crud.toQuery()
|
||||
},
|
||||
downdtl() {
|
||||
if (this.currentRow !== null) {
|
||||
this.showDtlLoading = true
|
||||
download('/api/structivt/download', this.crud.query).then(result => {
|
||||
downloadFile(result, '成品库存', 'xlsx')
|
||||
this.showDtlLoading = false
|
||||
}).catch(() => {
|
||||
this.showDtlLoading = false
|
||||
})
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<style scoped>
|
||||
|
||||
</style>
|
||||
65
nladmin-ui/src/views/wms/pdm/structivt/structivt.js
Normal file
65
nladmin-ui/src/views/wms/pdm/structivt/structivt.js
Normal file
@@ -0,0 +1,65 @@
|
||||
import request from '@/utils/request'
|
||||
|
||||
export function add(data) {
|
||||
return request({
|
||||
url: 'api/structivt',
|
||||
method: 'post',
|
||||
data
|
||||
})
|
||||
}
|
||||
|
||||
export function del(ids) {
|
||||
return request({
|
||||
url: 'api/structivt/',
|
||||
method: 'delete',
|
||||
data: ids
|
||||
})
|
||||
}
|
||||
|
||||
export function edit(data) {
|
||||
return request({
|
||||
url: 'api/structivt',
|
||||
method: 'put',
|
||||
data
|
||||
})
|
||||
}
|
||||
|
||||
export function getStruct() {
|
||||
return request({
|
||||
url: 'api/structivt/getStruct',
|
||||
method: 'get'
|
||||
})
|
||||
}
|
||||
|
||||
export function getStructById(data) {
|
||||
return request({
|
||||
url: 'api/structivt/getStructById',
|
||||
method: 'post',
|
||||
data
|
||||
})
|
||||
}
|
||||
|
||||
export function getUnits() {
|
||||
return request({
|
||||
url: 'api/structivt/getUnits',
|
||||
method: 'get'
|
||||
})
|
||||
}
|
||||
|
||||
export function save(data) {
|
||||
return request({
|
||||
url: 'api/structivt/save',
|
||||
method: 'post',
|
||||
data: data
|
||||
})
|
||||
}
|
||||
|
||||
export function excelImport(data) {
|
||||
return request({
|
||||
url: 'api/structivt/importExcel',
|
||||
method: 'post',
|
||||
data
|
||||
})
|
||||
}
|
||||
|
||||
export default { add, edit, del, getStruct, getStructById, getUnits, save, excelImport }
|
||||
Reference in New Issue
Block a user