feat: 科室产品出库功能

dev_fifo_z
chenhc 5 months ago
parent 96a3e9b184
commit 1e9cc53d4b

@ -1,6 +1,7 @@
package com.glxp.api.controller.inv;
import com.glxp.api.entity.auth.InvWarehouseEntity;
import com.glxp.api.service.inout.IoOrderDetailResultService;
import com.glxp.api.service.inv.impl.InvProductService;
import com.glxp.api.service.inv.impl.InvProductServiceNew;
import com.glxp.api.vo.basic.InvProductNewVo;
@ -62,6 +63,8 @@ public class InvProductController extends BaseController {
InvWarehouseService invWarehouseService;
@Resource
private IBasicBussinessTypeService basicBussinessTypeService;
@Resource
private IoOrderDetailResultService ioOrderDetailResultService;
/**
*
@ -201,6 +204,27 @@ public class InvProductController extends BaseController {
return ResultVOUtils.success(pageSimpleResponse);
}
/**
*
*
* @param filterInvProductDetailRequest
* @return
*/
@GetMapping("/spms/inv/product/filterDetailOut")
public BaseResponse filterInvProductDetailOut(FilterInvProductDetailRequest filterInvProductDetailRequest) {
if (!"".equals(filterInvProductDetailRequest.getOrderBy())) {
filterInvProductDetailRequest.setOrderBy("updateTime");
}
List<InvProductDetailResponse> invProductDetailEntities = ioOrderDetailResultService.filterInvProductDetailOutList(filterInvProductDetailRequest);
PageInfo<InvProductDetailResponse> pageInfo = new PageInfo<>(invProductDetailEntities);
PageSimpleResponse<InvProductDetailResponse> pageSimpleResponse = new PageSimpleResponse<>();
pageSimpleResponse.setTotal(pageInfo.getTotal());
pageSimpleResponse.setList(invProductDetailEntities);
return ResultVOUtils.success(pageSimpleResponse);
}
/**
*
*

@ -4,9 +4,11 @@ import com.glxp.api.dao.BaseMapperPlus;
import com.glxp.api.entity.inout.IoOrderDetailResultEntity;
import com.glxp.api.req.inout.CptTraceRequest;
import com.glxp.api.req.inout.FilterOrderDetailResultRequest;
import com.glxp.api.req.inv.FilterInvProductDetailRequest;
import com.glxp.api.res.inout.CptTraceOrderResponse;
import com.glxp.api.res.inout.IoExOrderDetailResultResponse;
import com.glxp.api.res.inout.IoOrderDetailResultResponse;
import com.glxp.api.res.inv.InvProductDetailResponse;
import com.glxp.api.res.inv.IoOrderDetailStatRsponse;
import io.lettuce.core.dynamic.annotation.Param;
@ -46,4 +48,6 @@ public interface IoOrderDetailResultDao extends BaseMapperPlus<IoOrderDetailBizD
List<IoExOrderDetailResultResponse> exFilterOrderDetail(FilterOrderDetailResultRequest orderDetailResultRequest);
List<InvProductDetailResponse> filterInvProductDetailOutList(FilterInvProductDetailRequest filterInvProductDetailRequest);
}

@ -57,6 +57,7 @@ public class FilterOrderDetailResultRequest extends ListPageRequest {
private String action;
private String mainAction;
private Integer inoutPrintStatus;
private Integer hcType;
private String invName;
private String employeeName;
private String fromInvName;

@ -94,4 +94,5 @@ public class FilterInvProductDetailRequest extends ListPageRequest {
private String startTime;
private String endTime;
private String hcType;
}

@ -4,14 +4,18 @@ import com.glxp.api.entity.inout.IoOrderDetailCodeEntity;
import com.glxp.api.entity.inout.IoOrderDetailResultEntity;
import com.glxp.api.req.inout.CptTraceRequest;
import com.glxp.api.req.inout.FilterOrderDetailResultRequest;
import com.glxp.api.req.inv.FilterInvProductDetailRequest;
import com.glxp.api.res.inout.CptTraceOrderResponse;
import com.glxp.api.res.inout.IoExOrderDetailResultResponse;
import com.glxp.api.res.inout.IoOrderDetailResultResponse;
import com.glxp.api.res.inv.InvProductDetailResponse;
import java.util.List;
public interface IoOrderDetailResultService {
List<InvProductDetailResponse> filterInvProductDetailOutList(FilterInvProductDetailRequest filterInvProductDetailRequest);
List<IoOrderDetailResultEntity> findByOrderId(String orderId);

@ -8,9 +8,11 @@ import com.glxp.api.entity.inout.IoOrderDetailCodeEntity;
import com.glxp.api.entity.inout.IoOrderDetailResultEntity;
import com.glxp.api.req.inout.CptTraceRequest;
import com.glxp.api.req.inout.FilterOrderDetailResultRequest;
import com.glxp.api.req.inv.FilterInvProductDetailRequest;
import com.glxp.api.res.inout.CptTraceOrderResponse;
import com.glxp.api.res.inout.IoExOrderDetailResultResponse;
import com.glxp.api.res.inout.IoOrderDetailResultResponse;
import com.glxp.api.res.inv.InvProductDetailResponse;
import com.glxp.api.service.inout.IoOrderDetailResultService;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
@ -26,6 +28,17 @@ public class IoOrderDetailResultServiceImpl implements IoOrderDetailResultServic
@Resource
IoOrderDetailResultDao orderDetailResultDao;
@Override
public List<InvProductDetailResponse> filterInvProductDetailOutList(FilterInvProductDetailRequest filterInvProductDetailRequest) {
if (null == filterInvProductDetailRequest) {
return Collections.emptyList();
}
if (null != filterInvProductDetailRequest.getPage() && null != filterInvProductDetailRequest.getLimit()) {
PageHelper.offsetPage((filterInvProductDetailRequest.getPage() - 1) * filterInvProductDetailRequest.getLimit(), filterInvProductDetailRequest.getLimit());
}
return orderDetailResultDao.filterInvProductDetailOutList(filterInvProductDetailRequest);
}
@Override
public List<IoOrderDetailResultEntity> findByOrderId(String orderId) {
return orderDetailResultDao.selectList(new QueryWrapper<IoOrderDetailResultEntity>().eq("orderIdFk", orderId));

@ -146,6 +146,8 @@
a2.spec,
a2.measname,
a2.bindRlFk,
a2.nameCode,
a1.invCode,
SUM(
CASE
WHEN a1.mainAction = 'WareHouseOut' THEN
@ -159,9 +161,15 @@
FROM auth_warehouse aw
LEFT JOIN io_order a1 ON a1.fromInvCode = aw.CODE
LEFT JOIN io_order_detail_result a2 ON a1.billNo = a2.orderIdFk
LEFT JOIN basic_udirel bu ON a2.bindRlFk = bu.id
<where>
a1.status = 7
and a2.bindRlFk is not null
<if test="hcType != null and hcType != ''">
AND bu.hcType = #{hcType}
</if>
<if test="invCode != null and invCode != ''">
AND a1.invCode = #{invCode}
</if>
@ -192,6 +200,58 @@
group by a2.bindRlFk
</select>
<select id="filterInvProductDetailOutList" resultType="com.glxp.api.res.inv.InvProductDetailResponse">
SELECT a2.coName,
a2.spec,
a2.measname,
a2.bindRlFk,
a2.nameCode,
a2.batchNo,
a2.productDate as produceDate,
a2.expireDate,
a1.invCode,
a2.price,
a2.count as outCount,
a1.billNo as orderId,
a1.mainAction,
a1.auditTime as orderTime
FROM auth_warehouse aw
LEFT JOIN io_order a1 ON a1.fromInvCode = aw.CODE
LEFT JOIN io_order_detail_result a2 ON a1.billNo = a2.orderIdFk
LEFT JOIN basic_udirel bu ON a2.bindRlFk = bu.id
<where>
a1.status = 7
and a2.bindRlFk is not null
<if test="hcType != null and hcType != ''">
AND bu.hcType = #{hcType}
</if>
<if test="invCode != null and invCode != ''">
AND a1.invCode = #{invCode}
</if>
<if test="relId != null and relId != ''">
AND a2.bindRlFk = #{relId}
</if>
<if test="mainAction != null and mainAction != ''">
AND a1.mainAction = #{mainAction}
</if>
<if test="action != null and action != ''">
AND a1.action = #{action}
</if>
<if test="mainAction != null and mainAction != ''">
AND a1.mainAction = #{mainAction}
</if>
<if test="startTime != null and startTime != '' and endTime != null and endTime != ''">
AND date_format(a1.auditTime, '%Y-%m-%d') between date_format(#{startTime}, '%Y-%m-%d') and
date_format(#{endTime}, '%Y-%m-%d')
</if>
</where>
</select>
<select id="selectStatDataByTime" resultType="com.glxp.api.res.inv.IoOrderDetailStatRsponse">
select orderIdFk,
bindRlFk,

Loading…
Cancel
Save