feat: 科室出库统计

lh_dev_fifo
chenhc 7 months ago
parent 005222859d
commit 01225469b4

@ -163,6 +163,18 @@ public class IoOrderDetailResultController extends BaseController {
PageInfo<IoOrderDetailDeptProductResultResponse> pageInfo = new PageInfo<>(getOrderDeptProductResult(orderDetailResultRequest)); PageInfo<IoOrderDetailDeptProductResultResponse> pageInfo = new PageInfo<>(getOrderDeptProductResult(orderDetailResultRequest));
return ResultVOUtils.page(pageInfo); return ResultVOUtils.page(pageInfo);
} }
/**
*
*
* @param filterOrderDetailDeptProductOutResultRequest
* @return
*/
@AuthRuleAnnotation("")
@GetMapping("/udiwms/inout/resultDetail/getResultOrderProductOutList")
public BaseResponse getResultOrderProductOutList(FilterOrderDetailDeptProductOutResultRequest filterOrderDetailDeptProductOutResultRequest) {
PageInfo<IoOrderDetailDeptProductResultResponse> pageInfo = new PageInfo<>(getOrderDeptProductOutResult(filterOrderDetailDeptProductOutResultRequest));
return ResultVOUtils.page(pageInfo);
}
/** /**
* *
@ -198,6 +210,41 @@ public class IoOrderDetailResultController extends BaseController {
} }
private List<IoOrderDetailDeptProductResultResponse> getOrderDeptProductOutResult(FilterOrderDetailDeptProductOutResultRequest filterOrderDetailDeptProductOutResultRequest) {
List<IoOrderDetailDeptProductResultResponse> list = orderDetailResultService.getOrderDeptProductOutResult(filterOrderDetailDeptProductOutResultRequest);
return list;
}
@PostMapping("/udiwms/inout/orderDeptProductOut/selectExportExcel")
public void orderDeptProductOutSelectExportExcel(@RequestBody FilterOrderDetailDeptProductOutResultRequest filterOrderDetailDeptProductOutResultRequest, HttpServletResponse response) throws IOException {
// 模拟数据库获取数据
List<IoOrderDetailDeptProductResultResponse> list = filterOrderDetailDeptProductOutResultRequest.getList();
List<IoOrdeProductOutVo> orderDetailVos = BeanUtil.copyToList(list, IoOrdeProductOutVo.class);
response.setCharacterEncoding(StandardCharsets.UTF_8.name());
response.setHeader("content-Type", "application/vnd.ms-excel");
response.setHeader("Content-Disposition",
"attachment;filename=" + URLEncoder.encode("科室出库统计" + DateUtil.format(new Date(), "yyyy-MM-dd") + ".xlsx", StandardCharsets.UTF_8.name()));
EasyExcel.write(response.getOutputStream(), IoOrdeProductOutVo.class).sheet().doWrite(orderDetailVos);
}
@GetMapping("/udiwms/inout/orderDeptProductOut/exportExcel")
public void orderDeptProductOutExportTemplate(FilterOrderDetailDeptProductOutResultRequest filterOrderDetailDeptProductOutResultRequest, HttpServletResponse response) throws IOException {
// 模拟数据库获取数据
List<IoOrderDetailDeptProductResultResponse> list = getOrderDeptProductOutResult(filterOrderDetailDeptProductOutResultRequest);
List<IoOrdeProductOutVo> orderDetailVos = BeanUtil.copyToList(list, IoOrdeProductOutVo.class);
response.setCharacterEncoding(StandardCharsets.UTF_8.name());
response.setHeader("content-Type", "application/vnd.ms-excel");
response.setHeader("Content-Disposition",
"attachment;filename=" + URLEncoder.encode("科室出库统计" + DateUtil.format(new Date(), "yyyy-MM-dd") + ".xlsx", StandardCharsets.UTF_8.name()));
EasyExcel.write(response.getOutputStream(), IoOrdeProductOutVo.class).sheet().doWrite(orderDetailVos);
}
public List<IoOrderDetailResultResponse> getOrderResult(FilterOrderDetailResultRequest orderDetailResultRequest) { public List<IoOrderDetailResultResponse> getOrderResult(FilterOrderDetailResultRequest orderDetailResultRequest) {
if (CollUtil.isNotEmpty(orderDetailResultRequest.getList())) { if (CollUtil.isNotEmpty(orderDetailResultRequest.getList())) {
return orderDetailResultRequest.getList(); return orderDetailResultRequest.getList();

@ -2,10 +2,7 @@ package com.glxp.api.dao.inout;
import com.glxp.api.dao.BaseMapperPlus; import com.glxp.api.dao.BaseMapperPlus;
import com.glxp.api.entity.inout.IoOrderDetailResultEntity; import com.glxp.api.entity.inout.IoOrderDetailResultEntity;
import com.glxp.api.req.inout.CptTraceRequest; import com.glxp.api.req.inout.*;
import com.glxp.api.req.inout.FilterOrderDetailDeptProductResultRequest;
import com.glxp.api.req.inout.FilterOrderDetailDeptResultRequest;
import com.glxp.api.req.inout.FilterOrderDetailResultRequest;
import com.glxp.api.res.inout.*; import com.glxp.api.res.inout.*;
import com.glxp.api.res.inv.IoOrderDetailStatRsponse; import com.glxp.api.res.inv.IoOrderDetailStatRsponse;
import io.lettuce.core.dynamic.annotation.Param; import io.lettuce.core.dynamic.annotation.Param;
@ -50,4 +47,6 @@ public interface IoOrderDetailResultDao extends BaseMapperPlus<IoOrderDetailBizD
List<IoOrderDetailDeptResultResponse> filterOrderDeptSupList(FilterOrderDetailDeptResultRequest orderDetailResultRequest); List<IoOrderDetailDeptResultResponse> filterOrderDeptSupList(FilterOrderDetailDeptResultRequest orderDetailResultRequest);
List<IoOrderDetailDeptProductResultResponse> filterOrderDeptProductList(FilterOrderDetailDeptProductResultRequest orderDetailResultRequest); List<IoOrderDetailDeptProductResultResponse> filterOrderDeptProductList(FilterOrderDetailDeptProductResultRequest orderDetailResultRequest);
List<IoOrderDetailDeptProductResultResponse> filterOrderDeptProductOutList(FilterOrderDetailDeptProductOutResultRequest orderDetailResultRequest);
} }

@ -0,0 +1,50 @@
package com.glxp.api.req.inout;
import com.glxp.api.res.inout.IoOrderDetailDeptProductResultResponse;
import com.glxp.api.util.page.ListPageRequest;
import lombok.Data;
import java.util.List;
@Data
public class FilterOrderDetailDeptProductOutResultRequest extends ListPageRequest {
private String startAduditTime; //起始日期
private String endAduditTime; //结束日期
private String fromCorp;
private String invCode;
private String actionType;
private String manufacturer;
private String zczbhhzbapzbh;
private Boolean isStack;
private String invoiceEncode;
private String templateId;
private List<String> actions;
private List<IoOrderDetailDeptProductResultResponse> list;
private String action;
private String mainAction;
private Integer inoutPrintStatus;
private String invName;
private String employeeName;
private String fromInvName;
private String locInvName;
private String confirmStarTime; //发票确认起始日期
private String confirmEndTime; //发票确认结束日期
private String corpName;//供应商名字
private String fromInvCode;//供应商名字
private Boolean groupBuy; //是否集采产品
private Integer hcType;
private Integer corpType;
private List<String> fromInvCodes;
private String cpmctymc;
private String nameCode;
private String ggxh;
private String batchNo;
}

@ -0,0 +1,46 @@
package com.glxp.api.res.inout;
import com.alibaba.excel.annotation.ExcelProperty;
import lombok.Data;
import java.util.Date;
@Data
public class IoOrdeProductOutVo {
/**
* DI
*/
@ExcelProperty(value = "产品标识", index = 0)
private String nameCode;
/**
*
*/
@ExcelProperty(value = "产品名称", index = 1)
private String coName;
/**
*
*/
@ExcelProperty(value = "规格型号", index = 2)
private String spec;
/**
*
*/
@ExcelProperty(value = "批次", index = 3)
private String batchNo;
/**
*
*/
@ExcelProperty(value = "出库数量", index = 4)
private String count;
}

