给序列号商品的单据中的出库,做成支持批量出库的功能(在出库的时候搜索序列号支持按逗号分隔)

This commit is contained in:
jishenghua
2025-12-10 22:49:36 +08:00
parent 490454d5f7
commit c21d36715b
6 changed files with 45 additions and 9 deletions

View File

@@ -7,6 +7,7 @@ import com.jsh.erp.service.DepotHeadService;
import com.jsh.erp.service.DepotItemService;
import com.jsh.erp.service.SerialNumberService;
import com.jsh.erp.utils.BaseResponseInfo;
import com.jsh.erp.utils.StringUtil;
import com.jsh.erp.utils.Tools;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
@@ -80,15 +81,24 @@ public class SerialNumberController {
Map<String, Object> map = new HashMap<>();
try {
String number = "";
String [] nameArray = null;
if(depotItemId != null) {
DepotItem depotItem = depotItemService.getDepotItem(depotItemId);
number = depotHeadService.getDepotHead(depotItem.getHeaderId()).getNumber();
}
List<SerialNumberEx> list = serialNumberService.getEnableSerialNumberList(number, name, depotId, barCode, (currentPage-1)*pageSize, pageSize);
// 批量查询序列号时name可能为多个
if(StringUtil.isNotEmpty(name)) {
name = name.replace("",",");
if(name.contains(",")) {
nameArray = name.split(",");
name = null;
}
}
List<SerialNumberEx> list = serialNumberService.getEnableSerialNumberList(number, name, nameArray, depotId, barCode, (currentPage-1)*pageSize, pageSize);
for(SerialNumberEx serialNumberEx: list) {
serialNumberEx.setCreateTimeStr(Tools.getCenternTime(serialNumberEx.getCreateTime()));
}
Long total = serialNumberService.getEnableSerialNumberCount(number, name, depotId, barCode);
Long total = serialNumberService.getEnableSerialNumberCount(number, name, nameArray, depotId, barCode);
map.put("rows", list);
map.put("total", total);
res.code = 200;

View File

@@ -44,12 +44,14 @@ public interface SerialNumberMapperEx {
List<SerialNumberEx> getEnableSerialNumberList(@Param("number") String number,
@Param("name") String name,
@Param("nameArray") String [] nameArray,
@Param("depotId") Long depotId,
@Param("barCode") String barCode,
@Param("offset") Integer offset, @Param("rows") Integer rows);
Long getEnableSerialNumberCount(@Param("number") String number,
@Param("name") String name,
@Param("nameArray") String [] nameArray,
@Param("depotId") Long depotId,
@Param("barCode") String barCode);

View File

@@ -218,20 +218,20 @@ public class SerialNumberService {
return result;
}
public List<SerialNumberEx> getEnableSerialNumberList(String number, String name, Long depotId, String barCode, Integer offset, Integer rows)throws Exception {
public List<SerialNumberEx> getEnableSerialNumberList(String number, String name, String [] nameArray, Long depotId, String barCode, Integer offset, Integer rows)throws Exception {
List<SerialNumberEx> list =null;
try{
list = serialNumberMapperEx.getEnableSerialNumberList(StringUtil.toNull(number), StringUtil.toNull(name), depotId, barCode, offset, rows);
list = serialNumberMapperEx.getEnableSerialNumberList(StringUtil.toNull(number), StringUtil.toNull(name), nameArray, depotId, barCode, offset, rows);
}catch(Exception e){
JshException.readFail(logger, e);
}
return list;
}
public Long getEnableSerialNumberCount(String number, String name, Long depotId, String barCode)throws Exception {
public Long getEnableSerialNumberCount(String number, String name, String [] nameArray, Long depotId, String barCode)throws Exception {
Long count = 0L;
try{
count = serialNumberMapperEx.getEnableSerialNumberCount(StringUtil.toNull(number), StringUtil.toNull(name), depotId, barCode);
count = serialNumberMapperEx.getEnableSerialNumberCount(StringUtil.toNull(number), StringUtil.toNull(name), nameArray, depotId, barCode);
}catch(Exception e){
JshException.readFail(logger, e);
}

View File

@@ -159,6 +159,14 @@
<bind name="bindName" value="'%'+name+'%'"/>
and ser.serial_number like #{bindName}
</if>
<if test="nameArray != null">
and ser.serial_number
in (
<foreach collection="nameArray" item="name" separator=",">
#{name}
</foreach>
)
</if>
<if test="depotId != null">
and ser.depot_id = #{depotId}
</if>
@@ -187,6 +195,14 @@
<bind name="bindName" value="'%'+name+'%'"/>
and ser.serial_number like #{bindName}
</if>
<if test="nameArray != null">
and ser.serial_number
in (
<foreach collection="nameArray" item="name" separator=",">
#{name}
</foreach>
)
</if>
<if test="depotId != null">
and ser.depot_id = #{depotId}
</if>
@@ -208,4 +224,4 @@
and is_sell = '0'
and ifnull(delete_flag,'0') !='1'
</select>
</mapper>
</mapper>

View File

@@ -32,7 +32,7 @@
<a-col :md="24" :sm="24">
<a-form-item :labelCol="labelCol" :wrapperCol="wrapperCol" label="序列号">
<a-textarea style="width:400px;"
placeholder="多个序列号用逗号隔开请少于100个字符"
placeholder="多个序列号用逗号隔开请少于1000个字符"
:auto-size="{ minRows: 2, maxRows: 4 }"
v-model="queryParam.multiName" />
<div style="float:left;">
@@ -206,6 +206,10 @@
if(!this.queryParam.multiName) {
return
}
if(this.queryParam.multiName && this.queryParam.multiName.length>1000) {
this.$message.warning('序列号长度不能超出1000个字符');
return
}
this.queryParam.multiName = this.queryParam.multiName.replaceAll('',',')
let nameArr = this.queryParam.multiName.split(',')
for (let i = 0; i < nameArr.length; i++) {

View File

@@ -17,7 +17,7 @@
<a-row :gutter="24">
<a-col :md="12" :sm="24">
<a-form-item :labelCol="labelCol" :wrapperCol="wrapperCol" label="序列号">
<a-input ref="name" placeholder="请输入序列号并回车" v-model="queryParam.name"></a-input>
<a-input ref="name" placeholder="多个序列号用逗号隔开" v-model="queryParam.name"></a-input>
</a-form-item>
</a-col>
<span style="float: left;overflow: hidden;" class="table-page-search-submitButtons">
@@ -329,6 +329,10 @@
this.selectionRows = selectionRows;
},
onSearch() {
if(this.queryParam.name && this.queryParam.name.length>1000) {
this.$message.warning('序列号长度不能超出1000个字符');
return
}
this.loadData(1);
},
modalFormOk() {