feat: 药房上货推荐单

dev_fifo_z
chenhc 6 months ago
parent c2fe09ea82
commit bcd25d976a

@ -1,6 +1,9 @@
package com.glxp.api.controller.auth;
import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.date.DateUtil;
import cn.hutool.core.util.StrUtil;
import com.alibaba.excel.EasyExcel;
import com.alibaba.fastjson.JSON;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.github.pagehelper.PageInfo;
@ -15,8 +18,12 @@ import com.glxp.api.entity.system.SysPdfTemplateRelevanceLabelEntity;
import com.glxp.api.entity.system.SystemPDFTemplateEntity;
import com.glxp.api.req.basic.SysWorkplaceFreightRequest;
import com.glxp.api.req.basic.SysWorkplaceQueueRequest;
import com.glxp.api.req.inout.FilterOrderDetailResultRequest;
import com.glxp.api.res.PageSimpleResponse;
import com.glxp.api.res.basic.*;
import com.glxp.api.res.inout.IoOrderDetailResultResponse;
import com.glxp.api.res.inout.IoOrderDetailVo;
import com.glxp.api.res.inout.IoSplitInvResponse;
import com.glxp.api.service.basic.SysWorkplaceFreightService;
import com.glxp.api.service.basic.SysWorkplaceQueueService;
import com.glxp.api.service.system.SystemPDFModuleService;
@ -32,6 +39,9 @@ import org.springframework.web.bind.annotation.RestController;
import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.net.URLEncoder;
import java.nio.charset.StandardCharsets;
import java.util.*;
/**

@ -1,6 +1,9 @@
package com.glxp.api.controller.inout;
import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.date.DateUtil;
import cn.hutool.core.util.StrUtil;
import com.alibaba.excel.EasyExcel;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.github.pagehelper.PageInfo;
import com.glxp.api.common.enums.ResultEnum;
@ -13,9 +16,13 @@ import com.glxp.api.entity.basic.SysWorkplaceDocumentEntity;
import com.glxp.api.entity.basic.SysWorkplacePutRel;
import com.glxp.api.entity.inout.IoSplitFifoCodeEntity;
import com.glxp.api.entity.inout.IoSplitFifoInv;
import com.glxp.api.req.basic.SysWorkplaceFreightRequest;
import com.glxp.api.req.inout.IoSplitFifoInvRequest;
import com.glxp.api.res.PageSimpleResponse;
import com.glxp.api.res.basic.SysWorkplaceFreightViewResponse;
import com.glxp.api.res.inout.IoOrderDetailVo;
import com.glxp.api.res.inout.IoSplitInvResponse;
import com.glxp.api.res.inout.IoSplitInvViewResponse;
import com.glxp.api.service.auth.SysWorkplaceService;
import com.glxp.api.service.basic.SysWorkplaceDocumentService;
import com.glxp.api.service.inout.IoSplitFifoCodeService;
@ -29,6 +36,11 @@ import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RestController;
import javax.annotation.Resource;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.net.URLEncoder;
import java.nio.charset.StandardCharsets;
import java.util.Date;
import java.util.List;
@Slf4j
@ -116,4 +128,23 @@ public class IoSplitFifoInvController extends BaseController {
return ResultVOUtils.success(codeList);
}
@GetMapping("/udiwms/ioSplit/inv/exportExcel")
public void exportExcel(IoSplitFifoInvRequest ioSplitFifoInvRequest, HttpServletResponse response) throws IOException {
// 模拟数据库获取数据
ioSplitFifoInvRequest.setPage(null);
ioSplitFifoInvRequest.setLimit(null);
List<IoSplitInvResponse> list = splitFifoInvService.filterList(ioSplitFifoInvRequest);
List<IoSplitInvViewResponse> splitCodeEntities = BeanUtil.copyToList(list, IoSplitInvViewResponse.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(), IoSplitInvViewResponse.class).sheet().doWrite(splitCodeEntities);
}
}

@ -1,5 +1,6 @@
package com.glxp.api.res.inout;
import com.alibaba.excel.annotation.ExcelProperty;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
@ -122,7 +123,9 @@ public class IoSplitInvResponse {
//产品信息----------------------------start----------------------
private String supName;
private String workPlaceName;
private String cpmctymc;
private String ggxh;
private String ylqxzcrbarmc;
private String manufactory;
@ -132,13 +135,23 @@ public class IoSplitInvResponse {
private String zxxsdycpbs;
private String bzgg;
private String useLevelUnit;
private String nameCode;
private Integer remindState;
private String busName;
private Integer availableCount;
private Integer monopoly;
private Integer queueRemindCount;
private Integer row;
private Integer maxDrugCount;
private String workPlaceQueueCodeName;
private Boolean queueEnableRemind;
private Integer suggestOutCount;
}

@ -0,0 +1,60 @@
package com.glxp.api.res.inout;
import com.alibaba.excel.annotation.ExcelProperty;
import com.alibaba.excel.annotation.write.style.ColumnWidth;
import com.alibaba.excel.annotation.write.style.ContentFontStyle;
import com.alibaba.excel.annotation.write.style.ContentStyle;
import lombok.Data;
import java.util.Date;
@Data
public class IoSplitInvViewResponse {
/**
*
*/
@ExcelProperty(value = "剩余数量", index = 6)
@ColumnWidth(30)
private Integer reCount;
/**
*
*/
@ExcelProperty(value = "出货槽编码", index = 1)
@ColumnWidth(30)
private String workPlaceQueueCode;
@ExcelProperty(value = "产品通用名", index = 3)
@ColumnWidth(30)
private String cpmctymc;
@ExcelProperty(value = "规格型号", index = 5)
@ColumnWidth(30)
private String ggxh;
@ExcelProperty(value = "产品标识", index = 4)
@ColumnWidth(30)
private String nameCode;
@ExcelProperty(value = "区域编码", index = 0)
@ColumnWidth(30)
private Integer row;
@ExcelProperty(value = "最大存药数量", index = 7)
@ColumnWidth(30)
private Integer maxDrugCount;
@ExcelProperty(value = "出货槽名称", index = 2)
@ColumnWidth(30)
private String workPlaceQueueCodeName;
@ExcelProperty(value = "推荐上货数量", index = 8)
@ColumnWidth(30)
private Integer suggestOutCount;
}

