1.添加库存统计接口

master
x_z 2 years ago
parent 6e4dadd22a
commit 69e0f65b61

@ -142,4 +142,38 @@ public class InvProductController {
} }
} }
/**
*
*
* @param filterInvProductRequest
* @return
*/
@GetMapping("/spms/inv/product/stockStatistics")
public BaseResponse stockStatistics(FilterInvProductRequest filterInvProductRequest) {
boolean showSup = true;
if (StrUtil.isBlank(filterInvProductRequest.getInvCode())) {
List<String> invCodes = warehouseUserService.selectCodeByUser(customerService.getUserIdStr());
filterInvProductRequest.setInvCodes(invCodes);
}
List<InvProductResponse> invProductResponses;
if (StrUtil.isBlank(filterInvProductRequest.getCpmctymc()) && StrUtil.isBlank(filterInvProductRequest.getNameCode())
&& StrUtil.isBlank(filterInvProductRequest.getGgxh()) && StrUtil.isBlank(filterInvProductRequest.getZczbhhzbapzbh())
&& StrUtil.isBlank(filterInvProductRequest.getYlqxzcrbarmc()) && StrUtil.isBlank(filterInvProductRequest.getSupId())
&& StrUtil.isBlank(filterInvProductRequest.getInvCode()) && StrUtil.isBlank(filterInvProductRequest.getBatchNo())
) {
//查询参数为空,走库存查询逻辑
invProductResponses = invProductService.filterList(filterInvProductRequest);
} else {
//查询参数不为空,走库存统计逻辑
invProductResponses = invProductService.stockStatistics(filterInvProductRequest);
}
PageInfo<InvProductResponse> pageInfo = new PageInfo<>(invProductResponses);
InvProductPageResponse<InvProductResponse> pageResponse = new InvProductPageResponse<>();
pageResponse.setTotal(pageInfo.getTotal());
pageResponse.setList(pageInfo.getList());
pageResponse.setShowSup(showSup);
return ResultVOUtils.success(pageResponse);
}
} }

@ -18,4 +18,12 @@ public interface InvProductDao extends BaseMapperPlus<InvProductDao, InvProductE
* @return * @return
*/ */
List<InvProductResponse> filterList(FilterInvProductRequest filterInvProductRequest); List<InvProductResponse> filterList(FilterInvProductRequest filterInvProductRequest);
/**
*
*
* @param filterInvProductRequest
* @return
*/
List<InvProductResponse> stockStatistics(FilterInvProductRequest filterInvProductRequest);
} }

@ -40,4 +40,12 @@ public interface InvProductService {
* @return * @return
*/ */
boolean deleteById(String id); boolean deleteById(String id);
/**
*
*
* @param filterInvProductRequest
* @return
*/
List<InvProductResponse> stockStatistics(FilterInvProductRequest filterInvProductRequest);
} }

@ -63,4 +63,15 @@ public class InvProductServiceImpl implements InvProductService {
return invProductDao.deleteById(id) == 1 ? true : false; return invProductDao.deleteById(id) == 1 ? true : false;
} }
@Override
public List<InvProductResponse> stockStatistics(FilterInvProductRequest filterInvProductRequest) {
if (null == filterInvProductRequest) {
return Collections.emptyList();
}
if (null != filterInvProductRequest.getPage() && null != filterInvProductRequest.getLimit()) {
PageHelper.offsetPage((filterInvProductRequest.getPage() - 1) * filterInvProductRequest.getLimit(), filterInvProductRequest.getLimit());
}
return invProductDao.stockStatistics(filterInvProductRequest);
}
} }

@ -80,4 +80,62 @@
</if> </if>
</where> </where>
</select> </select>
<select id="stockStatistics" resultType="com.glxp.api.res.inv.InvProductResponse">
select bp.cpmctymc,
bp.nameCode,
bp.ylqxzcrbarmc,
bp.zczbhhzbapzbh,
bc.name supName,
bp.ggxh,
aw.name invName,
ip.batchNo,
ip.relIdFk,
ip.productionDate,
ip.expireDate,
ip.customerId,
ip.supId,
sum(ip.inCount) inCount,
sum(ip.outCount) outCount,
sum(ip.reCount) reCount
from inv_product ip
inner join basic_udirel bu on ip.relIdFk = bu.id
inner join basic_products bp on bu.uuid = bp.uuid
left join basic_corp bc on ip.supId = bc.erpId
left join auth_warehouse aw on aw.code = ip.invCode
<where>
bp.diType = 1
<if test="cpmctymc != null and cpmctymc != ''">
AND bp.cpmctymc like concat('%', #{cpmctymc}, '%')
</if>
<if test="nameCode != null and nameCode != ''">
AND ip.nameCode like concat('%', #{nameCode}, '%')
</if>
<if test="ggxh != null and ggxh != ''">
AND bp.ggxh like concat('%', #{ggxh}, '%')
</if>
<if test="zczbhhzbapzbh != null and zczbhhzbapzbh != ''">
AND bp.zczbhhzbapzbh like concat('%', #{zczbhhzbapzbh}, '%')
</if>
<if test="ylqxzcrbarmc != null and ylqxzcrbarmc != ''">
AND bp.ylqxzcrbarmc like concat('%', #{ylqxzcrbarmc}, '%')
</if>
<if test="supId != null and supId != ''">
AND ip.supId like concat('%', #{supId}, '%')
</if>
<if test="invCode != null and invCode != ''">
AND invCode = #{invCode}
</if>
<if test="invCodes != null and invCodes.size() != 0">
AND invCode in
<foreach collection="invCodes" index="index" item="item" open="(" close=")" separator=",">
#{item}
</foreach>
</if>
<if test="batchNo != null and batchNo != ''">
AND batchNo like concat('%', #{batchNo}, '%')
</if>
group by ip.relIdFk, ip.batchNo
</where>
</select>
</mapper> </mapper>

Loading…
Cancel
Save