fix: 增加科室带票出库页面

lh_dev_fifo
chenhc 10 months ago
parent f9786d34fc
commit 5f184d3013

@ -120,6 +120,19 @@ public class IoOrderDetailResultController extends BaseController {
return ResultVOUtils.page(pageInfo);
}
/**
*
*
* @param orderDetailResultRequest
* @return
*/
@AuthRuleAnnotation("")
@GetMapping("/udiwms/inout/resultDetail/filterOrderDeptList")
public BaseResponse filterOrderDeptList(FilterOrderDetailDeptResultRequest orderDetailResultRequest) {
PageInfo<IoOrderDetailDeptResultResponse> pageInfo = new PageInfo<>(getOrderDeptResult(orderDetailResultRequest));
return ResultVOUtils.page(pageInfo);
}
public List<IoOrderDetailResultResponse> getOrderResult(FilterOrderDetailResultRequest orderDetailResultRequest) {
if (CollUtil.isNotEmpty(orderDetailResultRequest.getList())) {
@ -159,6 +172,21 @@ public class IoOrderDetailResultController extends BaseController {
return list;
}
public List<IoOrderDetailDeptResultResponse> getOrderDeptResult(FilterOrderDetailDeptResultRequest 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<IoOrderDetailDeptResultResponse> list = orderDetailResultService.getOrderDeptResult(orderDetailResultRequest);
return list;
}
@GetMapping("/udiwms/inout/resultDetail/exportExcel")
public void exportTemplate(FilterOrderDetailResultRequest orderDetailResultRequest, HttpServletResponse response) throws IOException {
@ -395,6 +423,69 @@ public class IoOrderDetailResultController extends BaseController {
return ResultVOUtils.success();
}
/**
*
*
* @param filterOrderDetailDeptResultRequest
* @return
*/
@AuthRuleAnnotation("")
@PostMapping("/udiwms/inout/resultDetail/filterOrderPrintDept")
public BaseResponse filterOrderPrintDept(@RequestBody FilterOrderDetailDeptResultRequest filterOrderDetailDeptResultRequest, HttpServletRequest request, HttpServletResponse response) throws JRException, IOException {
List<IoOrderDetailDeptResultResponse> ioOrderDetailResultResponseList = new ArrayList<>();
SystemPDFTemplateEntity systemPDFTemplateEntity = systemPDFTemplateService.selectById(filterOrderDetailDeptResultRequest.getTemplateId());
//打印单号标签
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.getOrderDeptResult(filterOrderDetailDeptResultRequest);
}
int i = 1;
for (IoOrderDetailDeptResultResponse 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("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);
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,9 +3,11 @@ 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.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.inv.IoOrderDetailStatRsponse;
import io.lettuce.core.dynamic.annotation.Param;
@ -44,4 +46,6 @@ public interface IoOrderDetailResultDao extends BaseMapperPlus<IoOrderDetailBizD
List<IoExOrderDetailResultResponse> exFilterOrderDetail(FilterOrderDetailResultRequest orderDetailResultRequest);
List<IoOrderDetailDeptResultResponse> filterOrderDeptList(FilterOrderDetailDeptResultRequest orderDetailResultRequest);
}

@ -0,0 +1,42 @@
package com.glxp.api.req.inout;
import com.glxp.api.res.inout.IoOrderDetailDeptResultResponse;
import com.glxp.api.res.inout.IoOrderDetailResultResponse;
import com.glxp.api.util.page.ListPageRequest;
import lombok.Data;
import java.util.List;
/**
*
*/
@Data
public class FilterOrderDetailDeptResultRequest 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<IoOrderDetailDeptResultResponse> 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 Boolean groupBuy; //是否集采产品
}

@ -0,0 +1,31 @@
package com.glxp.api.res.inout;
import cn.hutool.core.util.StrUtil;
import com.alibaba.excel.annotation.ExcelProperty;
import lombok.Data;
import java.math.BigDecimal;
import java.util.Date;
/**
* VO
*/
@Data
public class IoOrderDetailDeptResultResponse {
/**
*
*/
private String fromInvCode;
/**
*
*/
private String fromInvName;
private Integer count;
private BigDecimal amount;
}

@ -3,9 +3,11 @@ 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.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 java.util.List;
@ -31,4 +33,6 @@ public interface IoOrderDetailResultService {
List<CptTraceOrderResponse> cptTrace(CptTraceRequest cptTraceRequest);
List<IoExOrderDetailResultResponse> exFilterOrderDetail(FilterOrderDetailResultRequest orderDetailResultRequest);
List<IoOrderDetailDeptResultResponse> getOrderDeptResult(FilterOrderDetailDeptResultRequest orderDetailResultRequest);
}

@ -7,9 +7,11 @@ 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.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.service.inout.IoOrderDetailResultService;
import org.springframework.stereotype.Service;
@ -93,4 +95,15 @@ public class IoOrderDetailResultServiceImpl implements IoOrderDetailResultServic
}
return orderDetailResultDao.exFilterOrderDetail(orderDetailResultRequest);
}
@Override
public List<IoOrderDetailDeptResultResponse> getOrderDeptResult(FilterOrderDetailDeptResultRequest 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.filterOrderDeptList(orderDetailResultRequest);
}
}

@ -116,6 +116,50 @@
group by a2.id
</select>
<select id="filterOrderDeptList" resultType="com.glxp.api.res.inout.IoOrderDetailDeptResultResponse">
SELECT
aw.code as fromInvCode,
SUM(CASE WHEN a1.mainAction = 'WareHouseIn' THEN COALESCE(a2.price,0) * COALESCE(a2.count,0)
WHEN a1.mainAction = 'WareHouseOut' THEN -(COALESCE(a2.price,0) * COALESCE(a2.count,0))
ELSE 0
END) AS amount,
SUM(CASE WHEN a1.mainAction = 'WareHouseIn' THEN COALESCE(a2.count,0)
WHEN a1.mainAction = 'WareHouseOut' THEN -(COALESCE(a2.count,0))
ELSE 0
END) AS `count`,
aw.name as fromInvName
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
<where>
a1.status = 7
<if test="invCode != null and invCode != ''">
AND a1.invCode = #{invCode}
</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="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="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
</select>
<select id="selectStatDataByTime" resultType="com.glxp.api.res.inv.IoOrderDetailStatRsponse">
select orderIdFk,
bindRlFk,

Loading…
Cancel
Save