diff --git a/src/main/java/com/glxp/api/controller/inout/IoOrderController.java b/src/main/java/com/glxp/api/controller/inout/IoOrderController.java index 299927aa7..c48f71fd9 100644 --- a/src/main/java/com/glxp/api/controller/inout/IoOrderController.java +++ b/src/main/java/com/glxp/api/controller/inout/IoOrderController.java @@ -51,7 +51,9 @@ import java.math.BigDecimal; import java.util.*; import java.util.stream.Collectors; + import static com.glxp.api.constant.ConstantStatus.ORDER_STATUS_CHECK_PROCESS; +import static com.glxp.api.constant.ConstantStatus.ORDER_STATUS_PROCESSING; @Slf4j @@ -76,6 +78,8 @@ public class IoOrderController extends BaseController { IoCheckInoutService ioCheckInoutService; @Resource BasicCorpService basicCorpService; + @Resource + IoOrderInvoiceService orderInvoiceService; /** * 查询单据列表 @@ -141,23 +145,14 @@ public class IoOrderController extends BaseController { filterOrderRequest.setFromCorp(customerId); } List list = orderService.getfilterOrderList(filterOrderRequest); + for (IoOrderResponse ioOrderResponse : list) { if (ioOrderResponse.getCheckStatus() == null) { ioOrderResponse.setCheckStatus(0 + ""); } - FilterOrderDetailCodeRequest filterOrderDetailCodeRequest = new FilterOrderDetailCodeRequest(); - filterOrderDetailCodeRequest.setOrderIdFk(ioOrderResponse.getBillNo()); - List ioOrderDetailCodeResponses = orderDetailBizService.getfilterOrderList(filterOrderDetailCodeRequest); - BigDecimal amount = new BigDecimal(0.00); - for (IoOrderDetailCodeResponse ioOrderDetailCodeRespons : ioOrderDetailCodeResponses) { - if (ioOrderDetailCodeRespons.getReCount() != 0 && ioOrderDetailCodeRespons.getPrice() != null) { - amount = amount.add(new BigDecimal(ioOrderDetailCodeRespons.getReCount()).multiply(ioOrderDetailCodeRespons.getPrice())); - } - } - ioOrderResponse.setAllAmount(amount); + ioOrderResponse = orderInvoiceService.findRegStausByBillNo(ioOrderResponse); } - PageInfo pageInfo = new PageInfo<>(list); return ResultVOUtils.page(pageInfo); } diff --git a/src/main/java/com/glxp/api/controller/inout/IoOrderDetailBizController.java b/src/main/java/com/glxp/api/controller/inout/IoOrderDetailBizController.java index f23e2aae1..3268bcae6 100644 --- a/src/main/java/com/glxp/api/controller/inout/IoOrderDetailBizController.java +++ b/src/main/java/com/glxp/api/controller/inout/IoOrderDetailBizController.java @@ -689,26 +689,26 @@ public class IoOrderDetailBizController extends BaseController { */ @GetMapping("/udiwms/inout/bizDetail/filterBizOrderList") public BaseResponse filterBizOrderList(FilterOrderDetailCodeRequest orderDetailBizRequest) { - List ioOrderDetailCodeResponses = orderDetailBizService.getfilterList(orderDetailBizRequest); - for (IoOrderDetailCodeResponse ioOrderDetailCodeRespons : ioOrderDetailCodeResponses) { - if (ioOrderDetailCodeRespons.getReCount() != 0 && ioOrderDetailCodeRespons.getPrice() != null) { - ioOrderDetailCodeRespons.setAmount(new BigDecimal(ioOrderDetailCodeRespons.getReCount()).multiply(ioOrderDetailCodeRespons.getPrice())); + List ioOrderDetailCodeResponses = orderDetailBizService.getfilterOrderList(orderDetailBizRequest); + List orderInvoiceEntities = ioOrderInvoiceService.findByBillNo(orderDetailBizRequest.getOrderIdFk()); + for (IoOrderDetailCodeResponse orderDetailCodeEntity : ioOrderDetailCodeResponses) { + if (orderDetailCodeEntity.getReCount() != 0 && orderDetailCodeEntity.getPrice() != null) { + orderDetailCodeEntity.setAmount(new BigDecimal(orderDetailCodeEntity.getReCount()).multiply(orderDetailCodeEntity.getPrice())); } String msg = ""; - IoOrderInvoiceRequest ioOrderInvoiceEntity = new IoOrderInvoiceRequest(); - ioOrderInvoiceEntity.setOrderIdFk(ioOrderDetailCodeRespons.getOrderIdFk()); - ioOrderInvoiceEntity.setBatchNo(ioOrderDetailCodeRespons.getBatchNo()); - ioOrderInvoiceEntity.setBindRlFk(ioOrderDetailCodeRespons.getBindRlFk().toString()); - List ioOrderInvoiceEntityList = ioOrderInvoiceService.selectOrderInvoice(ioOrderInvoiceEntity); - for (IoOrderInvoiceEntity obj : ioOrderInvoiceEntityList) { - if (StrUtil.isNotEmpty(obj.getInvoiceEncode())) { - msg += "," + obj.getInvoiceEncode(); + for (IoOrderInvoiceEntity orderInvoiceEntity : orderInvoiceEntities) { + if (StrUtil.trimToEmpty(orderInvoiceEntity.getBatchNo()).equals(StrUtil.trimToEmpty(orderDetailCodeEntity.getBatchNo())) + && StrUtil.trimToEmpty(orderInvoiceEntity.getBindRlFk()).equals(StrUtil.trimToEmpty(orderDetailCodeEntity.getBindRlFk() + ""))) { + orderDetailCodeEntity.setRegStatus(true); + if (StrUtil.isNotEmpty(orderInvoiceEntity.getInvoiceEncode())) { + msg += "," + orderInvoiceEntity.getInvoiceEncode(); + } } } if (msg.length() > 1) { msg = msg.substring(1); } - ioOrderDetailCodeRespons.setInvoiceCodes(msg); + orderDetailCodeEntity.setInvoiceCodes(msg); } PageInfo pageInfo = new PageInfo<>(ioOrderDetailCodeResponses); return ResultVOUtils.page(pageInfo); diff --git a/src/main/java/com/glxp/api/dao/inout/IoOrderDao.java b/src/main/java/com/glxp/api/dao/inout/IoOrderDao.java index 0f42d4a24..cc9ea6789 100644 --- a/src/main/java/com/glxp/api/dao/inout/IoOrderDao.java +++ b/src/main/java/com/glxp/api/dao/inout/IoOrderDao.java @@ -76,6 +76,7 @@ public interface IoOrderDao extends BaseMapperPlus selectOrderIdList(@Param("data") String data); - List selectOrderfirstAndLastIdList(@Param("firstData") String firstData,@Param("lastData") String lastData); + List selectOrderfirstAndLastIdList(@Param("firstData") String firstData, @Param("lastData") String lastData); + List getfilterOrderList(FilterOrderRequest filterOrderRequest); } diff --git a/src/main/java/com/glxp/api/dao/inout/IoOrderDetailBizDao.java b/src/main/java/com/glxp/api/dao/inout/IoOrderDetailBizDao.java index 48ec354af..9c0ffb433 100644 --- a/src/main/java/com/glxp/api/dao/inout/IoOrderDetailBizDao.java +++ b/src/main/java/com/glxp/api/dao/inout/IoOrderDetailBizDao.java @@ -27,8 +27,10 @@ public interface IoOrderDetailBizDao extends BaseMapperPlus getfilterOrderList(FilterOrderDetailCodeRequest orderDetailBizRequest); List filterListInv(FilterOrderDetailBizRequest orderDetailBizRequest); + IoOrderInvoiceResponse selectByinvoiceId(Long id); + List getfilterOrderList(FilterOrderDetailCodeRequest orderDetailBizRequest); /** * 查询单条单据业务详情 diff --git a/src/main/java/com/glxp/api/res/inout/IoOrderResponse.java b/src/main/java/com/glxp/api/res/inout/IoOrderResponse.java index 6e4a8f78d..05b1f1363 100644 --- a/src/main/java/com/glxp/api/res/inout/IoOrderResponse.java +++ b/src/main/java/com/glxp/api/res/inout/IoOrderResponse.java @@ -240,6 +240,7 @@ public class IoOrderResponse { private Integer busType; //1:正常;2:送货;3.到货 + private int invoiceStatus;//发票登记状态0:未登记,1:未全部登记;2:已全部登记 public String getFromName() { if (StrUtil.isNotEmpty(fromInvName)) diff --git a/src/main/java/com/glxp/api/service/inout/IoOrderDetailBizService.java b/src/main/java/com/glxp/api/service/inout/IoOrderDetailBizService.java index b2512d94c..cd70499a0 100644 --- a/src/main/java/com/glxp/api/service/inout/IoOrderDetailBizService.java +++ b/src/main/java/com/glxp/api/service/inout/IoOrderDetailBizService.java @@ -51,4 +51,7 @@ public interface IoOrderDetailBizService { Boolean updateOrderDetailBiz(IoOrderDetailBizEntity ioOrderDetailBizEntity); + List getfilterOrderList(FilterOrderDetailCodeRequest orderDetailBizRequest); + + } diff --git a/src/main/java/com/glxp/api/service/inout/IoOrderInvoiceService.java b/src/main/java/com/glxp/api/service/inout/IoOrderInvoiceService.java index 8abe993ec..2473e6e5e 100644 --- a/src/main/java/com/glxp/api/service/inout/IoOrderInvoiceService.java +++ b/src/main/java/com/glxp/api/service/inout/IoOrderInvoiceService.java @@ -3,6 +3,7 @@ package com.glxp.api.service.inout; import com.baomidou.mybatisplus.extension.service.IService; import com.glxp.api.entity.inout.IoOrderInvoiceEntity; import com.glxp.api.req.inout.IoOrderInvoiceRequest; +import com.glxp.api.res.inout.IoOrderResponse; import java.util.List; @@ -19,5 +20,6 @@ public interface IoOrderInvoiceService extends IService { List selectOrderInvoice(IoOrderInvoiceRequest ioOrderInvoiceRequest); + IoOrderResponse findRegStausByBillNo(IoOrderResponse orderResponse); } diff --git a/src/main/java/com/glxp/api/service/inout/IoOrderService.java b/src/main/java/com/glxp/api/service/inout/IoOrderService.java index 1d4fcf23f..674f1977a 100644 --- a/src/main/java/com/glxp/api/service/inout/IoOrderService.java +++ b/src/main/java/com/glxp/api/service/inout/IoOrderService.java @@ -142,4 +142,6 @@ public interface IoOrderService { List selectList(Long userId); List selectOrderIdList(@Param("data") String data); + + List getfilterOrderList(FilterOrderRequest filterOrderRequest); } diff --git a/src/main/java/com/glxp/api/service/inout/impl/IoOrderDetailBizServiceImpl.java b/src/main/java/com/glxp/api/service/inout/impl/IoOrderDetailBizServiceImpl.java index e1077961a..a26e429a0 100644 --- a/src/main/java/com/glxp/api/service/inout/impl/IoOrderDetailBizServiceImpl.java +++ b/src/main/java/com/glxp/api/service/inout/impl/IoOrderDetailBizServiceImpl.java @@ -197,4 +197,14 @@ public class IoOrderDetailBizServiceImpl implements IoOrderDetailBizService { return ioOrderDetailBizDao.updateById(ioOrderDetailBizEntity) > 0; } + @Override + public List getfilterOrderList(FilterOrderDetailCodeRequest OrderDetailCodeRequest) { + if (null == OrderDetailCodeRequest) { + return Collections.emptyList(); + } + if (null != OrderDetailCodeRequest.getPage() && null != OrderDetailCodeRequest.getLimit()) { + PageHelper.offsetPage((OrderDetailCodeRequest.getPage() - 1) * OrderDetailCodeRequest.getLimit(), OrderDetailCodeRequest.getLimit()); + } + return ioOrderDetailBizDao.getfilterOrderList(OrderDetailCodeRequest); + } } diff --git a/src/main/java/com/glxp/api/service/inout/impl/IoOrderInvoiceServiceImpl.java b/src/main/java/com/glxp/api/service/inout/impl/IoOrderInvoiceServiceImpl.java index 9c6cf3141..a9b0e91c5 100644 --- a/src/main/java/com/glxp/api/service/inout/impl/IoOrderInvoiceServiceImpl.java +++ b/src/main/java/com/glxp/api/service/inout/impl/IoOrderInvoiceServiceImpl.java @@ -1,17 +1,23 @@ package com.glxp.api.service.inout.impl; +import cn.hutool.core.collection.CollUtil; import cn.hutool.core.util.IdUtil; +import cn.hutool.core.util.StrUtil; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.glxp.api.dao.inout.IoOrderDetailCodeDao; import com.glxp.api.dao.inout.IoOrderInvoiceMapper; +import com.glxp.api.entity.inout.IoOrderDetailCodeEntity; import com.glxp.api.entity.inout.IoOrderInvoiceEntity; import com.glxp.api.req.inout.IoOrderInvoiceRequest; +import com.glxp.api.res.inout.IoOrderResponse; import com.glxp.api.service.inout.IoOrderInvoiceService; import org.springframework.beans.BeanUtils; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import javax.annotation.Resource; +import java.math.BigDecimal; import java.util.Date; import java.util.List; @@ -20,6 +26,8 @@ import java.util.List; public class IoOrderInvoiceServiceImpl extends ServiceImpl implements IoOrderInvoiceService { @Resource IoOrderInvoiceMapper ioOrderInvoiceMapper; + @Resource + IoOrderDetailCodeDao orderDetailCodeDao; @Override public List findByBillNo(String orderIdFk) { @@ -51,4 +59,41 @@ public class IoOrderInvoiceServiceImpl extends ServiceImpl selectOrderInvoice(IoOrderInvoiceRequest ioOrderInvoiceRequest) { return ioOrderInvoiceMapper.selectOrderInvoice(ioOrderInvoiceRequest); } + + @Override + public IoOrderResponse findRegStausByBillNo(IoOrderResponse orderResponse) { + List orderInvoiceEntities = ioOrderInvoiceMapper.selectList(new QueryWrapper().eq("orderIdFk", orderResponse.getBillNo())); + List orderDetailCodeEntities = orderDetailCodeDao.selectList(new QueryWrapper().eq("orderIdFk", orderResponse.getBillNo())); + if (CollUtil.isNotEmpty(orderDetailCodeEntities)) { + BigDecimal amount = new BigDecimal(0.00); + for (IoOrderDetailCodeEntity orderDetailCodeEntity : orderDetailCodeEntities) { + for (IoOrderInvoiceEntity orderInvoiceEntity : orderInvoiceEntities) { + if (StrUtil.trimToEmpty(orderInvoiceEntity.getBatchNo()).equals(StrUtil.trimToEmpty(orderDetailCodeEntity.getBatchNo())) + && StrUtil.trimToEmpty(orderInvoiceEntity.getBindRlFk()).equals(StrUtil.trimToEmpty(orderDetailCodeEntity.getBindRlFk() + ""))) { + orderDetailCodeEntity.setRegStatus(true); + } + } + if (orderDetailCodeEntity.getReCount() != 0 && orderDetailCodeEntity.getPrice() != null) { + amount = amount.add(new BigDecimal(orderDetailCodeEntity.getReCount()).multiply(orderDetailCodeEntity.getPrice())); + } + } + orderResponse.setAllAmount(amount); + } else + return orderResponse; + + int isAll = 0; + for (IoOrderDetailCodeEntity orderDetailCodeEntity : orderDetailCodeEntities) { + if (orderDetailCodeEntity.isRegStatus()) { + isAll++; + } + } + if (orderDetailCodeEntities.size() == isAll) + orderResponse.setInvoiceStatus(2);//已全部登记 + else if (isAll > 0) { + orderResponse.setInvoiceStatus(1);//未全部登记 + } + return orderResponse; + + } + } diff --git a/src/main/java/com/glxp/api/service/inout/impl/IoOrderServiceImpl.java b/src/main/java/com/glxp/api/service/inout/impl/IoOrderServiceImpl.java index 36d9f1e19..40a5374ae 100644 --- a/src/main/java/com/glxp/api/service/inout/impl/IoOrderServiceImpl.java +++ b/src/main/java/com/glxp/api/service/inout/impl/IoOrderServiceImpl.java @@ -1020,4 +1020,15 @@ public class IoOrderServiceImpl implements IoOrderService { return false; } + @Override + public List getfilterOrderList(FilterOrderRequest filterOrderRequest) { + if (null == filterOrderRequest) { + return Collections.emptyList(); + } + if (null != filterOrderRequest.getPage() && null != filterOrderRequest.getLimit()) { + PageHelper.offsetPage((filterOrderRequest.getPage() - 1) * filterOrderRequest.getLimit(), filterOrderRequest.getLimit()); + } + return orderDao.getfilterOrderList(filterOrderRequest); + } + } diff --git a/src/main/resources/mybatis/mapper/inout/IoOrderDao.xml b/src/main/resources/mybatis/mapper/inout/IoOrderDao.xml index b75859c3e..aa1e90cbc 100644 --- a/src/main/resources/mybatis/mapper/inout/IoOrderDao.xml +++ b/src/main/resources/mybatis/mapper/inout/IoOrderDao.xml @@ -473,16 +473,12 @@ - diff --git a/src/main/resources/mybatis/mapper/inout/IoOrderDetailBizDao.xml b/src/main/resources/mybatis/mapper/inout/IoOrderDetailBizDao.xml index 969908180..787762856 100644 --- a/src/main/resources/mybatis/mapper/inout/IoOrderDetailBizDao.xml +++ b/src/main/resources/mybatis/mapper/inout/IoOrderDetailBizDao.xml @@ -57,10 +57,10 @@ - -