修改获取批次商品列表信息的接口的查询逻辑

This commit is contained in:
季圣华
2023-04-01 23:26:07 +08:00
parent de6f8ba7c2
commit 426adf2ad6
4 changed files with 50 additions and 19 deletions

View File

@@ -845,16 +845,9 @@ public class DepotItemController {
DepotItem depotItem = depotItemService.getDepotItem(depotItemId); DepotItem depotItem = depotItemService.getDepotItem(depotItemId);
number = depotHeadService.getDepotHead(depotItem.getHeaderId()).getNumber(); number = depotHeadService.getDepotHead(depotItem.getHeaderId()).getNumber();
} }
List<DepotItemVoBatchNumberList> reslist = new ArrayList<>();
List<DepotItemVoBatchNumberList> list = depotItemService.getBatchNumberList(number, name, depotId, barCode, batchNumber); List<DepotItemVoBatchNumberList> list = depotItemService.getBatchNumberList(number, name, depotId, barCode, batchNumber);
for(DepotItemVoBatchNumberList bn: list) { map.put("rows", list);
if(bn.getTotalNum()!=null && bn.getTotalNum().compareTo(BigDecimal.ZERO)>0) { map.put("total", list.size());
reslist.add(bn);
}
bn.setExpirationDateStr(Tools.parseDateToStr(bn.getExpirationDate()));
}
map.put("rows", reslist);
map.put("total", reslist.size());
res.code = 200; res.code = 200;
res.data = map; res.data = map;
} catch (Exception e) { } catch (Exception e) {

View File

@@ -11,6 +11,8 @@ public class DepotItemVoBatchNumberList {
private String name; private String name;
private String standard; private String standard;
private String model; private String model;
private Long unitId;
private String commodityUnit;
private String batchNumber; private String batchNumber;
private Date expirationDate; private Date expirationDate;
private String expirationDateStr; private String expirationDateStr;
@@ -56,6 +58,22 @@ public class DepotItemVoBatchNumberList {
this.model = model; this.model = model;
} }
public Long getUnitId() {
return unitId;
}
public void setUnitId(Long unitId) {
this.unitId = unitId;
}
public String getCommodityUnit() {
return commodityUnit;
}
public void setCommodityUnit(String commodityUnit) {
this.commodityUnit = commodityUnit;
}
public String getBatchNumber() { public String getBatchNumber() {
return batchNumber; return batchNumber;
} }

View File

@@ -13,14 +13,14 @@ import com.jsh.erp.exception.BusinessRunTimeException;
import com.jsh.erp.exception.JshException; import com.jsh.erp.exception.JshException;
import com.jsh.erp.service.depot.DepotService; import com.jsh.erp.service.depot.DepotService;
import com.jsh.erp.service.depotHead.DepotHeadService; import com.jsh.erp.service.depotHead.DepotHeadService;
import com.jsh.erp.service.materialExtend.MaterialExtendService;
import com.jsh.erp.service.log.LogService; import com.jsh.erp.service.log.LogService;
import com.jsh.erp.service.material.MaterialService; import com.jsh.erp.service.material.MaterialService;
import com.jsh.erp.service.materialExtend.MaterialExtendService;
import com.jsh.erp.service.role.RoleService; import com.jsh.erp.service.role.RoleService;
import com.jsh.erp.service.serialNumber.SerialNumberService; import com.jsh.erp.service.serialNumber.SerialNumberService;
import com.jsh.erp.service.systemConfig.SystemConfigService; import com.jsh.erp.service.systemConfig.SystemConfigService;
import com.jsh.erp.service.unit.UnitService;
import com.jsh.erp.service.user.UserService; import com.jsh.erp.service.user.UserService;
import com.jsh.erp.utils.QueryUtils;
import com.jsh.erp.utils.StringUtil; import com.jsh.erp.utils.StringUtil;
import com.jsh.erp.utils.Tools; import com.jsh.erp.utils.Tools;
import org.slf4j.Logger; import org.slf4j.Logger;
@@ -31,7 +31,10 @@ import org.springframework.transaction.annotation.Transactional;
import javax.annotation.Resource; import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletRequest;
import java.math.BigDecimal; import java.math.BigDecimal;
import java.util.*; import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
@Service @Service
public class DepotItemService { public class DepotItemService {
@@ -65,7 +68,7 @@ public class DepotItemService {
@Resource @Resource
private DepotService depotService; private DepotService depotService;
@Resource @Resource
private RoleService roleService; private UnitService unitService;
@Resource @Resource
private MaterialCurrentStockMapper materialCurrentStockMapper; private MaterialCurrentStockMapper materialCurrentStockMapper;
@Resource @Resource
@@ -1087,8 +1090,21 @@ public class DepotItemService {
return count; return count;
} }
public List<DepotItemVoBatchNumberList> getBatchNumberList(String number, String name, Long depotId, String barCode, String batchNumber){ public List<DepotItemVoBatchNumberList> getBatchNumberList(String number, String name, Long depotId, String barCode, String batchNumber) throws Exception {
return depotItemMapperEx.getBatchNumberList(StringUtil.toNull(number), name, depotId, barCode, batchNumber); List<DepotItemVoBatchNumberList> reslist = new ArrayList<>();
List<DepotItemVoBatchNumberList> list = depotItemMapperEx.getBatchNumberList(StringUtil.toNull(number), name, depotId, barCode, batchNumber);
for(DepotItemVoBatchNumberList bn: list) {
if(bn.getTotalNum()!=null && bn.getTotalNum().compareTo(BigDecimal.ZERO)>0) {
bn.setExpirationDateStr(Tools.parseDateToStr(bn.getExpirationDate()));
if(bn.getUnitId()!=null) {
Unit unit = unitService.getUnit(bn.getUnitId());
String commodityUnit = bn.getCommodityUnit();
bn.setTotalNum(unitService.parseStockByUnit(bn.getTotalNum(), unit, commodityUnit));
}
reslist.add(bn);
}
}
return reslist;
} }
public Long getCountByMaterialAndDepot(Long mId, Long depotId) { public Long getCountByMaterialAndDepot(Long mId, Long depotId) {

View File

@@ -88,6 +88,8 @@
<result column="name" jdbcType="VARCHAR" property="name" /> <result column="name" jdbcType="VARCHAR" property="name" />
<result column="standard" jdbcType="VARCHAR" property="standard" /> <result column="standard" jdbcType="VARCHAR" property="standard" />
<result column="model" jdbcType="VARCHAR" property="model" /> <result column="model" jdbcType="VARCHAR" property="model" />
<result column="unit_id" jdbcType="BIGINT" property="unitId" />
<result column="commodity_unit" jdbcType="VARCHAR" property="commodityUnit" />
<result column="batch_number" jdbcType="VARCHAR" property="batchNumber" /> <result column="batch_number" jdbcType="VARCHAR" property="batchNumber" />
<result column="expiration_date" jdbcType="TIMESTAMP" property="expirationDate" /> <result column="expiration_date" jdbcType="TIMESTAMP" property="expirationDate" />
<result column="total_num" jdbcType="VARCHAR" property="totalNum" /> <result column="total_num" jdbcType="VARCHAR" property="totalNum" />
@@ -841,14 +843,16 @@
</select> </select>
<select id="getBatchNumberList" resultMap="batchNumberListMap"> <select id="getBatchNumberList" resultMap="batchNumberListMap">
select id, bar_code, name, standard, model, batch_number, expiration_date, sum(basic_number) total_num from select id, bar_code, name, standard, model, unit_id,
(select di.batch_number id, me.bar_code, m.name, m.standard, m.model,di.batch_number,di.expiration_date, commodity_unit, batch_number, expiration_date, sum(basic_number) total_num from
(select di.batch_number id, me.bar_code, m.name, m.standard, m.model, m.unit_id,
me.commodity_unit, di.batch_number,di.expiration_date,
di.basic_number*(case dh.type when '入库' then 1 when '出库' then -1 end) as basic_number di.basic_number*(case dh.type when '入库' then 1 when '出库' then -1 end) as basic_number
from jsh_depot_head dh from jsh_depot_head dh
left join jsh_depot_item di on dh.id=di.header_id left join jsh_depot_item di on dh.id=di.header_id
left join jsh_material m on m.id=di.material_id and ifnull(m.delete_flag, '0') != '1' left join jsh_material m on m.id=di.material_id and ifnull(m.delete_flag, '0') != '1'
left join jsh_material_extend me on me.material_id=m.id and ifnull(me.delete_flag,'0') !='1' left join jsh_material_extend me on me.material_id=m.id and ifnull(me.delete_flag,'0') !='1'
where me.bar_code= #{barCode} and me.default_flag=1 where me.bar_code= #{barCode}
<if test="name != null"> <if test="name != null">
<bind name="bindName" value="'%'+name+'%'"/> <bind name="bindName" value="'%'+name+'%'"/>
and di.batch_number like #{bindName} and di.batch_number like #{bindName}