@ -30,7 +30,7 @@
<select id="filterList" parameterType="com.glxp.api.req.inout.IoSplitFifoInvRequest" resultType="com.glxp.api.res.inout.IoSplitInvResponse">
select isfi.*,
bp.cpmctymc,
bp.ggxh,
CASE WHEN bp.ggxh IS NULL THEN bp.bzgg ELSE bp.ggxh END AS ggxh,
bp.bzgg,
bu.useLevelUnit,
bp.ylqxzcrbarmc,
@ -46,10 +46,14 @@
swd.monopoly,
swq.name as workPlaceQueueCodeName,
swq.enableRemind as queueEnableRemind,
swq.remindCount as queueRemindCount
swq.remindCount as queueRemindCount,
swq.maxDrugCount as maxDrugCount,
swf.row,
(ifnull(swq.maxDrugCount,0) - ifnull(isfi.reCount,0)) as suggestOutCount
from io_split_fifo_inv isfi
LEFT JOIN basic_udirel bu ON bu.id = isfi.relId
LEFT JOIN sys_workplace_queue swq ON swq.code = isfi.workPlaceQueueCode
LEFT JOIN sys_workplace_freight swf ON swq.freightCode = swf.code
LEFT JOIN basic_products bp ON bu.uuid = bp.uuid
left join basic_corp bc on bc.erpId = isfi.supId
left join sys_workplace sw on sw.workplaceId = isfi.workPlaceCode
@ -117,5 +121,6 @@
</if>
</where>
GROUP BY id
order by swf.row,isfi.workPlaceQueueCode
</select>
</mapper>

Loading…
Cancel
Save