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

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>