fix:物资往来统计

lh_dev_fifo
chenhc 8 months ago
parent 669b81a2d7
commit a44e4b402d

@ -148,6 +148,34 @@ public class IoOrderDetailResultController extends BaseController {
return ResultVOUtils.page(pageInfo);
}
/**
*
*
* @param orderDetailResultRequest
* @return
*/
@AuthRuleAnnotation("")
@GetMapping("/udiwms/inout/resultDetail/getResultOrderProductList")
public BaseResponse getResultOrderProductList(FilterOrderDetailDeptProductResultRequest orderDetailResultRequest) {
PageInfo<IoOrderDetailDeptProductResultResponse> pageInfo = new PageInfo<>(getOrderDeptProductResult(orderDetailResultRequest));
return ResultVOUtils.page(pageInfo);
}
private List<IoOrderDetailDeptProductResultResponse> getOrderDeptProductResult(FilterOrderDetailDeptProductResultRequest orderDetailResultRequest) {
FilterOrderRequest filterOrderRequest = new FilterOrderRequest();
filterOrderRequest.setVueType(orderDetailResultRequest.getActionType());
List<String> actions = orderService.setActions(filterOrderRequest);
if (CollUtil.isEmpty(actions)) {
return Collections.emptyList();
}
orderDetailResultRequest.setActions(actions);
List<IoOrderDetailDeptProductResultResponse> list = orderDetailResultService.getOrderDeptProductResult(orderDetailResultRequest);
return list;
}
public List<IoOrderDetailResultResponse> getOrderResult(FilterOrderDetailResultRequest orderDetailResultRequest) {
if (CollUtil.isNotEmpty(orderDetailResultRequest.getList())) {
@ -597,6 +625,79 @@ public class IoOrderDetailResultController extends BaseController {
}
/**
*
*
* @param filterOrderDetailDeptResultRequest
* @return
*/
@AuthRuleAnnotation("")
@PostMapping("/udiwms/inout/resultDetail/filterOrderPrintDeptProduct")
public BaseResponse filterOrderPrintDeptProduct(@RequestBody FilterOrderDetailDeptProductResultRequest filterOrderDetailDeptResultRequest, HttpServletRequest request, HttpServletResponse response) throws JRException, IOException {
List<IoOrderDetailDeptProductResultResponse> ioOrderDetailResultResponseList = new ArrayList<>();
SystemPDFTemplateEntity systemPDFTemplateEntity = systemPDFTemplateService.selectById(filterOrderDetailDeptResultRequest.getTemplateId());
LambdaQueryWrapper<SysPdfTemplateRelevanceBizEntity> qw = new LambdaQueryWrapper<>();
qw.eq(SysPdfTemplateRelevanceBizEntity::getTemplateId,systemPDFTemplateEntity.getId());
qw.last("limit 1");
SysPdfTemplateRelevanceBizEntity sysPdfTemplateRelevanceBizEntity = systemPDFTemplateRelevanceBizService.getOne(qw);
//打印单号标签
Map<String, Object> data = new HashMap<>(1);
List<Object> list = new ArrayList<>();
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String dateStr = sdf.format(new Date());
//按选入打印
if (filterOrderDetailDeptResultRequest.getList() != null && filterOrderDetailDeptResultRequest.getList().size() > 0) {
ioOrderDetailResultResponseList = filterOrderDetailDeptResultRequest.getList();
} else {
//按查询打印
FilterOrderRequest filterOrderRequest = new FilterOrderRequest();
filterOrderRequest.setVueType(filterOrderDetailDeptResultRequest.getActionType());
List<String> actions = orderService.setActions(filterOrderRequest);
if (CollUtil.isEmpty(actions)) {
return ResultVOUtils.success("");
}
filterOrderDetailDeptResultRequest.setActions(actions);
ioOrderDetailResultResponseList = orderDetailResultService.getOrderDeptProductResult(filterOrderDetailDeptResultRequest);
}
int i = 1;
for (IoOrderDetailDeptProductResultResponse item : ioOrderDetailResultResponseList) {
//组装数据
Map<String, Object> ioOrderDetailResultData = new HashMap<>();
ioOrderDetailResultData.put("index", String.valueOf(i));
ioOrderDetailResultData.put("amount", item.getAmount() == null ? null : item.getAmount());
ioOrderDetailResultData.put("count", item.getCount());
ioOrderDetailResultData.put("fromInvCode", item.getFromInvCode() == null ? ' ' : item.getFromInvCode());
ioOrderDetailResultData.put("fromInvName", item.getFromInvName() == null ? ' ' : item.getFromInvName());
ioOrderDetailResultData.put("nameCode", item.getNameCode() == null ? ' ' : item.getNameCode());
ioOrderDetailResultData.put("coName", item.getCoName() == null ? ' ' : item.getCoName());
ioOrderDetailResultData.put("spec", item.getSpec() == null ? ' ' : item.getSpec());
ioOrderDetailResultData.put("startAduditTime", filterOrderDetailDeptResultRequest.getStartAduditTime() == null ? ' ' : filterOrderDetailDeptResultRequest.getStartAduditTime());
ioOrderDetailResultData.put("endAduditTime", filterOrderDetailDeptResultRequest.getEndAduditTime() == null ? ' ' : filterOrderDetailDeptResultRequest.getEndAduditTime());
ioOrderDetailResultData.put("locInvName", filterOrderDetailDeptResultRequest.getLocInvName() == null ? ' ' : filterOrderDetailDeptResultRequest.getLocInvName());
ioOrderDetailResultData.put("employeeName", filterOrderDetailDeptResultRequest.getEmployeeName() == null ? ' ' : filterOrderDetailDeptResultRequest.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();
}
/**
*

@ -3,12 +3,10 @@ package com.glxp.api.dao.inout;
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.FilterOrderDetailDeptProductResultRequest;
import com.glxp.api.req.inout.FilterOrderDetailDeptResultRequest;
import com.glxp.api.req.inout.FilterOrderDetailResultRequest;
import com.glxp.api.res.inout.CptTraceOrderResponse;
import com.glxp.api.res.inout.IoExOrderDetailResultResponse;
import com.glxp.api.res.inout.IoOrderDetailDeptResultResponse;
import com.glxp.api.res.inout.IoOrderDetailResultResponse;
import com.glxp.api.res.inout.*;
import com.glxp.api.res.inv.IoOrderDetailStatRsponse;
import io.lettuce.core.dynamic.annotation.Param;
@ -50,4 +48,6 @@ public interface IoOrderDetailResultDao extends BaseMapperPlus<IoOrderDetailBizD
List<IoOrderDetailDeptResultResponse> filterOrderDeptList(FilterOrderDetailDeptResultRequest orderDetailResultRequest);
List<IoOrderDetailDeptResultResponse> filterOrderDeptSupList(FilterOrderDetailDeptResultRequest orderDetailResultRequest);
List<IoOrderDetailDeptProductResultResponse> filterOrderDeptProductList(FilterOrderDetailDeptProductResultRequest orderDetailResultRequest);
}

@ -0,0 +1,42 @@
package com.glxp.api.req.inout;
import com.glxp.api.res.inout.IoOrderDetailDeptProductResultResponse;
import com.glxp.api.res.inout.IoOrderDetailDeptResultResponse;
import com.glxp.api.util.page.ListPageRequest;
import lombok.Data;
import java.util.List;
@Data
public class FilterOrderDetailDeptProductResultRequest 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;
}

@ -0,0 +1,31 @@
package com.glxp.api.res.inout;
import lombok.Data;
import java.math.BigDecimal;
/**
* VO
*/
@Data
public class IoOrderDetailDeptProductResultResponse {
/**
*
*/
private String fromInvCode;
private String nameCode;
private String coName;
private String spec;
/**
*
*/
private String fromInvName;
private Integer count;
private BigDecimal amount;
}

@ -3,12 +3,10 @@ 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.res.inout.CptTraceOrderResponse;
import com.glxp.api.res.inout.IoExOrderDetailResultResponse;
import com.glxp.api.res.inout.IoOrderDetailDeptResultResponse;
import com.glxp.api.res.inout.IoOrderDetailResultResponse;
import com.glxp.api.res.inout.*;
import java.util.List;
@ -37,4 +35,6 @@ public interface IoOrderDetailResultService {
List<IoOrderDetailDeptResultResponse> getOrderDeptResult(FilterOrderDetailDeptResultRequest orderDetailResultRequest);
List<IoOrderDetailDeptResultResponse> getOrderDeptSupResult(FilterOrderDetailDeptResultRequest orderDetailResultRequest);
List<IoOrderDetailDeptProductResultResponse> getOrderDeptProductResult(FilterOrderDetailDeptProductResultRequest orderDetailResultRequest);
}

@ -7,12 +7,10 @@ import com.glxp.api.dao.inout.IoOrderDetailResultDao;
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.res.inout.CptTraceOrderResponse;
import com.glxp.api.res.inout.IoExOrderDetailResultResponse;
import com.glxp.api.res.inout.IoOrderDetailDeptResultResponse;
import com.glxp.api.res.inout.IoOrderDetailResultResponse;
import com.glxp.api.res.inout.*;
import com.glxp.api.service.inout.IoOrderDetailResultService;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
@ -117,4 +115,15 @@ public class IoOrderDetailResultServiceImpl implements IoOrderDetailResultServic
}
return orderDetailResultDao.filterOrderDeptSupList(orderDetailResultRequest);
}
@Override
public List<IoOrderDetailDeptProductResultResponse> getOrderDeptProductResult(FilterOrderDetailDeptProductResultRequest orderDetailResultRequest) {
if (null == orderDetailResultRequest) {
return Collections.emptyList();
}
if (null != orderDetailResultRequest.getPage() && null != orderDetailResultRequest.getLimit()) {
PageHelper.offsetPage((orderDetailResultRequest.getPage() - 1) * orderDetailResultRequest.getLimit(), orderDetailResultRequest.getLimit());
}
return orderDetailResultDao.filterOrderDeptProductList(orderDetailResultRequest);
}
}

@ -246,6 +246,86 @@ FROM
fromCorpName
</select>
<select id="filterOrderDeptProductList" resultType="com.glxp.api.res.inout.IoOrderDetailDeptProductResultResponse">
SELECT
fromInvCode,
fromInvName,
nameCode,
coName,
spec,
SUM( amount ) AS amount,
SUM( count ) AS count
FROM
(
SELECT
aw.code as fromInvCode,
aw.name as fromInvName,
SUM(CASE WHEN a1.mainAction = 'WareHouseOut' THEN COALESCE(a2.price,0) * COALESCE(a2.count,0)
WHEN a1.mainAction = 'WareHouseIn' THEN (COALESCE(a2.price,0) * COALESCE(a2.count,0))
ELSE 0
END) AS amount,
SUM(CASE WHEN a1.mainAction = 'WareHouseOut' THEN COALESCE(a2.count,0)
WHEN a1.mainAction = 'WareHouseIn' THEN (COALESCE(a2.count,0))
ELSE 0
END) AS `count`,
a2.nameCode,
a2.coName,
a2.spec
FROM auth_warehouse aw
LEFT JOIN io_order a1 ON a1.invCode = aw.CODE
LEFT JOIN io_order_detail_result a2 ON a1.billNo = a2.orderIdFk
LEFT JOIN basic_udirel bu on bu.id = a2.bindRlFk
<where>
a1.status = 7
and a1.fromInvCode = 1000000
<if test="invCode != null and invCode != ''">
AND a1.invCode = #{invCode}
</if>
<if test="hcType != null and hcType != ''">
AND bu.hcType = #{hcType}
</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="fromCorp != null and fromCorp != ''">
AND a1.fromCorp = #{fromCorp}
</if>
<if test="fromInvCode != null and fromInvCode != ''">
AND a1.fromInvCode = #{fromInvCode}
</if>
<if test="startAduditTime != null and startAduditTime != '' and endAduditTime != null and endAduditTime != ''">
AND date_format(a1.auditTime, '%Y-%m-%d') between date_format(#{startAduditTime}, '%Y-%m-%d') and
date_format(#{endAduditTime}, '%Y-%m-%d')
</if>
<if test="confirmStarTime != null and confirmStarTime != '' and confirmEndTime != null and confirmEndTime != ''">
AND date_format(a1.confirmTime, '%Y-%m-%d') between date_format(#{confirmStarTime}, '%Y-%m-%d') and date_format(#{confirmEndTime}, '%Y-%m-%d')
</if>
<if test="actions != null and actions.size() != 0">
AND a1.`action` in
<foreach collection="actions" index="index" item="item" open="(" close=")" separator=",">
#{item}
</foreach>
</if>
</where>
group by a1.fromInvCode,
a2.nameCode,
a2.coName,
a2.spec
) t1
GROUP BY
fromInvCode,
nameCode,
coName,
spec
</select>
<select id="selectStatDataByTime" resultType="com.glxp.api.res.inv.IoOrderDetailStatRsponse">
select orderIdFk,
bindRlFk,

Loading…
Cancel
Save