rev: 入库组盘
This commit is contained in:
@@ -1,10 +1,22 @@
|
|||||||
package org.nl.wms.masterdata_manage.controller.vehicle;
|
package org.nl.wms.masterdata_manage.controller.vehicle;
|
||||||
|
|
||||||
|
|
||||||
|
import io.swagger.annotations.ApiOperation;
|
||||||
|
import org.nl.common.anno.Log;
|
||||||
|
import org.nl.common.domain.query.PageQuery;
|
||||||
|
import org.nl.wms.masterdata_manage.service.vehicle.IMdPbBucketrecordService;
|
||||||
|
import org.nl.wms.scheduler_manage.service.point.ISchBasePointService;
|
||||||
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
|
import org.springframework.http.HttpStatus;
|
||||||
|
import org.springframework.http.ResponseEntity;
|
||||||
|
import org.springframework.web.bind.annotation.GetMapping;
|
||||||
import org.springframework.web.bind.annotation.RequestMapping;
|
import org.springframework.web.bind.annotation.RequestMapping;
|
||||||
|
|
||||||
|
import org.springframework.web.bind.annotation.RequestParam;
|
||||||
import org.springframework.web.bind.annotation.RestController;
|
import org.springframework.web.bind.annotation.RestController;
|
||||||
|
|
||||||
|
import java.util.Map;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* <p>
|
* <p>
|
||||||
* 桶记录表 前端控制器
|
* 桶记录表 前端控制器
|
||||||
@@ -14,8 +26,17 @@ import org.springframework.web.bind.annotation.RestController;
|
|||||||
* @since 2023-05-10
|
* @since 2023-05-10
|
||||||
*/
|
*/
|
||||||
@RestController
|
@RestController
|
||||||
@RequestMapping("/mdPbBucketrecord")
|
@RequestMapping("/api/mdPbBucketrecord")
|
||||||
public class MdPbBucketrecordController {
|
public class MdPbBucketrecordController {
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
private IMdPbBucketrecordService iMdPbBucketrecordService;
|
||||||
|
|
||||||
|
@GetMapping
|
||||||
|
@Log("查询桶记录表")
|
||||||
|
@ApiOperation("查询桶记录表")
|
||||||
|
public ResponseEntity<Object> query(@RequestParam Map whereJson, PageQuery page) {
|
||||||
|
return new ResponseEntity<>(iMdPbBucketrecordService.queryAll(whereJson,page), HttpStatus.OK);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -1,8 +1,12 @@
|
|||||||
package org.nl.wms.masterdata_manage.service.vehicle;
|
package org.nl.wms.masterdata_manage.service.vehicle;
|
||||||
|
|
||||||
|
import org.nl.common.domain.query.PageQuery;
|
||||||
import org.nl.wms.masterdata_manage.service.vehicle.dao.MdPbBucketrecord;
|
import org.nl.wms.masterdata_manage.service.vehicle.dao.MdPbBucketrecord;
|
||||||
import com.baomidou.mybatisplus.extension.service.IService;
|
import com.baomidou.mybatisplus.extension.service.IService;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
import java.util.Map;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* <p>
|
* <p>
|
||||||
* 桶记录表 服务类
|
* 桶记录表 服务类
|
||||||
@@ -13,4 +17,11 @@ import com.baomidou.mybatisplus.extension.service.IService;
|
|||||||
*/
|
*/
|
||||||
public interface IMdPbBucketrecordService extends IService<MdPbBucketrecord> {
|
public interface IMdPbBucketrecordService extends IService<MdPbBucketrecord> {
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 查询桶记录表
|
||||||
|
* @param whereJson /
|
||||||
|
* @param page /
|
||||||
|
* @return Object /
|
||||||
|
*/
|
||||||
|
Object queryAll(Map whereJson, PageQuery page);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -3,6 +3,9 @@ package org.nl.wms.masterdata_manage.service.vehicle.dao.mapper;
|
|||||||
import org.nl.wms.masterdata_manage.service.vehicle.dao.MdPbBucketrecord;
|
import org.nl.wms.masterdata_manage.service.vehicle.dao.MdPbBucketrecord;
|
||||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
import java.util.Map;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* <p>
|
* <p>
|
||||||
* 桶记录表 Mapper 接口
|
* 桶记录表 Mapper 接口
|
||||||
@@ -13,4 +16,5 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
|||||||
*/
|
*/
|
||||||
public interface MdPbBucketrecordMapper extends BaseMapper<MdPbBucketrecord> {
|
public interface MdPbBucketrecordMapper extends BaseMapper<MdPbBucketrecord> {
|
||||||
|
|
||||||
|
List<Map> queryAll(Map<String,Object> map);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,5 +1,29 @@
|
|||||||
<?xml version="1.0" encoding="UTF-8"?>
|
<?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">
|
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
||||||
<mapper namespace="org.nl.wms.masterdata_manage.service.vehicle.dao.mapper.MdPbBucketrecordMapper">
|
<mapper namespace="org.nl.wms.masterdata_manage.service.vehicle.dao.mapper.MdPbBucketrecordMapper">
|
||||||
|
<select id="queryAll" resultType="java.util.Map">
|
||||||
|
SELECT
|
||||||
|
re.*,
|
||||||
|
ma.material_name,
|
||||||
|
ma.material_code
|
||||||
|
|
||||||
|
FROM
|
||||||
|
MD_PB_BucketRecord re
|
||||||
|
LEFT JOIN md_me_materialbase ma ON ma.material_id = re.material_id
|
||||||
|
WHERE
|
||||||
|
1=1
|
||||||
|
<if test="material_id != null and material_id != ''">
|
||||||
|
and ma.material_id = #{material_id}
|
||||||
|
</if>
|
||||||
|
<if test="storagevehicle_type != null and storagevehicle_type != ''">
|
||||||
|
and re.storagevehicle_type = #{storagevehicle_type}
|
||||||
|
</if>
|
||||||
|
<if test="status != null and status != ''">
|
||||||
|
and re.status = #{status}
|
||||||
|
</if>
|
||||||
|
<if test="bucketunique != null and bucketunique != ''">
|
||||||
|
and ( re.bucketunique like '{bucketunique}%$' )
|
||||||
|
</if>
|
||||||
|
|
||||||
|
</select>
|
||||||
</mapper>
|
</mapper>
|
||||||
|
|||||||
@@ -1,11 +1,19 @@
|
|||||||
package org.nl.wms.masterdata_manage.service.vehicle.impl;
|
package org.nl.wms.masterdata_manage.service.vehicle.impl;
|
||||||
|
|
||||||
|
import com.github.pagehelper.Page;
|
||||||
|
import com.github.pagehelper.PageHelper;
|
||||||
|
import org.nl.common.TableDataInfo;
|
||||||
|
import org.nl.common.domain.query.PageQuery;
|
||||||
import org.nl.wms.masterdata_manage.service.vehicle.dao.MdPbBucketrecord;
|
import org.nl.wms.masterdata_manage.service.vehicle.dao.MdPbBucketrecord;
|
||||||
import org.nl.wms.masterdata_manage.service.vehicle.dao.mapper.MdPbBucketrecordMapper;
|
import org.nl.wms.masterdata_manage.service.vehicle.dao.mapper.MdPbBucketrecordMapper;
|
||||||
import org.nl.wms.masterdata_manage.service.vehicle.IMdPbBucketrecordService;
|
import org.nl.wms.masterdata_manage.service.vehicle.IMdPbBucketrecordService;
|
||||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||||
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
import java.util.Map;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* <p>
|
* <p>
|
||||||
* 桶记录表 服务实现类
|
* 桶记录表 服务实现类
|
||||||
@@ -17,4 +25,12 @@ import org.springframework.stereotype.Service;
|
|||||||
@Service
|
@Service
|
||||||
public class MdPbBucketrecordServiceImpl extends ServiceImpl<MdPbBucketrecordMapper, MdPbBucketrecord> implements IMdPbBucketrecordService {
|
public class MdPbBucketrecordServiceImpl extends ServiceImpl<MdPbBucketrecordMapper, MdPbBucketrecord> implements IMdPbBucketrecordService {
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Object queryAll(Map whereJson, PageQuery pageQuery) {
|
||||||
|
Page<Object> page = PageHelper.startPage(pageQuery.getPage()+1, pageQuery.getSize());
|
||||||
|
|
||||||
|
TableDataInfo build = TableDataInfo.build(baseMapper.queryAll(whereJson));
|
||||||
|
build.setTotalElements(page.getTotal());
|
||||||
|
return build;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -74,4 +74,20 @@ public class IStivtlostorivnCpInController {
|
|||||||
return new ResponseEntity<>(iStIvtIostorinvCpService.getIosInvDis(whereJson),HttpStatus.OK);
|
return new ResponseEntity<>(iStIvtIostorinvCpService.getIosInvDis(whereJson),HttpStatus.OK);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@PostMapping("/vehicleCheck")
|
||||||
|
@Log("校验载具是否存在")
|
||||||
|
@ApiOperation("校验载具是否存在")
|
||||||
|
public ResponseEntity<Object> vehicleCheck(@RequestBody JSONObject whereJson){
|
||||||
|
iStIvtIostorinvCpService.vehicleCheck(whereJson);
|
||||||
|
return new ResponseEntity<>(HttpStatus.OK);
|
||||||
|
}
|
||||||
|
|
||||||
|
@PostMapping("/confirmvehicle")
|
||||||
|
@Log("组盘")
|
||||||
|
@ApiOperation("组盘")
|
||||||
|
public ResponseEntity<Object> confirmvehicle(@RequestBody JSONObject whereJson){
|
||||||
|
iStIvtIostorinvCpService.confirmvehicle(whereJson);
|
||||||
|
return new ResponseEntity<>(HttpStatus.OK);
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -23,7 +23,7 @@ public interface IStIvtIostorinvCpService extends IService<StIvtIostorinvCp> {
|
|||||||
* @param query,page /
|
* @param query,page /
|
||||||
* @return JSONObject
|
* @return JSONObject
|
||||||
*/
|
*/
|
||||||
JSONObject pageQuery(IostorInvQuery query, PageQuery page);
|
Object pageQuery(IostorInvQuery query, PageQuery page);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 创建
|
* 创建
|
||||||
@@ -39,15 +39,38 @@ public interface IStIvtIostorinvCpService extends IService<StIvtIostorinvCp> {
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* 查询出入库单明细
|
* 查询出入库单明细
|
||||||
* @param whereJson /
|
* @param whereJson
|
||||||
|
* {
|
||||||
|
* "bill_code": 单据号
|
||||||
|
* "iostorinv_id": 主表标识
|
||||||
|
* }
|
||||||
* @return List
|
* @return List
|
||||||
|
* {
|
||||||
|
* "明细表所有字段"
|
||||||
|
* "material_code": 物料编码
|
||||||
|
* "material_name": 物料名称
|
||||||
|
* "material_spec": 物料批次
|
||||||
|
* }
|
||||||
*/
|
*/
|
||||||
List getIosInvDtl(JSONObject whereJson);
|
List getIosInvDtl(JSONObject whereJson);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 查询出入库单分配明细
|
* 查询出入库单分配明细
|
||||||
* @param whereJson /
|
* @param whereJson
|
||||||
|
* {
|
||||||
|
* "iostorinvdtl_id": 明细表标识
|
||||||
|
* "iostorinv_id": 主表标识
|
||||||
|
* }
|
||||||
|
*
|
||||||
* @return List
|
* @return List
|
||||||
|
* {
|
||||||
|
* "分配表所有字段"
|
||||||
|
* "bucketunique":箱号
|
||||||
|
* "qty": 数量
|
||||||
|
* "material_code": 物料编码
|
||||||
|
* "material_name": 物料名称
|
||||||
|
* "material_spec": 物料批次
|
||||||
|
* }
|
||||||
*/
|
*/
|
||||||
List getIosInvDis(JSONObject whereJson);
|
List getIosInvDis(JSONObject whereJson);
|
||||||
|
|
||||||
@@ -59,16 +82,30 @@ public interface IStIvtIostorinvCpService extends IService<StIvtIostorinvCp> {
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* 组盘
|
* 组盘
|
||||||
* @param whereJson /
|
* @param whereJson
|
||||||
|
* {
|
||||||
|
* "dtl_row":{明细对象..}
|
||||||
|
* "vehicle_code": 托盘号
|
||||||
|
* "tableMater": [分配明细..]
|
||||||
|
* }
|
||||||
*/
|
*/
|
||||||
void confirmvehicle(JSONObject whereJson);
|
void confirmvehicle(JSONObject whereJson);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 组盘
|
* 删除
|
||||||
* @param ids /
|
* @param ids
|
||||||
|
* {
|
||||||
|
* 主表id..
|
||||||
|
* }
|
||||||
*/
|
*/
|
||||||
void delete(Long[] ids);
|
void delete(Long[] ids);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 校验载具是否存在
|
||||||
|
* @param whereJson
|
||||||
|
* {
|
||||||
|
* "storagevehicle_code" : 载具号
|
||||||
|
* }
|
||||||
|
*/
|
||||||
|
void vehicleCheck(JSONObject whereJson);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,5 +1,6 @@
|
|||||||
package org.nl.wms.storage_manage.productmanage.service.iostorInv;
|
package org.nl.wms.storage_manage.productmanage.service.iostorInv;
|
||||||
|
|
||||||
|
import com.alibaba.fastjson.JSONObject;
|
||||||
import com.baomidou.mybatisplus.extension.service.IService;
|
import com.baomidou.mybatisplus.extension.service.IService;
|
||||||
import org.nl.wms.storage_manage.productmanage.service.iostorInv.dao.StIvtIostorinvdisCp;
|
import org.nl.wms.storage_manage.productmanage.service.iostorInv.dao.StIvtIostorinvdisCp;
|
||||||
import org.nl.wms.storage_manage.productmanage.service.iostorInv.dao.StIvtIostorinvdtlCp;
|
import org.nl.wms.storage_manage.productmanage.service.iostorInv.dao.StIvtIostorinvdtlCp;
|
||||||
@@ -24,4 +25,6 @@ public interface IStIvtIostorinvdisCpService extends IService<StIvtIostorinvdisC
|
|||||||
void batchInsert(Collection<StIvtIostorinvdisCp> list);
|
void batchInsert(Collection<StIvtIostorinvdisCp> list);
|
||||||
|
|
||||||
List<Map> queryInvDisByInvdtl(Map<String, Object> map);
|
List<Map> queryInvDisByInvdtl(Map<String, Object> map);
|
||||||
|
|
||||||
|
List<StIvtIostorinvdisCp> onductDataDis(List<JSONObject> list, JSONObject json);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -2,8 +2,10 @@ package org.nl.wms.storage_manage.productmanage.service.iostorInv;
|
|||||||
|
|
||||||
import com.alibaba.fastjson.JSONObject;
|
import com.alibaba.fastjson.JSONObject;
|
||||||
import com.baomidou.mybatisplus.extension.service.IService;
|
import com.baomidou.mybatisplus.extension.service.IService;
|
||||||
|
import org.nl.wms.storage_manage.productmanage.service.iostorInv.dao.StIvtIostorinvdisCp;
|
||||||
import org.nl.wms.storage_manage.productmanage.service.iostorInv.dao.StIvtIostorinvdisdtlCp;
|
import org.nl.wms.storage_manage.productmanage.service.iostorInv.dao.StIvtIostorinvdisdtlCp;
|
||||||
|
|
||||||
|
import java.util.Collection;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
|
|
||||||
@@ -17,5 +19,13 @@ import java.util.Map;
|
|||||||
*/
|
*/
|
||||||
public interface IStIvtIostorinvdisdtlCpService extends IService<StIvtIostorinvdisdtlCp> {
|
public interface IStIvtIostorinvdisdtlCpService extends IService<StIvtIostorinvdisdtlCp> {
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 批量insert
|
||||||
|
* @param list
|
||||||
|
*/
|
||||||
|
void batchInsert(Collection<StIvtIostorinvdisdtlCp> list);
|
||||||
|
|
||||||
List<JSONObject> queryInvDisByInvdtl(Map<String, Object> map);
|
List<JSONObject> queryInvDisByInvdtl(Map<String, Object> map);
|
||||||
|
|
||||||
|
List<StIvtIostorinvdisdtlCp> onductDataDisDtl(List<JSONObject> list,JSONObject json);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -3,6 +3,7 @@ package org.nl.wms.storage_manage.productmanage.service.iostorInv.dao;
|
|||||||
import com.baomidou.mybatisplus.annotation.TableName;
|
import com.baomidou.mybatisplus.annotation.TableName;
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
import lombok.EqualsAndHashCode;
|
import lombok.EqualsAndHashCode;
|
||||||
|
import lombok.experimental.Accessors;
|
||||||
|
|
||||||
import java.io.Serializable;
|
import java.io.Serializable;
|
||||||
import java.math.BigDecimal;
|
import java.math.BigDecimal;
|
||||||
@@ -16,6 +17,7 @@ import java.math.BigDecimal;
|
|||||||
* @since 2023-05-04
|
* @since 2023-05-04
|
||||||
*/
|
*/
|
||||||
@Data
|
@Data
|
||||||
|
@Accessors(chain = true)
|
||||||
@EqualsAndHashCode(callSuper = false)
|
@EqualsAndHashCode(callSuper = false)
|
||||||
@TableName("st_ivt_iostorinvdis_cp")
|
@TableName("st_ivt_iostorinvdis_cp")
|
||||||
public class StIvtIostorinvdisCp implements Serializable {
|
public class StIvtIostorinvdisCp implements Serializable {
|
||||||
@@ -100,6 +102,7 @@ public class StIvtIostorinvdisCp implements Serializable {
|
|||||||
/**
|
/**
|
||||||
* 执行状态
|
* 执行状态
|
||||||
*/
|
*/
|
||||||
|
@Deprecated
|
||||||
private String work_status;
|
private String work_status;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
@@ -3,6 +3,7 @@ package org.nl.wms.storage_manage.productmanage.service.iostorInv.dao;
|
|||||||
import com.baomidou.mybatisplus.annotation.TableName;
|
import com.baomidou.mybatisplus.annotation.TableName;
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
import lombok.EqualsAndHashCode;
|
import lombok.EqualsAndHashCode;
|
||||||
|
import lombok.experimental.Accessors;
|
||||||
|
|
||||||
import java.io.Serializable;
|
import java.io.Serializable;
|
||||||
import java.math.BigDecimal;
|
import java.math.BigDecimal;
|
||||||
@@ -16,6 +17,7 @@ import java.math.BigDecimal;
|
|||||||
* @since 2023-05-04
|
* @since 2023-05-04
|
||||||
*/
|
*/
|
||||||
@Data
|
@Data
|
||||||
|
@Accessors(chain = true)
|
||||||
@EqualsAndHashCode(callSuper = false)
|
@EqualsAndHashCode(callSuper = false)
|
||||||
@TableName("st_ivt_iostorinvdisdtl_cp")
|
@TableName("st_ivt_iostorinvdisdtl_cp")
|
||||||
public class StIvtIostorinvdisdtlCp implements Serializable {
|
public class StIvtIostorinvdisdtlCp implements Serializable {
|
||||||
|
|||||||
@@ -2,8 +2,11 @@ package org.nl.wms.storage_manage.productmanage.service.iostorInv.dao.mapper;
|
|||||||
|
|
||||||
import com.alibaba.fastjson.JSONObject;
|
import com.alibaba.fastjson.JSONObject;
|
||||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||||
|
import org.apache.ibatis.annotations.Param;
|
||||||
|
import org.nl.wms.storage_manage.productmanage.service.iostorInv.dao.StIvtIostorinvdisCp;
|
||||||
import org.nl.wms.storage_manage.productmanage.service.iostorInv.dao.StIvtIostorinvdisdtlCp;
|
import org.nl.wms.storage_manage.productmanage.service.iostorInv.dao.StIvtIostorinvdisdtlCp;
|
||||||
|
|
||||||
|
import java.util.Collection;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
|
|
||||||
@@ -17,6 +20,8 @@ import java.util.Map;
|
|||||||
*/
|
*/
|
||||||
public interface StIvtIostorinvdisdtlCpMapper extends BaseMapper<StIvtIostorinvdisdtlCp> {
|
public interface StIvtIostorinvdisdtlCpMapper extends BaseMapper<StIvtIostorinvdisdtlCp> {
|
||||||
|
|
||||||
|
Integer batchSave(@Param("entitys") Collection<StIvtIostorinvdisdtlCp> entitys);
|
||||||
|
|
||||||
List<JSONObject> queryInvDtlDisByInv(Map<String,Object> map);
|
List<JSONObject> queryInvDtlDisByInv(Map<String,Object> map);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -19,15 +19,15 @@
|
|||||||
quality_scode,
|
quality_scode,
|
||||||
ivt_level,
|
ivt_level,
|
||||||
is_active,
|
is_active,
|
||||||
work_statue,
|
work_status,
|
||||||
task_id,
|
task_id,
|
||||||
storagevehicle_id,
|
storagevehicle_id,
|
||||||
storagevehicle_code,
|
storagevehicle_code,
|
||||||
storagevehicle_type,
|
storagevehicle_type,
|
||||||
is_issued,
|
is_issued,
|
||||||
qty_unit_id,
|
qty_unit_id,
|
||||||
qty_unit_nam,
|
qty_unit_name,
|
||||||
plan_qt,
|
plan_qty,
|
||||||
real_qty,
|
real_qty,
|
||||||
point_id,
|
point_id,
|
||||||
point_code,
|
point_code,
|
||||||
@@ -50,15 +50,15 @@
|
|||||||
#{item.quality_scode},
|
#{item.quality_scode},
|
||||||
#{item.ivt_level},
|
#{item.ivt_level},
|
||||||
#{item.is_active},
|
#{item.is_active},
|
||||||
#{item.work_statue},
|
#{item.work_status},
|
||||||
#{item.task_id},
|
#{item.task_id},
|
||||||
#{item.storagevehicle_id},
|
#{item.storagevehicle_id},
|
||||||
#{item.storagevehicle_code},
|
#{item.storagevehicle_code},
|
||||||
#{item.storagevehicle_type},
|
#{item.storagevehicle_type},
|
||||||
#{item.is_issued},
|
#{item.is_issued},
|
||||||
#{item.qty_unit_id},
|
#{item.qty_unit_id},
|
||||||
#{item.qty_unit_nam},
|
#{item.qty_unit_name},
|
||||||
#{item.plan_qt},
|
#{item.plan_qty},
|
||||||
#{item.real_qty},
|
#{item.real_qty},
|
||||||
#{item.point_id},
|
#{item.point_id},
|
||||||
#{item.point_code},
|
#{item.point_code},
|
||||||
|
|||||||
@@ -1,6 +1,59 @@
|
|||||||
<?xml version="1.0" encoding="UTF-8"?>
|
<?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">
|
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
||||||
<mapper namespace="org.nl.wms.storage_manage.productmanage.service.iostorInv.dao.mapper.StIvtIostorinvdisdtlCpMapper">
|
<mapper namespace="org.nl.wms.storage_manage.productmanage.service.iostorInv.dao.mapper.StIvtIostorinvdisdtlCpMapper">
|
||||||
|
<insert id="batchSave" parameterType="org.nl.wms.storage_manage.productmanage.service.iostorInv.dao.StIvtIostorinvdisdtlCp">
|
||||||
|
insert into ST_IVT_IOStorInvDisDtl_CP(
|
||||||
|
iostorinvdisdtl_id,
|
||||||
|
iostorinvdis_id,
|
||||||
|
iostorinv_id,
|
||||||
|
iostorinvdtl_id,
|
||||||
|
seq_no,
|
||||||
|
sect_id,
|
||||||
|
sect_code,
|
||||||
|
sect_name,
|
||||||
|
struct_id,
|
||||||
|
struct_code,
|
||||||
|
struct_name,
|
||||||
|
material_id,
|
||||||
|
pcsn,
|
||||||
|
quality_scode,
|
||||||
|
ivt_level,
|
||||||
|
is_active,
|
||||||
|
storagevehicle_id,
|
||||||
|
storagevehicle_code,
|
||||||
|
storagevehicle_type,
|
||||||
|
bucketunique,
|
||||||
|
qty_unit_id,
|
||||||
|
qty_unit_name,
|
||||||
|
real_qty)
|
||||||
|
values
|
||||||
|
<foreach item="item" collection="entitys" separator=",">
|
||||||
|
(
|
||||||
|
#{item.iostorinvdisdtl_id},
|
||||||
|
#{item.iostorinvdis_id},
|
||||||
|
#{item.iostorinv_id},
|
||||||
|
#{item.iostorinvdtl_id},
|
||||||
|
#{item.seq_no},
|
||||||
|
#{item.sect_id},
|
||||||
|
#{item.sect_code},
|
||||||
|
#{item.sect_name},
|
||||||
|
#{item.struct_id},
|
||||||
|
#{item.struct_code},
|
||||||
|
#{item.struct_name},
|
||||||
|
#{item.material_id},
|
||||||
|
#{item.pcsn},
|
||||||
|
#{item.quality_scode},
|
||||||
|
#{item.ivt_level},
|
||||||
|
#{item.is_active},
|
||||||
|
#{item.storagevehicle_id},
|
||||||
|
#{item.storagevehicle_code},
|
||||||
|
#{item.storagevehicle_type},
|
||||||
|
#{item.bucketunique},
|
||||||
|
#{item.qty_unit_id},
|
||||||
|
#{item.qty_unit_name},
|
||||||
|
#{item.real_qty})
|
||||||
|
</foreach>
|
||||||
|
</insert>
|
||||||
<select id="queryInvDtlDisByInv" resultType="java.util.Map">
|
<select id="queryInvDtlDisByInv" resultType="java.util.Map">
|
||||||
SELECT
|
SELECT
|
||||||
disdtl.*,
|
disdtl.*,
|
||||||
|
|||||||
@@ -1,5 +1,6 @@
|
|||||||
package org.nl.wms.storage_manage.productmanage.service.iostorInv.impl;
|
package org.nl.wms.storage_manage.productmanage.service.iostorInv.impl;
|
||||||
|
|
||||||
|
import cn.hutool.core.date.DateUtil;
|
||||||
import cn.hutool.core.util.ObjectUtil;
|
import cn.hutool.core.util.ObjectUtil;
|
||||||
import com.alibaba.fastjson.JSONArray;
|
import com.alibaba.fastjson.JSONArray;
|
||||||
import com.alibaba.fastjson.JSONObject;
|
import com.alibaba.fastjson.JSONObject;
|
||||||
@@ -8,12 +9,20 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
|||||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||||
import io.jsonwebtoken.lang.Assert;
|
import io.jsonwebtoken.lang.Assert;
|
||||||
import org.jetbrains.annotations.NotNull;
|
import org.jetbrains.annotations.NotNull;
|
||||||
|
import org.nl.common.TableDataInfo;
|
||||||
import org.nl.common.domain.query.PageQuery;
|
import org.nl.common.domain.query.PageQuery;
|
||||||
|
import org.nl.common.utils.IdUtil;
|
||||||
import org.nl.common.utils.MapOf;
|
import org.nl.common.utils.MapOf;
|
||||||
import org.nl.common.utils.SecurityUtils;
|
import org.nl.common.utils.SecurityUtils;
|
||||||
import org.nl.modules.common.exception.BadRequestException;
|
import org.nl.modules.common.exception.BadRequestException;
|
||||||
import org.nl.modules.system.util.CodeUtil;
|
import org.nl.modules.system.util.CodeUtil;
|
||||||
import org.nl.modules.wql.core.bean.WQLObject;
|
import org.nl.modules.wql.core.bean.WQLObject;
|
||||||
|
import org.nl.wms.masterdata_manage.service.vehicle.IMdPbBucketrecordService;
|
||||||
|
import org.nl.wms.masterdata_manage.service.vehicle.IMdPbStoragevehicleextService;
|
||||||
|
import org.nl.wms.masterdata_manage.service.vehicle.IMdPbStoragevehicleinfoService;
|
||||||
|
import org.nl.wms.masterdata_manage.service.vehicle.dao.MdPbBucketrecord;
|
||||||
|
import org.nl.wms.masterdata_manage.service.vehicle.dao.MdPbStoragevehicleext;
|
||||||
|
import org.nl.wms.masterdata_manage.service.vehicle.dao.MdPbStoragevehicleinfo;
|
||||||
import org.nl.wms.storage_manage.IOSEnum;
|
import org.nl.wms.storage_manage.IOSEnum;
|
||||||
import org.nl.wms.storage_manage.basedata.service.storage.IStIvtBsrealstorattrService;
|
import org.nl.wms.storage_manage.basedata.service.storage.IStIvtBsrealstorattrService;
|
||||||
import org.nl.wms.storage_manage.basedata.service.storage.dao.StIvtBsrealstorattr;
|
import org.nl.wms.storage_manage.basedata.service.storage.dao.StIvtBsrealstorattr;
|
||||||
@@ -23,7 +32,7 @@ import org.nl.wms.storage_manage.productmanage.service.iostorInv.IStIvtIostorinv
|
|||||||
import org.nl.wms.storage_manage.productmanage.service.iostorInv.IStIvtIostorinvdtlCpService;
|
import org.nl.wms.storage_manage.productmanage.service.iostorInv.IStIvtIostorinvdtlCpService;
|
||||||
import org.nl.wms.storage_manage.productmanage.service.iostorInv.dao.StIvtIostorinvCp;
|
import org.nl.wms.storage_manage.productmanage.service.iostorInv.dao.StIvtIostorinvCp;
|
||||||
import org.nl.wms.storage_manage.productmanage.service.iostorInv.dao.StIvtIostorinvdisCp;
|
import org.nl.wms.storage_manage.productmanage.service.iostorInv.dao.StIvtIostorinvdisCp;
|
||||||
import org.nl.wms.storage_manage.productmanage.service.iostorInv.dao.StIvtIostorinvdtlCp;
|
import org.nl.wms.storage_manage.productmanage.service.iostorInv.dao.StIvtIostorinvdisdtlCp;
|
||||||
import org.nl.wms.storage_manage.productmanage.service.iostorInv.dao.mapper.StIvtIostorinvCpMapper;
|
import org.nl.wms.storage_manage.productmanage.service.iostorInv.dao.mapper.StIvtIostorinvCpMapper;
|
||||||
import org.nl.wms.storage_manage.productmanage.service.iostorInv.dto.IostorInvQuery;
|
import org.nl.wms.storage_manage.productmanage.service.iostorInv.dto.IostorInvQuery;
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
@@ -46,33 +55,35 @@ import java.util.stream.Collectors;
|
|||||||
public class StIvtIostorinvCpServiceImpl extends ServiceImpl<StIvtIostorinvCpMapper, StIvtIostorinvCp> implements IStIvtIostorinvCpService {
|
public class StIvtIostorinvCpServiceImpl extends ServiceImpl<StIvtIostorinvCpMapper, StIvtIostorinvCp> implements IStIvtIostorinvCpService {
|
||||||
|
|
||||||
@Autowired
|
@Autowired
|
||||||
protected IStIvtIostorinvdtlCpService iostorinvdtlCpService;
|
protected IStIvtIostorinvdtlCpService iostorinvdtlCpService; // 成品出入库明细表服务
|
||||||
|
|
||||||
@Autowired
|
@Autowired
|
||||||
protected IStIvtIostorinvdisCpService iostorinvdisCpService;
|
protected IStIvtIostorinvdisCpService iostorinvdisCpService; // 成品出入库分配表服务
|
||||||
|
|
||||||
@Autowired
|
@Autowired
|
||||||
protected IStIvtIostorinvdisdtlCpService iStIvtIostorinvdisdtlCpService;
|
protected IStIvtIostorinvdisdtlCpService iStIvtIostorinvdisdtlCpService; // 成品出入库分配明细表服务
|
||||||
|
|
||||||
@Autowired
|
@Autowired
|
||||||
protected IStIvtBsrealstorattrService stIvtBsrealstorattrService;
|
protected IStIvtBsrealstorattrService stIvtBsrealstorattrService; // 实物属性表表服务
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
protected IMdPbStoragevehicleinfoService iMdPbStoragevehicleinfoService; // 载具信息表服务
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
protected IMdPbStoragevehicleextService iMdPbStoragevehicleextService; // 载具扩展属性信息表服务
|
||||||
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public JSONObject pageQuery(IostorInvQuery query, PageQuery page) {
|
public Object pageQuery(IostorInvQuery query, PageQuery page) {
|
||||||
// 查询条件
|
// 查询条件
|
||||||
query.setIo_type(IOSEnum.IO_TYPE.code("入库"));
|
query.setIo_type(IOSEnum.IO_TYPE.code("入库"));
|
||||||
page.setSort("bill_code,ASC");
|
page.setSort("bill_code,ASC");
|
||||||
|
|
||||||
// 分页查询
|
// 分页查询
|
||||||
Page<StIvtIostorinvCp> pageQuery = this.page(page.build(), query.build());
|
Page<StIvtIostorinvCp> pageQuery = this.page(page.build(), query.build());
|
||||||
|
TableDataInfo<StIvtIostorinvCp> build = TableDataInfo.build(pageQuery);
|
||||||
|
|
||||||
// 组织前端返回数据
|
return build;
|
||||||
JSONObject json = new JSONObject();
|
|
||||||
json.put("content", pageQuery.getRecords());
|
|
||||||
json.put("totalElements", pageQuery.getTotal());
|
|
||||||
|
|
||||||
return json;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@@ -140,27 +151,116 @@ public class StIvtIostorinvCpServiceImpl extends ServiceImpl<StIvtIostorinvCpMap
|
|||||||
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
@Transactional(rollbackFor = Exception.class)
|
||||||
public void confirmvehicle(JSONObject whereJson) {
|
public void confirmvehicle(JSONObject whereJson) {
|
||||||
WQLObject vehicleTab = WQLObject.getWQLObject("md_pb_storagevehicleinfo");
|
/*
|
||||||
WQLObject vehicleMaterialTab = WQLObject.getWQLObject("md_pb_storagevehicleext");
|
1.插入分配明细表
|
||||||
WQLObject disTab = WQLObject.getWQLObject("st_ivt_iostorinvdis");
|
2.插入分配表
|
||||||
String storagevehicle_code = whereJson.getString("storagevehicle_code");
|
3.更新明细表
|
||||||
// 校验载具是否存在
|
4.更新扩展属性表
|
||||||
JSONObject jsonVehicle = vehicleTab.query("storagevehicle_code = '" + storagevehicle_code + "' and is_delete = '0' and is_used = '1'").uniqueResult(0);
|
5.更新箱记录表 (有箱号才更新)
|
||||||
if (ObjectUtil.isEmpty(jsonVehicle)) throw new BadRequestException("载具不存在");
|
*/
|
||||||
JSONArray vehicleMaterial = vehicleMaterialTab.query("storagevehicle_code = '" + storagevehicle_code + "' and material_id IS not NULL ").getResultJSONArray(0);
|
JSONObject jsonDtl = whereJson.getJSONObject("dtl_row");
|
||||||
if (vehicleMaterial.size()>0){
|
JSONArray tableDisDtl = whereJson.getJSONArray("tableMater");
|
||||||
throw new BadRequestException("载具已被占用");
|
|
||||||
|
/*
|
||||||
|
处理有箱号分配明细: 要插入分配明细表
|
||||||
|
*/
|
||||||
|
List<JSONObject> disDtlList = tableDisDtl
|
||||||
|
.stream()
|
||||||
|
.map(row -> (JSONObject) row)
|
||||||
|
.filter(row -> ObjectUtil.isNotEmpty(row.getString("bucketunique")))
|
||||||
|
.collect(Collectors.toList());
|
||||||
|
|
||||||
|
// 1.处理分配明细数据
|
||||||
|
JSONObject param = new JSONObject();
|
||||||
|
param.put("iostorinv_id",jsonDtl.getString("iostorinv_id"));
|
||||||
|
param.put("iostorinvdtl_id",jsonDtl.getString("iostorinvdtl_id"));
|
||||||
|
param.put("iostorinvdis_id",org.nl.common.utils.IdUtil.getStringId());
|
||||||
|
|
||||||
|
if (ObjectUtil.isNotEmpty(disDtlList)) {
|
||||||
|
|
||||||
|
// 2.调用分配明细方法处理
|
||||||
|
List<StIvtIostorinvdisdtlCp> disDtlDaoListAll = iStIvtIostorinvdisdtlCpService.onductDataDisDtl(disDtlList, param);
|
||||||
|
|
||||||
|
// 3.根据托盘分组
|
||||||
|
Map<String, List<StIvtIostorinvdisdtlCp>> collect = disDtlDaoListAll
|
||||||
|
.stream()
|
||||||
|
.collect(Collectors.groupingBy(StIvtIostorinvdisdtlCp::getStoragevehicle_code));
|
||||||
|
|
||||||
|
for (List<StIvtIostorinvdisdtlCp> disDtlDaoList : collect.values()) {
|
||||||
|
// 3.调用服务插入分配明细
|
||||||
|
iStIvtIostorinvdisdtlCpService.batchInsert(disDtlDaoList);
|
||||||
|
|
||||||
|
// 4.插入分配
|
||||||
|
StIvtIostorinvdisdtlCp disDtlDao = disDtlDaoList.get(0);
|
||||||
|
|
||||||
|
// 计算合计
|
||||||
|
BigDecimal qty = disDtlDaoList
|
||||||
|
.stream()
|
||||||
|
.map(StIvtIostorinvdisdtlCp::getReal_qty)
|
||||||
|
.reduce(BigDecimal.ZERO, BigDecimal::add);
|
||||||
|
|
||||||
|
// 插入分配明细
|
||||||
|
StIvtIostorinvdisCp disDao = new StIvtIostorinvdisCp()
|
||||||
|
.setIostorinvdis_id(IdUtil.getStringId())
|
||||||
|
.setIostorinv_id(param.getString("iostorinv_id"))
|
||||||
|
.setIostorinvdtl_id(param.getString("iostorinvdtl_id"))
|
||||||
|
.setSeq_no(1)
|
||||||
|
.setMaterial_id(disDtlDao.getMaterial_id())
|
||||||
|
.setPcsn(disDtlDao.getPcsn())
|
||||||
|
.setQuality_scode(disDtlDao.getQuality_scode())
|
||||||
|
.setIvt_level(disDtlDao.getIvt_level())
|
||||||
|
.setIs_active(true)
|
||||||
|
.setIs_issued(false)
|
||||||
|
.setWork_status("00") //TODO 暂时写死
|
||||||
|
.setStoragevehicle_id(disDtlDao.getStoragevehicle_id())
|
||||||
|
.setStoragevehicle_code(disDtlDao.getStoragevehicle_code())
|
||||||
|
.setStoragevehicle_type(disDtlDao.getStoragevehicle_type())
|
||||||
|
.setQty_unit_id(disDtlDao.getQty_unit_id())
|
||||||
|
.setQty_unit_name(disDtlDao.getQty_unit_name())
|
||||||
|
.setPlan_qty(qty)
|
||||||
|
.setReal_qty(qty);
|
||||||
|
|
||||||
|
iostorinvdisCpService.save(disDao);
|
||||||
|
|
||||||
|
// 5.回显分配明细表iostorinvdis_id标识
|
||||||
|
iStIvtIostorinvdisdtlCpService.update(
|
||||||
|
new StIvtIostorinvdisdtlCp().setIostorinvdis_id(disDao.getIostorinvdis_id()),
|
||||||
|
new QueryWrapper<StIvtIostorinvdisdtlCp>()
|
||||||
|
.eq("iostorinvdis_id", param.getString("iostorinvdis_id"))
|
||||||
|
.eq("storagevehicle_code", disDao.getStoragevehicle_code())
|
||||||
|
);
|
||||||
|
|
||||||
|
// 6.更新载具扩展属性表
|
||||||
|
MdPbStoragevehicleext vehicleDao = new MdPbStoragevehicleext();
|
||||||
|
vehicleDao.setMaterial_id(disDtlDao.getMaterial_id());
|
||||||
|
vehicleDao.setUpdate_id(SecurityUtils.getCurrentUserId());
|
||||||
|
vehicleDao.setUpdate_name(SecurityUtils.getCurrentNickName());
|
||||||
|
vehicleDao.setUpdate_time(new Date());
|
||||||
|
|
||||||
|
iMdPbStoragevehicleextService.update(
|
||||||
|
vehicleDao,new QueryWrapper<MdPbStoragevehicleext>().eq("storagevehicle_code", disDtlDao.getStoragevehicle_code())
|
||||||
|
);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
// 更新分配明细载具号
|
|
||||||
JSONObject jsonDis = disTab.query("iostorinvdis_id = '" + whereJson.getString("iostorinvdis_id") + "'").uniqueResult(0);
|
/*
|
||||||
// 校验此明细是否已经分配
|
处理无箱号分配明细: 只插入分配表
|
||||||
if (ObjectUtil.isNotEmpty(jsonDis.getString("struct_id"))) {
|
*/
|
||||||
throw new BadRequestException("此明细已分配不可组盘!");
|
List<JSONObject> unDisDtlList = tableDisDtl
|
||||||
|
.stream()
|
||||||
|
.map(row -> (JSONObject) row)
|
||||||
|
.filter(row -> ObjectUtil.isEmpty(row.getString("bucketunique")))
|
||||||
|
.collect(Collectors.toList());
|
||||||
|
|
||||||
|
if (ObjectUtil.isNotEmpty(unDisDtlList)) {
|
||||||
|
// 1.调用分配处理方法
|
||||||
|
List<StIvtIostorinvdisCp> disDaoListAll = iostorinvdisCpService.onductDataDis(unDisDtlList, param);
|
||||||
|
|
||||||
|
// 2.批量插入
|
||||||
|
iostorinvdisCpService.batchInsert(disDaoListAll);
|
||||||
}
|
}
|
||||||
jsonDis.put("storagevehicle_id", jsonVehicle.getString("storagevehicle_id"));
|
|
||||||
jsonDis.put("storagevehicle_code", jsonVehicle.getString("storagevehicle_code"));
|
|
||||||
disTab.update(jsonDis);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@@ -174,6 +274,32 @@ public class StIvtIostorinvCpServiceImpl extends ServiceImpl<StIvtIostorinvCpMap
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void vehicleCheck(JSONObject whereJson) {
|
||||||
|
|
||||||
|
// 1.校验载具是否存在
|
||||||
|
MdPbStoragevehicleinfo daoVehicle = iMdPbStoragevehicleinfoService.getOne(
|
||||||
|
new QueryWrapper<MdPbStoragevehicleinfo>()
|
||||||
|
.eq("storagevehicle_code", whereJson.getString("storagevehicle_code"))
|
||||||
|
.eq("is_used", true)
|
||||||
|
);
|
||||||
|
|
||||||
|
if (ObjectUtil.isEmpty(daoVehicle)) throw new BadRequestException("此载具不存在或未启用");
|
||||||
|
|
||||||
|
// 2.校验载具是否已组盘
|
||||||
|
MdPbStoragevehicleext daoVehicleExt = iMdPbStoragevehicleextService.getOne(
|
||||||
|
new QueryWrapper<MdPbStoragevehicleext>()
|
||||||
|
.eq("storagevehicle_code", whereJson.getString("storagevehicle_code"))
|
||||||
|
);
|
||||||
|
|
||||||
|
if (ObjectUtil.isEmpty(daoVehicleExt)) {
|
||||||
|
// throw new BadRequestException("此载具扩展属性不存在,请维护!");
|
||||||
|
} else {
|
||||||
|
if (ObjectUtil.isNotEmpty(daoVehicleExt.getMaterial_id()))
|
||||||
|
throw new BadRequestException("此载具已组盘!");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
@NotNull
|
@NotNull
|
||||||
private StIvtIostorinvCp packageMstForm(StIvtIostorinvCp stIvtIostorinvCp,JSONObject whereJson,Boolean isUpdate) {
|
private StIvtIostorinvCp packageMstForm(StIvtIostorinvCp stIvtIostorinvCp,JSONObject whereJson,Boolean isUpdate) {
|
||||||
JSONArray rows = whereJson.getJSONArray("tableData");
|
JSONArray rows = whereJson.getJSONArray("tableData");
|
||||||
@@ -216,4 +342,5 @@ public class StIvtIostorinvCpServiceImpl extends ServiceImpl<StIvtIostorinvCpMap
|
|||||||
|
|
||||||
return stIvtIostorinvCp;
|
return stIvtIostorinvCp;
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,15 +1,26 @@
|
|||||||
package org.nl.wms.storage_manage.productmanage.service.iostorInv.impl;
|
package org.nl.wms.storage_manage.productmanage.service.iostorInv.impl;
|
||||||
|
|
||||||
|
import cn.hutool.core.date.DateUtil;
|
||||||
|
import com.alibaba.fastjson.JSONObject;
|
||||||
|
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
||||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||||
|
import org.nl.common.utils.SecurityUtils;
|
||||||
|
import org.nl.wms.masterdata_manage.service.master.IMdPbMeasureunitService;
|
||||||
|
import org.nl.wms.masterdata_manage.service.master.dao.MdPbMeasureunit;
|
||||||
|
import org.nl.wms.masterdata_manage.service.material.IMdMeMaterialbaseService;
|
||||||
|
import org.nl.wms.masterdata_manage.service.material.dao.MdMeMaterialbase;
|
||||||
|
import org.nl.wms.masterdata_manage.service.vehicle.IMdPbStoragevehicleextService;
|
||||||
|
import org.nl.wms.masterdata_manage.service.vehicle.IMdPbStoragevehicleinfoService;
|
||||||
|
import org.nl.wms.masterdata_manage.service.vehicle.dao.MdPbStoragevehicleext;
|
||||||
|
import org.nl.wms.masterdata_manage.service.vehicle.dao.MdPbStoragevehicleinfo;
|
||||||
import org.nl.wms.storage_manage.productmanage.service.iostorInv.IStIvtIostorinvdisCpService;
|
import org.nl.wms.storage_manage.productmanage.service.iostorInv.IStIvtIostorinvdisCpService;
|
||||||
import org.nl.wms.storage_manage.productmanage.service.iostorInv.dao.StIvtIostorinvdisCp;
|
import org.nl.wms.storage_manage.productmanage.service.iostorInv.dao.StIvtIostorinvdisCp;
|
||||||
import org.nl.wms.storage_manage.productmanage.service.iostorInv.dao.mapper.StIvtIostorinvdisCpMapper;
|
import org.nl.wms.storage_manage.productmanage.service.iostorInv.dao.mapper.StIvtIostorinvdisCpMapper;
|
||||||
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
import org.springframework.util.CollectionUtils;
|
import org.springframework.util.CollectionUtils;
|
||||||
|
|
||||||
import java.util.Collection;
|
import java.util.*;
|
||||||
import java.util.List;
|
|
||||||
import java.util.Map;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* <p>
|
* <p>
|
||||||
@@ -22,6 +33,18 @@ import java.util.Map;
|
|||||||
@Service
|
@Service
|
||||||
public class StIvtIostorinvdisCpServiceImpl extends ServiceImpl<StIvtIostorinvdisCpMapper, StIvtIostorinvdisCp> implements IStIvtIostorinvdisCpService {
|
public class StIvtIostorinvdisCpServiceImpl extends ServiceImpl<StIvtIostorinvdisCpMapper, StIvtIostorinvdisCp> implements IStIvtIostorinvdisCpService {
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
protected IMdPbStoragevehicleinfoService iMdPbStoragevehicleinfoService; // 载具信息表服务
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
protected IMdPbStoragevehicleextService iMdPbStoragevehicleextService; // 载具扩展属性信息表服务
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
protected IMdMeMaterialbaseService iMdMeMaterialbaseService; // 物料信息表服务
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
protected IMdPbMeasureunitService iMdPbMeasureunitService; // 计量单位表服务
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void batchInsert(Collection<StIvtIostorinvdisCp> list) {
|
public void batchInsert(Collection<StIvtIostorinvdisCp> list) {
|
||||||
if (!CollectionUtils.isEmpty(list)){
|
if (!CollectionUtils.isEmpty(list)){
|
||||||
@@ -33,4 +56,61 @@ public class StIvtIostorinvdisCpServiceImpl extends ServiceImpl<StIvtIostorinvdi
|
|||||||
public List queryInvDisByInvdtl(Map<String, Object> map) {
|
public List queryInvDisByInvdtl(Map<String, Object> map) {
|
||||||
return baseMapper.queryInvDisByInvdtl(map);
|
return baseMapper.queryInvDisByInvdtl(map);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public List<StIvtIostorinvdisCp> onductDataDis(List<JSONObject> list, JSONObject json) {
|
||||||
|
List<StIvtIostorinvdisCp> result = new ArrayList<>();
|
||||||
|
|
||||||
|
list.forEach(item -> {
|
||||||
|
// 获取载具信息
|
||||||
|
MdPbStoragevehicleinfo vehicleDao = iMdPbStoragevehicleinfoService.getOne(
|
||||||
|
new QueryWrapper<MdPbStoragevehicleinfo>()
|
||||||
|
.eq("storagevehicle_code", item.getString("storagevehicle_code"))
|
||||||
|
);
|
||||||
|
|
||||||
|
// 获取物料信息
|
||||||
|
MdMeMaterialbase materDao = iMdMeMaterialbaseService.getOne(
|
||||||
|
new QueryWrapper<MdMeMaterialbase>().eq("material_id", item.getString("material_id"))
|
||||||
|
);
|
||||||
|
|
||||||
|
// 获取计量单位
|
||||||
|
MdPbMeasureunit unitDao = iMdPbMeasureunitService.getOne(
|
||||||
|
new QueryWrapper<MdPbMeasureunit>().eq("measure_unit_id", materDao.getBase_unit_id())
|
||||||
|
);
|
||||||
|
|
||||||
|
StIvtIostorinvdisCp disDao = new StIvtIostorinvdisCp()
|
||||||
|
.setIostorinvdis_id(json.getString("iostorinvdis_id"))
|
||||||
|
.setIostorinvdtl_id(json.getString("iostorinvdtl_id"))
|
||||||
|
.setIostorinv_id(json.getString("iostorinv_id"))
|
||||||
|
.setSeq_no(1)
|
||||||
|
.setMaterial_id(materDao.getMaterial_id())
|
||||||
|
.setPcsn(DateUtil.today())
|
||||||
|
.setQuality_scode("00") // TODO 暂时写
|
||||||
|
.setIvt_level("01") // TODO 暂时写
|
||||||
|
.setIs_active(true)
|
||||||
|
.setWork_status("00") // TODO 暂时写
|
||||||
|
.setStoragevehicle_id(vehicleDao.getStoragevehicle_id())
|
||||||
|
.setStoragevehicle_code(vehicleDao.getStoragevehicle_code())
|
||||||
|
.setStoragevehicle_type(vehicleDao.getStoragevehicle_type())
|
||||||
|
.setIs_issued(false)
|
||||||
|
.setQty_unit_id(unitDao.getMeasure_unit_id())
|
||||||
|
.setQty_unit_name(unitDao.getUnit_name())
|
||||||
|
.setPlan_qty(item.getBigDecimal("qty"))
|
||||||
|
.setReal_qty(item.getBigDecimal("qty"));
|
||||||
|
result.add(disDao);
|
||||||
|
|
||||||
|
// 更新载具扩展属性表
|
||||||
|
MdPbStoragevehicleext vehicleExtDao = new MdPbStoragevehicleext();
|
||||||
|
vehicleExtDao.setMaterial_id(item.getString("material_id"));
|
||||||
|
vehicleExtDao.setUpdate_id(SecurityUtils.getCurrentUserId());
|
||||||
|
vehicleExtDao.setUpdate_name(SecurityUtils.getCurrentNickName());
|
||||||
|
vehicleExtDao.setUpdate_time(new Date());
|
||||||
|
|
||||||
|
iMdPbStoragevehicleextService.update(
|
||||||
|
vehicleExtDao,new QueryWrapper<MdPbStoragevehicleext>().eq("storagevehicle_code", vehicleDao.getStoragevehicle_code())
|
||||||
|
);
|
||||||
|
|
||||||
|
});
|
||||||
|
return result;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,12 +1,26 @@
|
|||||||
package org.nl.wms.storage_manage.productmanage.service.iostorInv.impl;
|
package org.nl.wms.storage_manage.productmanage.service.iostorInv.impl;
|
||||||
|
|
||||||
|
import cn.hutool.core.date.DateUtil;
|
||||||
import com.alibaba.fastjson.JSONObject;
|
import com.alibaba.fastjson.JSONObject;
|
||||||
|
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
||||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||||
|
import org.nl.common.utils.IdUtil;
|
||||||
|
import org.nl.common.utils.SecurityUtils;
|
||||||
|
import org.nl.wms.masterdata_manage.service.vehicle.IMdPbBucketrecordService;
|
||||||
|
import org.nl.wms.masterdata_manage.service.vehicle.IMdPbStoragevehicleextService;
|
||||||
|
import org.nl.wms.masterdata_manage.service.vehicle.IMdPbStoragevehicleinfoService;
|
||||||
|
import org.nl.wms.masterdata_manage.service.vehicle.dao.MdPbBucketrecord;
|
||||||
|
import org.nl.wms.masterdata_manage.service.vehicle.dao.MdPbStoragevehicleinfo;
|
||||||
import org.nl.wms.storage_manage.productmanage.service.iostorInv.IStIvtIostorinvdisdtlCpService;
|
import org.nl.wms.storage_manage.productmanage.service.iostorInv.IStIvtIostorinvdisdtlCpService;
|
||||||
import org.nl.wms.storage_manage.productmanage.service.iostorInv.dao.StIvtIostorinvdisdtlCp;
|
import org.nl.wms.storage_manage.productmanage.service.iostorInv.dao.StIvtIostorinvdisdtlCp;
|
||||||
import org.nl.wms.storage_manage.productmanage.service.iostorInv.dao.mapper.StIvtIostorinvdisdtlCpMapper;
|
import org.nl.wms.storage_manage.productmanage.service.iostorInv.dao.mapper.StIvtIostorinvdisdtlCpMapper;
|
||||||
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
|
import org.springframework.util.CollectionUtils;
|
||||||
|
|
||||||
|
import java.math.BigDecimal;
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.Collection;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
|
|
||||||
@@ -21,8 +35,72 @@ import java.util.Map;
|
|||||||
@Service
|
@Service
|
||||||
public class StIvtIostorinvdisdtlCpServiceImpl extends ServiceImpl<StIvtIostorinvdisdtlCpMapper, StIvtIostorinvdisdtlCp> implements IStIvtIostorinvdisdtlCpService {
|
public class StIvtIostorinvdisdtlCpServiceImpl extends ServiceImpl<StIvtIostorinvdisdtlCpMapper, StIvtIostorinvdisdtlCp> implements IStIvtIostorinvdisdtlCpService {
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
protected IMdPbStoragevehicleinfoService iMdPbStoragevehicleinfoService; // 载具信息表服务
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
protected IMdPbStoragevehicleextService iMdPbStoragevehicleextService; // 载具扩展属性信息表服务
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
protected IMdPbBucketrecordService iMdPbBucketrecordService; // 包装箱记录表服务
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void batchInsert(Collection<StIvtIostorinvdisdtlCp> list) {
|
||||||
|
if (!CollectionUtils.isEmpty(list)){
|
||||||
|
baseMapper.batchSave(list);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public List<JSONObject> queryInvDisByInvdtl(Map<String, Object> map) {
|
public List<JSONObject> queryInvDisByInvdtl(Map<String, Object> map) {
|
||||||
return baseMapper.queryInvDtlDisByInv(map);
|
return baseMapper.queryInvDtlDisByInv(map);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public List<StIvtIostorinvdisdtlCp> onductDataDisDtl(List<JSONObject> list, JSONObject json) {
|
||||||
|
List<StIvtIostorinvdisdtlCp> result = new ArrayList<>();
|
||||||
|
|
||||||
|
list.forEach(item -> {
|
||||||
|
// 获取载具信息
|
||||||
|
MdPbStoragevehicleinfo vehicleDao = iMdPbStoragevehicleinfoService.getOne(
|
||||||
|
new QueryWrapper<MdPbStoragevehicleinfo>()
|
||||||
|
.eq("storagevehicle_code", item.getString("storagevehicle_code"))
|
||||||
|
);
|
||||||
|
|
||||||
|
StIvtIostorinvdisdtlCp disDtlDao = new StIvtIostorinvdisdtlCp()
|
||||||
|
.setIostorinv_id(json.getString("iostorinv_id"))
|
||||||
|
.setIostorinvdtl_id(json.getString("iostorinvdtl_id"))
|
||||||
|
.setIostorinvdis_id(json.getString("iostorinvdis_id"))
|
||||||
|
.setIostorinvdisdtl_id(IdUtil.getStringId())
|
||||||
|
.setSeq_no(new BigDecimal(1))
|
||||||
|
.setMaterial_id(item.getString("material_id"))
|
||||||
|
.setPcsn(item.getString("pcsn"))
|
||||||
|
.setQuality_scode("00") // TODO 暂时写
|
||||||
|
.setIvt_level("01") // TODO 暂时写
|
||||||
|
.setIs_active(true)
|
||||||
|
.setStoragevehicle_id(vehicleDao.getStoragevehicle_id())
|
||||||
|
.setStoragevehicle_code(vehicleDao.getStoragevehicle_code())
|
||||||
|
.setStoragevehicle_type(vehicleDao.getStoragevehicle_type())
|
||||||
|
.setBucketunique(item.getString("bucketunique"))
|
||||||
|
.setQty_unit_id(item.getString("qty_unit_id"))
|
||||||
|
.setQty_unit_name(item.getString("qty_unit_name"))
|
||||||
|
.setReal_qty(item.getBigDecimal("qty"));
|
||||||
|
result.add(disDtlDao);
|
||||||
|
|
||||||
|
// 更新箱记录表
|
||||||
|
MdPbBucketrecord recodDao = new MdPbBucketrecord();
|
||||||
|
recodDao.setStoragevehicle_id(Long.getLong(vehicleDao.getStoragevehicle_id()));
|
||||||
|
recodDao.setStatus("02"); // TODO 暂时写死
|
||||||
|
recodDao.setStoragevehicle_code(vehicleDao.getStoragevehicle_code());
|
||||||
|
recodDao.setMakeup_optid(Long.getLong(SecurityUtils.getCurrentUserId()));
|
||||||
|
recodDao.setMakeup_optname(SecurityUtils.getCurrentNickName());
|
||||||
|
recodDao.setMakeup_time(DateUtil.now());
|
||||||
|
|
||||||
|
iMdPbBucketrecordService.update(
|
||||||
|
recodDao,new QueryWrapper<MdPbBucketrecord>().eq("bucketunique", item.getString("bucketunique"))
|
||||||
|
);
|
||||||
|
});
|
||||||
|
|
||||||
|
return result;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
161
mes/qd/src/views/wms/storage_manage/product/productIn/AddBox.vue
Normal file
161
mes/qd/src/views/wms/storage_manage/product/productIn/AddBox.vue
Normal file
@@ -0,0 +1,161 @@
|
|||||||
|
<template>
|
||||||
|
<el-dialog
|
||||||
|
title="选择箱号"
|
||||||
|
append-to-body
|
||||||
|
:visible.sync="dialogVisible"
|
||||||
|
destroy-on-close
|
||||||
|
width="1200px"
|
||||||
|
@close="close"
|
||||||
|
@open="open"
|
||||||
|
>
|
||||||
|
<div class="head-container">
|
||||||
|
<div v-if="crud.props.searchToggle">
|
||||||
|
<!-- 搜索 -->
|
||||||
|
<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.bucketunique"
|
||||||
|
size="mini"
|
||||||
|
clearable
|
||||||
|
placeholder="箱号"
|
||||||
|
@keyup.enter.native="crud.toQuery"
|
||||||
|
/>
|
||||||
|
</el-form-item>
|
||||||
|
|
||||||
|
<el-form-item label="箱类型">
|
||||||
|
<el-select
|
||||||
|
v-model="query.storagevehicle_type"
|
||||||
|
size="mini"
|
||||||
|
clearable
|
||||||
|
placeholder="请选择"
|
||||||
|
class="filter-item"
|
||||||
|
style="width: 200px;"
|
||||||
|
>
|
||||||
|
<el-option
|
||||||
|
v-for="item in pointlist"
|
||||||
|
:key="item.point_code"
|
||||||
|
:label="item.point_name"
|
||||||
|
:value="item.point_code"
|
||||||
|
/>
|
||||||
|
</el-select>
|
||||||
|
</el-form-item>
|
||||||
|
|
||||||
|
<rrOperation />
|
||||||
|
</el-form>
|
||||||
|
</div>
|
||||||
|
<!--如果想在工具栏加入更多按钮,可以使用插槽方式, slot = 'left' or 'right'-->
|
||||||
|
<crudOperation />
|
||||||
|
<!--表格渲染-->
|
||||||
|
<el-table
|
||||||
|
ref="multipleTable"
|
||||||
|
v-loading="crud.loading"
|
||||||
|
:data="crud.data"
|
||||||
|
style="width: 100%;"
|
||||||
|
@selection-change="crud.selectionChangeHandler"
|
||||||
|
@current-change="clickChange"
|
||||||
|
>
|
||||||
|
<el-table-column 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 show-overflow-tooltip width="150" prop="bucketunique" label="箱号" />
|
||||||
|
<el-table-column show-overflow-tooltip width="150" prop="storagevehicle_type" label="箱类型" />
|
||||||
|
<el-table-column show-overflow-tooltip width="150" prop="status" label="状态" />
|
||||||
|
<el-table-column show-overflow-tooltip width="150" prop="material_code" label="物料编码" />
|
||||||
|
<el-table-column show-overflow-tooltip width="150" prop="material_name" label="物料名称" />
|
||||||
|
<el-table-column show-overflow-tooltip width="150" prop="pcsn" label="批次" />
|
||||||
|
<el-table-column show-overflow-tooltip width="150" prop="storage_qty" label="数量" />
|
||||||
|
<el-table-column show-overflow-tooltip width="150" prop="qty_unit_name" label="单位" />
|
||||||
|
<el-table-column show-overflow-tooltip width="150" prop="create_name" label="创建人" />
|
||||||
|
<el-table-column show-overflow-tooltip width="150" prop="create_time" label="创建时间" />
|
||||||
|
</el-table>
|
||||||
|
<!--分页组件-->
|
||||||
|
<pagination />
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<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, { crud, header, presenter } from '@crud/crud'
|
||||||
|
import rrOperation from '@crud/RR.operation'
|
||||||
|
import crudOperation from '@crud/CRUD.operation'
|
||||||
|
import pagination from '@crud/Pagination'
|
||||||
|
import DateRangePicker from '@/components/DateRangePicker/index'
|
||||||
|
import crudProductIn from '@/views/wms/storage_manage/product/productIn/productin'
|
||||||
|
|
||||||
|
const start = new Date()
|
||||||
|
export default {
|
||||||
|
name: 'AddBox',
|
||||||
|
components: { crudOperation, rrOperation, pagination, DateRangePicker },
|
||||||
|
cruds() {
|
||||||
|
return CRUD({
|
||||||
|
title: '用户',
|
||||||
|
url: '/api/mdPbBucketrecord',
|
||||||
|
crudMethod: {},
|
||||||
|
optShow: {
|
||||||
|
reset: true
|
||||||
|
}
|
||||||
|
})
|
||||||
|
},
|
||||||
|
mixins: [presenter(), header(), crud()],
|
||||||
|
props: {
|
||||||
|
dialogShow: {
|
||||||
|
type: Boolean,
|
||||||
|
default: false
|
||||||
|
},
|
||||||
|
addBoxParam: {
|
||||||
|
type: Object
|
||||||
|
}
|
||||||
|
},
|
||||||
|
data() {
|
||||||
|
return {
|
||||||
|
dialogVisible: false,
|
||||||
|
rows: [],
|
||||||
|
tableRadio: null,
|
||||||
|
tableData: []
|
||||||
|
}
|
||||||
|
},
|
||||||
|
watch: {
|
||||||
|
dialogShow: {
|
||||||
|
handler(newValue, oldValue) {
|
||||||
|
this.dialogVisible = newValue
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
methods: {
|
||||||
|
[CRUD.HOOK.beforeRefresh]() {
|
||||||
|
return true
|
||||||
|
},
|
||||||
|
open() {
|
||||||
|
this.query.material_id = this.addBoxParam.material_id
|
||||||
|
this.query.pcsn = this.addBoxParam.pcsn
|
||||||
|
this.crud.toQuery()
|
||||||
|
},
|
||||||
|
clickChange(item) {
|
||||||
|
this.tableRadio = item
|
||||||
|
},
|
||||||
|
close() {
|
||||||
|
this.$emit('update:dialogShow', false)
|
||||||
|
},
|
||||||
|
submit() {
|
||||||
|
this.$emit('update:dialogShow', false)
|
||||||
|
this.rows = this.$refs.multipleTable.selection
|
||||||
|
this.$emit('tableChanged2', this.tableRadio)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</script>
|
||||||
|
|
||||||
@@ -71,12 +71,13 @@
|
|||||||
style="width: 200px"
|
style="width: 200px"
|
||||||
size="mini"
|
size="mini"
|
||||||
clearable
|
clearable
|
||||||
|
@blur="vehicleCheck(form.vehicle_code)"
|
||||||
placeholder="载具号"
|
placeholder="载具号"
|
||||||
/>
|
/>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
|
|
||||||
<el-form-item label="箱号:" prop="pageBox_code">
|
<el-form-item label="箱号:" prop="pageBox_code">
|
||||||
<el-input v-model="form.pageBox_code" size="mini" style="width: 200px" disabled placeholder="箱号" >
|
<el-input v-model="form.bucketunique" size="mini" style="width: 200px" disabled placeholder="箱号" >
|
||||||
<el-button slot="append" icon="el-icon-plus" @click="queryBox" />
|
<el-button slot="append" icon="el-icon-plus" @click="queryBox" />
|
||||||
</el-input>
|
</el-input>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
@@ -140,7 +141,7 @@
|
|||||||
type="primary"
|
type="primary"
|
||||||
icon="el-icon-plus"
|
icon="el-icon-plus"
|
||||||
size="mini"
|
size="mini"
|
||||||
@click="confirmvehicle()"
|
@click="pushVehicle()"
|
||||||
>
|
>
|
||||||
装入托盘
|
装入托盘
|
||||||
</el-button>
|
</el-button>
|
||||||
@@ -211,6 +212,8 @@
|
|||||||
</el-card>
|
</el-card>
|
||||||
|
|
||||||
<StructDiv ref="child" :stor-id="storId" :dialog-show.sync="structShow" :sect-prop="sectProp" @tableChanged="tableChanged" />
|
<StructDiv ref="child" :stor-id="storId" :dialog-show.sync="structShow" :sect-prop="sectProp" @tableChanged="tableChanged" />
|
||||||
|
<AddBox ref="child" :dialog-show.sync="addBoxShow" :add-box-param="boxParam" @tableChanged2="tableChanged2" />
|
||||||
|
|
||||||
</el-dialog>
|
</el-dialog>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
@@ -220,10 +223,11 @@ import StructDiv from '@/views/wms/pub/StructDialog'
|
|||||||
import crudProductIn from '@/views/wms/storage_manage/product/productIn/productin'
|
import crudProductIn from '@/views/wms/storage_manage/product/productIn/productin'
|
||||||
import crudPoint from '@/api/wms/sch/point'
|
import crudPoint from '@/api/wms/sch/point'
|
||||||
import crudRegion from '@/api/wms/sch/region'
|
import crudRegion from '@/api/wms/sch/region'
|
||||||
|
import AddBox from '@/views/wms/storage_manage/product/productIn/AddBox'
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
name: 'DivDialog',
|
name: 'DivDialog',
|
||||||
components: { StructDiv },
|
components: { StructDiv, AddBox },
|
||||||
mixins: [crud()],
|
mixins: [crud()],
|
||||||
dicts: ['IO_BILL_STATUS', 'MD_OVERSTRUCT_TYPE'],
|
dicts: ['IO_BILL_STATUS', 'MD_OVERSTRUCT_TYPE'],
|
||||||
props: {
|
props: {
|
||||||
@@ -231,19 +235,12 @@ export default {
|
|||||||
type: Boolean,
|
type: Boolean,
|
||||||
default: false
|
default: false
|
||||||
},
|
},
|
||||||
bussConfig: {
|
|
||||||
type: Object
|
|
||||||
},
|
|
||||||
openParam: {
|
openParam: {
|
||||||
type: Array,
|
type: Array,
|
||||||
default: () => {
|
default: () => {
|
||||||
return []
|
return []
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
billType: {
|
|
||||||
type: String,
|
|
||||||
default: null
|
|
||||||
},
|
|
||||||
storId: {
|
storId: {
|
||||||
type: String,
|
type: String,
|
||||||
default: null
|
default: null
|
||||||
@@ -255,13 +252,13 @@ export default {
|
|||||||
stor_id: '',
|
stor_id: '',
|
||||||
sect_id: '',
|
sect_id: '',
|
||||||
sectProp: null,
|
sectProp: null,
|
||||||
bucketProp: {},
|
|
||||||
structShow: false,
|
structShow: false,
|
||||||
bucketObj: null,
|
bucketObj: null,
|
||||||
divBtn: false,
|
divBtn: false,
|
||||||
bucketShow: false,
|
bucketShow: false,
|
||||||
|
addBoxShow: false,
|
||||||
|
bucketuniqueObj: null,
|
||||||
sects: [],
|
sects: [],
|
||||||
sect_val: null,
|
|
||||||
dis_row: null,
|
dis_row: null,
|
||||||
form: {
|
form: {
|
||||||
dtl_row: null,
|
dtl_row: null,
|
||||||
@@ -270,13 +267,14 @@ export default {
|
|||||||
stor_id: '',
|
stor_id: '',
|
||||||
point_code: null,
|
point_code: null,
|
||||||
vehicle_code: "",
|
vehicle_code: "",
|
||||||
pageBox_code: "",
|
bucketunique: "",
|
||||||
checked: true,
|
checked: true,
|
||||||
tableMater: []
|
tableMater: []
|
||||||
},
|
},
|
||||||
storlist: [],
|
storlist: [],
|
||||||
pointlist: [],
|
pointlist: [],
|
||||||
rules: {}
|
rules: {},
|
||||||
|
boxParam: {}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
watch: {
|
watch: {
|
||||||
@@ -302,6 +300,7 @@ export default {
|
|||||||
close() {
|
close() {
|
||||||
this.form.tableMater = []
|
this.form.tableMater = []
|
||||||
this.form.dtl_row = null
|
this.form.dtl_row = null
|
||||||
|
this.form.bucketunique = null
|
||||||
this.sectProp = null
|
this.sectProp = null
|
||||||
this.$emit('update:dialogShow', false)
|
this.$emit('update:dialogShow', false)
|
||||||
this.$emit('AddChanged')
|
this.$emit('AddChanged')
|
||||||
@@ -317,21 +316,70 @@ export default {
|
|||||||
clcikRowDis(row, column, event) {
|
clcikRowDis(row, column, event) {
|
||||||
this.dis_row = row
|
this.dis_row = row
|
||||||
},
|
},
|
||||||
vehicleCheck() {
|
vehicleCheck(vehicle_code) {
|
||||||
if (!this.form.dtl_row) {
|
this.form.bucketunique = ''
|
||||||
this.crud.notify('请选择一条入库明细', CRUD.NOTIFICATION_TYPE.INFO)
|
// 校验载具号是否存在&&是否已被组盘
|
||||||
this.form.storagevehicle_code = ''
|
crudProductIn.vehicleCheck({ 'storagevehicle_code': vehicle_code }).then(res => {
|
||||||
|
this.crud.notify('查询成功!', CRUD.NOTIFICATION_TYPE.SUCCESS)
|
||||||
|
}).catch(() => {
|
||||||
|
this.form.vehicle_code = ''
|
||||||
|
})
|
||||||
|
},
|
||||||
|
queryBox() {
|
||||||
|
// 校验载具是否为空
|
||||||
|
if (!this.form.vehicle_code) {
|
||||||
|
this.crud.notify('请先填写载具号!', CRUD.NOTIFICATION_TYPE.INFO)
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
crudProductIn.checkVehicle({
|
if (!this.form.dtl_row) {
|
||||||
'storagevehicle_code': this.form.storagevehicle_code,
|
this.crud.notify('请选择一条明细!', CRUD.NOTIFICATION_TYPE.INFO)
|
||||||
'dis_num': this.form.tableMater.length,
|
return
|
||||||
'iostorinv_id': this.form.dtl_row.iostorinv_id
|
}
|
||||||
}).then(res => {
|
this.boxParam = {
|
||||||
|
'material_id': this.form.dtl_row.material_id,
|
||||||
|
'pcsn': this.form.dtl_row.pcsn
|
||||||
|
}
|
||||||
|
this.addBoxShow = true
|
||||||
|
},
|
||||||
|
pushVehicle() {
|
||||||
|
// 校验载具是否为空
|
||||||
|
if (!this.form.vehicle_code) {
|
||||||
|
this.crud.notify('载具号不能为空!', CRUD.NOTIFICATION_TYPE.INFO)
|
||||||
|
return
|
||||||
|
}
|
||||||
|
// 校验明细不能为空
|
||||||
|
if (!this.form.dtl_row) {
|
||||||
|
this.crud.notify('请选择一条明细!', CRUD.NOTIFICATION_TYPE.INFO)
|
||||||
|
return
|
||||||
|
}
|
||||||
|
// 有箱号
|
||||||
|
if (this.form.bucketunique) {
|
||||||
|
let fla = true
|
||||||
|
this.form.tableMater.forEach(item => {
|
||||||
|
if (item.bucketunique === this.bucketuniqueObj.bucketunique) {
|
||||||
|
fla = false
|
||||||
|
}
|
||||||
|
})
|
||||||
|
|
||||||
}).catch(err => {
|
if (fla) {
|
||||||
this.form.storagevehicle_code = ''
|
this.form.tableMater.splice(-1, 0, this.bucketuniqueObj)
|
||||||
})
|
this.form.bucketunique = ''
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
// 无箱号
|
||||||
|
if (!this.form.storage_qty) {
|
||||||
|
this.crud.notify('数量不能为0!', CRUD.NOTIFICATION_TYPE.INFO)
|
||||||
|
return
|
||||||
|
}
|
||||||
|
const item = {
|
||||||
|
'storagevehicle_code': this.form.vehicle_code,
|
||||||
|
'material_id': this.form.dtl_row.material_id,
|
||||||
|
'material_code': this.form.dtl_row.material_code,
|
||||||
|
'material_name': this.form.dtl_row.material_name,
|
||||||
|
'qty': this.form.storage_qty
|
||||||
|
}
|
||||||
|
this.form.tableMater.splice(-1, 0, item)
|
||||||
|
}
|
||||||
},
|
},
|
||||||
tableRowClassName({ row, rowIndex }) {
|
tableRowClassName({ row, rowIndex }) {
|
||||||
row.index = rowIndex
|
row.index = rowIndex
|
||||||
@@ -384,23 +432,20 @@ export default {
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
confirmvehicle() {
|
confirmvehicle() {
|
||||||
if (this.dis_row === null) {
|
if (!this.form.dtl_row) {
|
||||||
this.crud.notify('请先选择一条分配明细!', CRUD.NOTIFICATION_TYPE.INFO)
|
this.crud.notify('请选择一条明细', CRUD.NOTIFICATION_TYPE.INFO)
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
if (this.dis_row.overstruct_type === '') {
|
if (this.form.tableMater.length === 0) {
|
||||||
this.crud.notify('载具超限不能为空', CRUD.NOTIFICATION_TYPE.INFO)
|
this.crud.notify('请先装入托盘!', CRUD.NOTIFICATION_TYPE.INFO)
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
crudProductIn.confirmvehicle(this.dis_row).then(res => {
|
crudProductIn.confirmvehicle(this.form).then(res => {
|
||||||
crudProductIn.getIODtl({ 'iostorinv_id': this.form.dtl_row.iostorinv_id }).then(res => {
|
this.crud.notify('组盘成功!', CRUD.NOTIFICATION_TYPE.SUCCESS)
|
||||||
this.openParam = res
|
this.form.vehicle_code = ''
|
||||||
})
|
this.form.bucketunique = ''
|
||||||
crudProductIn.getDisDtl(this.form.dtl_row).then(res => {
|
|
||||||
this.form.tableMater = res
|
|
||||||
this.crud.notify('组盘成功!', CRUD.NOTIFICATION_TYPE.SUCCESS)
|
|
||||||
})
|
|
||||||
})
|
})
|
||||||
|
|
||||||
},
|
},
|
||||||
sectQueryChange(val) {
|
sectQueryChange(val) {
|
||||||
this.sectProp = val
|
this.sectProp = val
|
||||||
@@ -436,6 +481,12 @@ export default {
|
|||||||
this.form.tableMater = []
|
this.form.tableMater = []
|
||||||
})
|
})
|
||||||
},
|
},
|
||||||
|
tableChanged2(row) {
|
||||||
|
this.form.bucketunique = row.bucketunique
|
||||||
|
row.storagevehicle_code = this.form.vehicle_code
|
||||||
|
row.qty = row.storage_qty
|
||||||
|
this.bucketuniqueObj = row
|
||||||
|
},
|
||||||
divPoint() {
|
divPoint() {
|
||||||
if (!this.form.point_code) {
|
if (!this.form.point_code) {
|
||||||
this.crud.notify('请选择入库点', CRUD.NOTIFICATION_TYPE.INFO)
|
this.crud.notify('请选择入库点', CRUD.NOTIFICATION_TYPE.INFO)
|
||||||
|
|||||||
@@ -40,10 +40,28 @@ export function getIosInvDis(data) {
|
|||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
|
export function vehicleCheck(data) {
|
||||||
|
return request({
|
||||||
|
url: '/api/productIn/vehicleCheck',
|
||||||
|
method: 'post',
|
||||||
|
data
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
export function confirmvehicle(data) {
|
||||||
|
return request({
|
||||||
|
url: '/api/productIn/confirmvehicle',
|
||||||
|
method: 'post',
|
||||||
|
data
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
add,
|
add,
|
||||||
edit,
|
edit,
|
||||||
del,
|
del,
|
||||||
getIosInvDtl,
|
getIosInvDtl,
|
||||||
getIosInvDis
|
getIosInvDis,
|
||||||
|
vehicleCheck,
|
||||||
|
confirmvehicle
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user