diff --git a/src/main/java/com/glxp/api/controller/inout/IoOrderDetailResultController.java b/src/main/java/com/glxp/api/controller/inout/IoOrderDetailResultController.java index 6b447eaf1..c0cddd579 100644 --- a/src/main/java/com/glxp/api/controller/inout/IoOrderDetailResultController.java +++ b/src/main/java/com/glxp/api/controller/inout/IoOrderDetailResultController.java @@ -56,6 +56,7 @@ import javax.annotation.Resource; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import java.io.IOException; +import java.math.BigDecimal; import java.math.RoundingMode; import java.net.URLEncoder; import java.nio.charset.StandardCharsets; @@ -163,6 +164,24 @@ public class IoOrderDetailResultController extends BaseController { return ResultVOUtils.page(pageInfo); } + /** + * 查询单据仓库产品盘点明细 + * + * @param filterInvCountOrderSumResultRequest + * @return + */ + @AuthRuleAnnotation("") + @GetMapping("/udiwms/inout/resultDetail/getInvCountOrderSumList") + public BaseResponse getInvCountOrderSumList(FilterInvCountOrderSumResultRequest filterInvCountOrderSumResultRequest) { + PageInfo pageInfo = new PageInfo<>(getInvCountOrderSumResult(filterInvCountOrderSumResultRequest)); + return ResultVOUtils.page(pageInfo); + } + + private List getInvCountOrderSumResult(FilterInvCountOrderSumResultRequest filterInvCountOrderSumResultRequest) { + List list = orderDetailResultService.getInvCountOrderSumResult(filterInvCountOrderSumResultRequest); + return list; + } + private List getOrderDeptProductResult(FilterOrderDetailDeptProductResultRequest orderDetailResultRequest) { FilterOrderRequest filterOrderRequest = new FilterOrderRequest(); @@ -555,6 +574,74 @@ public class IoOrderDetailResultController extends BaseController { } + /** + * 物资盘点统计报表打印 + * + * @param filterInvCountOrderSumResultRequest + * @return + */ + @AuthRuleAnnotation("") + @PostMapping("/udiwms/inout/resultDetail/printInvCountOrderSumList") + public BaseResponse filterOrderPrintDept(@RequestBody FilterInvCountOrderSumResultRequest filterInvCountOrderSumResultRequest, HttpServletRequest request, HttpServletResponse response) throws JRException, IOException { + List ioOrderDetailResultResponseList = new ArrayList<>(); + SystemPDFTemplateEntity systemPDFTemplateEntity = systemPDFTemplateService.selectById(filterInvCountOrderSumResultRequest.getTemplateId()); + LambdaQueryWrapper qw = new LambdaQueryWrapper<>(); + qw.eq(SysPdfTemplateRelevanceBizEntity::getTemplateId,systemPDFTemplateEntity.getId()); + qw.last("limit 1"); + SysPdfTemplateRelevanceBizEntity sysPdfTemplateRelevanceBizEntity = systemPDFTemplateRelevanceBizService.getOne(qw); + + //打印单号标签 + Map data = new HashMap<>(1); + List list = new ArrayList<>(); + + SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); + String dateStr = sdf.format(new Date()); + + //按选入打印 + if (filterInvCountOrderSumResultRequest.getList() != null && filterInvCountOrderSumResultRequest.getList().size() > 0) { + ioOrderDetailResultResponseList = filterInvCountOrderSumResultRequest.getList(); + } else { + ioOrderDetailResultResponseList = orderDetailResultService.getInvCountOrderSumResult(filterInvCountOrderSumResultRequest); + } + int i = 1; + for (InvCountOrderSumResultResponse item : ioOrderDetailResultResponseList) { + + //组装数据 + Map ioOrderDetailResultData = new HashMap<>(); + ioOrderDetailResultData.put("index", String.valueOf(i)); + ioOrderDetailResultData.put("cpmctymc", item.getCpmctymc() == null ? ' ' : item.getCpmctymc()); + ioOrderDetailResultData.put("invStorageName", item.getInvStorageName() == null ? '/' : item.getInvStorageName()); + ioOrderDetailResultData.put("ggxh", item.getGgxh() == null ? '/' : item.getGgxh()); + ioOrderDetailResultData.put("measname", item.getMeasname() == null ? '/' : item.getMeasname()); + ioOrderDetailResultData.put("price", item.getPrice() == null ? "0.00" : item.getPrice()); + ioOrderDetailResultData.put("countNum", item.getCountNum() == null ? '0' : item.getCountNum()); + ioOrderDetailResultData.put("countNumPrice", item.getCountNumPrice() == null ? "0.00" : item.getCountNumPrice()); + ioOrderDetailResultData.put("invNum", item.getInvNum() == null ? '0' : item.getInvNum()); + ioOrderDetailResultData.put("invNumPrice", item.getInvNumPrice() == null ? "0.00" : item.getInvNumPrice()); + ioOrderDetailResultData.put("relNume", item.getRelNume() == null ? '0' : item.getRelNume()); + ioOrderDetailResultData.put("relNumPrice", item.getRelNumPrice() == null ? "0.00" : item.getRelNumPrice()); + + ioOrderDetailResultData.put("startAduditTime", filterInvCountOrderSumResultRequest.getStartAduditTime() == null ? ' ' : filterInvCountOrderSumResultRequest.getStartAduditTime()); + ioOrderDetailResultData.put("endAduditTime", filterInvCountOrderSumResultRequest.getEndAduditTime() == null ? ' ' : filterInvCountOrderSumResultRequest.getEndAduditTime()); + ioOrderDetailResultData.put("locInvName", filterInvCountOrderSumResultRequest.getLocInvName() == null ? ' ' : filterInvCountOrderSumResultRequest.getLocInvName()); + ioOrderDetailResultData.put("employeeName", filterInvCountOrderSumResultRequest.getEmployeeName() == null ? ' ' : filterInvCountOrderSumResultRequest.getEmployeeName()); + ioOrderDetailResultData.put("exportTime", dateStr); + + ioOrderDetailResultData.put("remark1", sysPdfTemplateRelevanceBizEntity.getRemark1() == null ? ' ' : sysPdfTemplateRelevanceBizEntity.getRemark1()); + ioOrderDetailResultData.put("remark2", sysPdfTemplateRelevanceBizEntity.getRemark2() == null ? ' ' : sysPdfTemplateRelevanceBizEntity.getRemark2()); + ioOrderDetailResultData.put("remark3", sysPdfTemplateRelevanceBizEntity.getRemark3() == null ? ' ' : sysPdfTemplateRelevanceBizEntity.getRemark3()); + list.add(ioOrderDetailResultData); + i++; + } + + + data.put("data", list); + String param = JSON.toJSONString(data); + JasperUtils.jasperReport(request, response, param, filePath + "pdf/template/" + systemPDFTemplateEntity.getPath(), "pdf"); + return ResultVOUtils.success(); + } + + /** * 仓库出入库明细打印 diff --git a/src/main/java/com/glxp/api/dao/inv/InvCountOrderMapper.java b/src/main/java/com/glxp/api/dao/inv/InvCountOrderMapper.java index a9f84cb46..9b406f455 100644 --- a/src/main/java/com/glxp/api/dao/inv/InvCountOrderMapper.java +++ b/src/main/java/com/glxp/api/dao/inv/InvCountOrderMapper.java @@ -2,7 +2,9 @@ package com.glxp.api.dao.inv; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.glxp.api.entity.inv.InvCountOrderEntity; +import com.glxp.api.req.inout.FilterInvCountOrderSumResultRequest; import com.glxp.api.req.inv.FilterInvCountOrderRequest; +import com.glxp.api.res.inout.InvCountOrderSumResultResponse; import com.glxp.api.res.inv.InvCountOrderResponse; import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Param; @@ -60,4 +62,5 @@ public interface InvCountOrderMapper extends BaseMapper { */ void deleteByOrderId(@Param("orderId") String orderId); + List getInvCountOrderSumResult(FilterInvCountOrderSumResultRequest filterInvCountOrderSumResultRequest); } diff --git a/src/main/java/com/glxp/api/req/inout/FilterInvCountOrderSumResultRequest.java b/src/main/java/com/glxp/api/req/inout/FilterInvCountOrderSumResultRequest.java new file mode 100644 index 000000000..cd444bb2d --- /dev/null +++ b/src/main/java/com/glxp/api/req/inout/FilterInvCountOrderSumResultRequest.java @@ -0,0 +1,44 @@ +package com.glxp.api.req.inout; + +import com.glxp.api.res.inout.InvCountOrderSumResultResponse; +import com.glxp.api.res.inout.IoOrderDetailDeptProductResultResponse; +import com.glxp.api.util.page.ListPageRequest; +import lombok.Data; + +import java.util.List; + +@Data +public class FilterInvCountOrderSumResultRequest 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 actions; + private List 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 List fromInvCodes; +} diff --git a/src/main/java/com/glxp/api/res/inout/InvCountOrderSumResultResponse.java b/src/main/java/com/glxp/api/res/inout/InvCountOrderSumResultResponse.java new file mode 100644 index 000000000..289ca5484 --- /dev/null +++ b/src/main/java/com/glxp/api/res/inout/InvCountOrderSumResultResponse.java @@ -0,0 +1,61 @@ +package com.glxp.api.res.inout; + +import lombok.Data; + +import java.math.BigDecimal; + +/** + * 单据扫码明细VO + */ +@Data +public class InvCountOrderSumResultResponse { + + + /** + * 产品名称 + */ + private String cpmctymc; + /** + * 类别 + */ + private String invStorageName; + /** + * 规格型号 + */ + private String ggxh; + /** + * 计量单位 + */ + private String measname; + /** + * 单价 + */ + private BigDecimal price; + /** + * 账面数量 + */ + private Integer countNum; + /** + * 账面金额 + */ + private BigDecimal countNumPrice; + + /** + * 实物数量 + */ + private Integer invNum; + /** + * 实物金额 + */ + private BigDecimal invNumPrice; + + /** + * 盈亏数量 + */ + private Integer relNume; + /** + * 盈亏金额 + */ + private BigDecimal relNumPrice; + +} diff --git a/src/main/java/com/glxp/api/service/inout/IoOrderDetailResultService.java b/src/main/java/com/glxp/api/service/inout/IoOrderDetailResultService.java index 21fed8122..a947ee40d 100644 --- a/src/main/java/com/glxp/api/service/inout/IoOrderDetailResultService.java +++ b/src/main/java/com/glxp/api/service/inout/IoOrderDetailResultService.java @@ -2,10 +2,7 @@ package com.glxp.api.service.inout; 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.FilterOrderDetailDeptProductResultRequest; -import com.glxp.api.req.inout.FilterOrderDetailDeptResultRequest; -import com.glxp.api.req.inout.FilterOrderDetailResultRequest; +import com.glxp.api.req.inout.*; import com.glxp.api.res.inout.*; import java.util.List; @@ -37,4 +34,6 @@ public interface IoOrderDetailResultService { List getOrderDeptSupResult(FilterOrderDetailDeptResultRequest orderDetailResultRequest); List getOrderDeptProductResult(FilterOrderDetailDeptProductResultRequest orderDetailResultRequest); + + List getInvCountOrderSumResult(FilterInvCountOrderSumResultRequest filterInvCountOrderSumResultRequest); } diff --git a/src/main/java/com/glxp/api/service/inout/impl/IoOrderDetailResultServiceImpl.java b/src/main/java/com/glxp/api/service/inout/impl/IoOrderDetailResultServiceImpl.java index 7edac8b3d..a86fdf5cd 100644 --- a/src/main/java/com/glxp/api/service/inout/impl/IoOrderDetailResultServiceImpl.java +++ b/src/main/java/com/glxp/api/service/inout/impl/IoOrderDetailResultServiceImpl.java @@ -5,13 +5,11 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.github.pagehelper.PageHelper; import com.glxp.api.dao.auth.InvWarehouseDao; import com.glxp.api.dao.inout.IoOrderDetailResultDao; +import com.glxp.api.dao.inv.InvCountOrderMapper; import com.glxp.api.entity.inout.IoOrderDetailCodeEntity; import com.glxp.api.entity.inout.IoOrderDetailResultEntity; import com.glxp.api.req.auth.FilterInvSubWarehouseRequest; -import com.glxp.api.req.inout.CptTraceRequest; -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.req.inout.*; import com.glxp.api.res.auth.InvSubWarehouseResponse; import com.glxp.api.res.inout.*; import com.glxp.api.service.inout.IoOrderDetailResultService; @@ -29,6 +27,8 @@ public class IoOrderDetailResultServiceImpl implements IoOrderDetailResultServic @Resource IoOrderDetailResultDao orderDetailResultDao; + @Resource + InvCountOrderMapper invCountOrderMapper; @Override public List findByOrderId(String orderId) { @@ -139,4 +139,15 @@ public class IoOrderDetailResultServiceImpl implements IoOrderDetailResultServic } return orderDetailResultDao.filterOrderDeptProductList(orderDetailResultRequest); } + + @Override + public List getInvCountOrderSumResult(FilterInvCountOrderSumResultRequest filterInvCountOrderSumResultRequest) { + if (null == filterInvCountOrderSumResultRequest) { + return Collections.emptyList(); + } + if (null != filterInvCountOrderSumResultRequest.getPage() && null != filterInvCountOrderSumResultRequest.getLimit()) { + PageHelper.offsetPage((filterInvCountOrderSumResultRequest.getPage() - 1) * filterInvCountOrderSumResultRequest.getLimit(), filterInvCountOrderSumResultRequest.getLimit()); + } + return invCountOrderMapper.getInvCountOrderSumResult(filterInvCountOrderSumResultRequest); + } } diff --git a/src/main/resources/mybatis/mapper/inv/InvCountOrderMapper.xml b/src/main/resources/mybatis/mapper/inv/InvCountOrderMapper.xml index c01e21ea2..c170ecba6 100644 --- a/src/main/resources/mybatis/mapper/inv/InvCountOrderMapper.xml +++ b/src/main/resources/mybatis/mapper/inv/InvCountOrderMapper.xml @@ -106,4 +106,46 @@ from inv_count_order where orderId = #{orderId} + + +