@ -28,4 +28,9 @@ public class IoOrderDetailDeptProductResultResponse {
private Integer count; private Integer count;
private BigDecimal amount; private BigDecimal amount;
private String cpmctymc;
private String batchNo;
private String ggxh;
} }

@ -36,4 +36,6 @@ public interface IoOrderDetailResultService {
List<IoOrderDetailDeptProductResultResponse> getOrderDeptProductResult(FilterOrderDetailDeptProductResultRequest orderDetailResultRequest); List<IoOrderDetailDeptProductResultResponse> getOrderDeptProductResult(FilterOrderDetailDeptProductResultRequest orderDetailResultRequest);
List<InvCountOrderSumResultResponse> getInvCountOrderSumResult(FilterInvCountOrderSumResultRequest filterInvCountOrderSumResultRequest); List<InvCountOrderSumResultResponse> getInvCountOrderSumResult(FilterInvCountOrderSumResultRequest filterInvCountOrderSumResultRequest);
List<IoOrderDetailDeptProductResultResponse> getOrderDeptProductOutResult(FilterOrderDetailDeptProductOutResultRequest filterOrderDetailDeptProductOutResultRequest);
} }

@ -150,4 +150,21 @@ public class IoOrderDetailResultServiceImpl implements IoOrderDetailResultServic
} }
return invCountOrderMapper.getInvCountOrderSumResult(filterInvCountOrderSumResultRequest); return invCountOrderMapper.getInvCountOrderSumResult(filterInvCountOrderSumResultRequest);
} }
@Override
public List<IoOrderDetailDeptProductResultResponse> getOrderDeptProductOutResult(FilterOrderDetailDeptProductOutResultRequest orderDetailResultRequest) {
if (null == orderDetailResultRequest) {
return Collections.emptyList();
}
FilterInvSubWarehouseRequest filterInvSubWarehouseRequest = new FilterInvSubWarehouseRequest();
filterInvSubWarehouseRequest.setLyInvType(true);
List<InvSubWarehouseResponse> data = invWarehouseDao.filterInvSubWarehouseResponse(filterInvSubWarehouseRequest);
List<String> collect = data.stream().map(InvSubWarehouseResponse::getCode).collect(Collectors.toList());
orderDetailResultRequest.setFromInvCodes(collect);
if (null != orderDetailResultRequest.getPage() && null != orderDetailResultRequest.getLimit()) {
PageHelper.offsetPage((orderDetailResultRequest.getPage() - 1) * orderDetailResultRequest.getLimit(), orderDetailResultRequest.getLimit());
}
return orderDetailResultDao.filterOrderDeptProductOutList(orderDetailResultRequest);
}
} }

