Merge remote-tracking branch 'origin/dev_fifo' into dev_fifo

lh_dev_fifo
wangwei 10 months ago
commit 67f45a0f24

@ -777,7 +777,7 @@ public class IoOrderController extends BaseController {
if (b)
return ResultVOUtils.error("当前删除任务正在执行,请勿重复点击!");
redisUtil.set("deleteAllOrder", true);
orderEntities.parallelStream().forEach(item ->
orderEntities.forEach(item ->
{
List<String> delBillNos = new ArrayList<>();
delBillNos.add(item.getBillNo());

@ -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,43 @@
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 String fromInvCode;//供应商名字
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;
}

@ -47,4 +47,9 @@ public class ReceiveDetailResponse {
private BigDecimal price;
private String supName;
/**
*
*/
private String bzgg;
}

@ -278,12 +278,7 @@ public class IoAddInoutService {
}
if (orderDetailBizEntity.getBindRlFk() == null) {
errMsg = errMsg + orderDetailBizEntity.getCoName() + "该产品未指定唯一耗材编码;";
}
if (StrUtil.isEmpty(orderDetailBizEntity.getSupId())) {
errMsg = errMsg + orderDetailBizEntity.getCoName() + "该产品未指定供应商;";
}
if (IntUtil.value(orderDetailBizEntity.getCount()) == 0) {
errMsg = errMsg + orderDetailBizEntity.getCoName() + "产品数量不能为0;";

@ -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);
}
}

@ -23,6 +23,7 @@ import com.glxp.api.entity.basic.*;
import com.glxp.api.entity.inout.IoCodeTempEntity;
import com.glxp.api.entity.inout.IoOrderDetailBizEntity;
import com.glxp.api.entity.inout.IoOrderEntity;
import com.glxp.api.entity.inv.InvProductEntity;
import com.glxp.api.entity.thrsys.*;
import com.glxp.api.exception.JsonException;
import com.glxp.api.http.ErpInvClient;
@ -902,6 +903,29 @@ public class ThrInvOrderServiceImpl implements ThrInvOrderService {
thrInvOrderDetail.setHandleStatus(1);
thrInvOrderDetail.setToBillNo(null);
List<InvProductEntity> invProductEntities = invProductService.selectByRelId(relId, null, null, thrInvOrder.getInvCode());
if (CollUtil.isNotEmpty(invProductEntities)) {
InvProductEntity invProductEntity1 = null;
for (InvProductEntity invProductEntity : invProductEntities) {
if (IntUtil.value(invProductEntity.getReCount()) > 0 && IntUtil.value(invProductEntity.getReCount()) > IntUtil.value(item.getReCount())) {
item.setSupId(invProductEntity.getSupId());
break;
} else if (IntUtil.value(invProductEntity.getReCount()) > 0) {
//随机找一个有库存的供应商
invProductEntity1 = invProductEntity;
}
}
if (StrUtil.isEmpty(item.getSupId()) && invProductEntity1 != null) {
item.setSupId(invProductEntity1.getSupId());
}
}
if (StrUtil.isEmpty(item.getSupId())) {
CompanyProductRelevanceEntity udiRlSupEntity = udiRlSupService.selOneByRlId(relId);
if (udiRlSupEntity != null)
item.setSupId(udiRlSupEntity.getCustomerId());
}
Integer skCount = sk.getCount();
if (skCount != null && skCount > 0) {
thrInvOrderDetail.setReCount(String.valueOf(skCount * count));
@ -942,9 +966,27 @@ public class ThrInvOrderServiceImpl implements ThrInvOrderService {
item.setToBillNo(null);
updateThrInvOrderDetails.add(item);
//校验产品是否被供应商关联
CompanyProductRelevanceEntity udiRlSupEntity = udiRlSupService.selOneByRlId(relId);
if (udiRlSupEntity != null)
item.setSupId(udiRlSupEntity.getCustomerId());
List<InvProductEntity> invProductEntities = invProductService.selectByRelId(relId, null, null, thrInvOrder.getInvCode());
if (CollUtil.isNotEmpty(invProductEntities)) {
InvProductEntity invProductEntity1 = null;
for (InvProductEntity invProductEntity : invProductEntities) {
if (IntUtil.value(invProductEntity.getReCount()) > 0 && IntUtil.value(invProductEntity.getReCount()) > IntUtil.value(item.getReCount())) {
item.setSupId(invProductEntity.getSupId());
break;
} else if (IntUtil.value(invProductEntity.getReCount()) > 0) {
//随机找一个有库存的供应商
invProductEntity1 = invProductEntity;
}
}
if (StrUtil.isEmpty(item.getSupId()) && invProductEntity1 != null) {
item.setSupId(invProductEntity1.getSupId());
}
}
if (StrUtil.isEmpty(item.getSupId())) {
CompanyProductRelevanceEntity udiRlSupEntity = udiRlSupService.selOneByRlId(relId);
if (udiRlSupEntity != null)
item.setSupId(udiRlSupEntity.getCustomerId());
}
}
}
});

@ -4,9 +4,9 @@ server:
spring:
datasource:
driver-class-name: com.p6spy.engine.spy.P6SpyDriver
jdbc-url: jdbc:p6spy:mysql://127.0.0.1:3306/udi_wms_pt2?allowMultiQueries=true&serverTimezone=Asia/Shanghai&useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=false&allowPublicKeyRetrieval=true
jdbc-url: jdbc:p6spy:mysql://192.168.0.59:3306/udi_wms?allowMultiQueries=true&serverTimezone=Asia/Shanghai&useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=false&allowPublicKeyRetrieval=true
username: root
password: 123456
password: Glxp@6066
hikari:
connection-timeout: 60000
maximum-pool-size: 20

@ -116,6 +116,58 @@
group by a2.id
</select>
<select id="filterOrderDeptList" resultType="com.glxp.api.res.inout.IoOrderDetailDeptResultResponse">
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`
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="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="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,

@ -5,6 +5,7 @@
select pur_receive_detail.*,
bp.cpmctymc,
bp.ggxh,
bp.bzgg,
bp.zczbhhzbapzbh,
bp.ylqxzcrbarmc,
bp.manufactory,

@ -465,8 +465,7 @@
left join auth_warehouse on auth_warehouse.code = ip.invCode
left join basic_product_category_rel on basic_product_category_rel.relId = basic_udirel.id
left join basic_product_category on basic_product_category_rel.code = basic_product_category.code
left join inv_product_detail ipd on ip.invCode = ipd.invCode and ip.relIdFk = ipd.relId and
ifnull(ip.batchNo, 'empty') = ifnull(ipd.batchNo, 'empty')
<where>
bp.diType = 1
<if test="cpmctymc != null and cpmctymc != ''">

Loading…
Cancel
Save