@ -331,6 +331,66 @@ FROM
spec spec
</select> </select>
<select id="filterOrderDeptProductOutList" resultType="com.glxp.api.res.inout.IoOrderDetailDeptProductResultResponse">
SELECT
nameCode,cpmctymc as coName,batchNo,ggxh as spec,
SUM( outCount ) AS count
FROM
(
select ipd.nameCode,bp.cpmctymc,ipd.batchNo,bp.ggxh,ipd.outCount
from inv_product_detail ipd
inner join basic_udirel on ipd.relId = basic_udirel.id
inner join basic_products bp on basic_udirel.uuid = bp.uuid
inner join io_order io on io.billNo = ipd.orderId
left join basic_corp on ipd.supId = basic_corp.erpId
<where>
ipd.outCount > 0
<if test="nameCode != null and nameCode != ''">
AND ipd.nameCode like concat('%', #{nameCode}, '%')
</if>
<if test="cpmctymc != null and cpmctymc != ''">
AND bp.cpmctymc like concat('%', #{cpmctymc}, '%')
</if>
<if test="batchNo != null and batchNo != ''">
AND ipd.batchNo like concat('%', #{batchNo}, '%')
</if>
<if test="ggxh != null and ggxh != ''">
AND bp.ggxh like concat('%', #{ggxh}, '%')
</if>
<if test="corpType != null">
AND basic_corp.corpType = #{corpType}
</if>
<if test="fromCorp != null and fromCorp != ''">
AND ipd.deptCode = #{fromCorp}
</if>
<if test="action != null and action != ''">
AND io.action = #{action}
</if>
<if test="invCode != null and invCode != ''">
AND ipd.invCode = #{invCode}
</if>
<if test="hcType != '' and hcType != null">
AND basic_udirel.hcType = #{hcType}
</if>
<if test="startAduditTime != null and startAduditTime != '' and endAduditTime != null and endAduditTime != ''">
AND date_format(io.auditTime, '%Y-%m-%d') between date_format(#{startAduditTime}, '%Y-%m-%d') and
date_format(#{endAduditTime}, '%Y-%m-%d')
</if>
<if test="actions != null and actions.size() != 0">
AND io.`action` in
<foreach collection="actions" index="index" item="item" open="(" close=")" separator=",">
#{item}
</foreach>
</if>
</where>
order by ipd.updateTime desc
) t1
GROUP BY nameCode,cpmctymc,batchNo,ggxh
</select>
<select id="selectStatDataByTime" resultType="com.glxp.api.res.inv.IoOrderDetailStatRsponse"> <select id="selectStatDataByTime" resultType="com.glxp.api.res.inv.IoOrderDetailStatRsponse">
select orderIdFk, select orderIdFk,
bindRlFk, bindRlFk,

@ -3974,3 +3974,22 @@ CALL Pro_Temp_ColumnWork('io_order_detail_code', 'checkFileName',
CALL Pro_Temp_ColumnWork('io_order_detail_code', 'checkColdFileName', CALL Pro_Temp_ColumnWork('io_order_detail_code', 'checkColdFileName',
'varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT ''冷链报告名称''', 'varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT ''冷链报告名称''',
1); 1);
INSERT ignore INTO `auth_menu`
(`menu_id`, `menu_name`, `parent_id`, `order_num`, `path`, `component`, `query_param`, `is_frame`, `is_cache`, `menu_type`, `visible`, `status`, `perms`, `icon`, `create_by`,
`create_time`, `update_by`, `update_time`, `remark`)
VALUES
(5234, '科室出库统计', 1683, 0, 'supInoutSearchOrderProductOut', 'inventory/supInoutSearchOrderProductOut', '', 1, 0, 'C', '0', '0', NULL, NULL, '超级用户', '2023-03-25 19:36:26',
NULL, NULL, NULL);
INSERT ignore INTO `sys_custom_config_detail` (`id`, `configId`, `type`, `isShow`, `columnName`, `columnDesc`, `columnType`, `colorRule`, `sort`, `lableRule`, `width`, `tooltip`,
`buttonRule`, `number`, `lineNumber`, `clickFuc`, `size`, `style`, `disabled`, `checkRules`, `inputType`, `disabledFuc`, `expression`, `dataFuc`, `isShowXx`)
VALUES (46026, 102, '1', 1, 'profitNum', '盘盈数量', 'text', NULL, NULL, NULL, 102, NULL, NULL, 127, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
INSERT ignore INTO `sys_custom_config_detail` (`id`, `configId`, `type`, `isShow`, `columnName`, `columnDesc`, `columnType`, `colorRule`, `sort`, `lableRule`, `width`, `tooltip`,
`buttonRule`, `number`, `lineNumber`, `clickFuc`, `size`, `style`, `disabled`, `checkRules`, `inputType`, `disabledFuc`, `expression`, `dataFuc`, `isShowXx`)
VALUES (46027, 102, '1', 1, 'lossNum', '盘亏数量', 'text', NULL, NULL, NULL, 102, NULL, NULL, 127, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);

Loading…
Cancel
Save