发票修改同步

pro
anthonywj 2 years ago
parent 02a17df71a
commit 84b7aae6dc

@ -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<IoOrderResponse> list = orderService.getfilterOrderList(filterOrderRequest);
for (IoOrderResponse ioOrderResponse : list) {
if (ioOrderResponse.getCheckStatus() == null) {
ioOrderResponse.setCheckStatus(0 + "");
}
FilterOrderDetailCodeRequest filterOrderDetailCodeRequest = new FilterOrderDetailCodeRequest();
filterOrderDetailCodeRequest.setOrderIdFk(ioOrderResponse.getBillNo());
List<IoOrderDetailCodeResponse> 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<IoOrderResponse> pageInfo = new PageInfo<>(list);
return ResultVOUtils.page(pageInfo);
}

@ -689,26 +689,26 @@ public class IoOrderDetailBizController extends BaseController {
*/
@GetMapping("/udiwms/inout/bizDetail/filterBizOrderList")
public BaseResponse filterBizOrderList(FilterOrderDetailCodeRequest orderDetailBizRequest) {
List<IoOrderDetailCodeResponse> 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<IoOrderDetailCodeResponse> ioOrderDetailCodeResponses = orderDetailBizService.getfilterOrderList(orderDetailBizRequest);
List<IoOrderInvoiceEntity> 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<IoOrderInvoiceEntity> 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<IoOrderDetailCodeResponse> pageInfo = new PageInfo<>(ioOrderDetailCodeResponses);
return ResultVOUtils.page(pageInfo);

@ -76,6 +76,7 @@ public interface IoOrderDao extends BaseMapperPlus<IoOrderDao, IoOrderEntity, Io
List<String> selectOrderIdList(@Param("data") String data);
List<String> selectOrderfirstAndLastIdList(@Param("firstData") String firstData,@Param("lastData") String lastData);
List<String> selectOrderfirstAndLastIdList(@Param("firstData") String firstData, @Param("lastData") String lastData);
List<IoOrderResponse> getfilterOrderList(FilterOrderRequest filterOrderRequest);
}

@ -27,8 +27,10 @@ public interface IoOrderDetailBizDao extends BaseMapperPlus<IoOrderDetailBizDao,
List<IoOrderDetailCodeResponse> getfilterOrderList(FilterOrderDetailCodeRequest orderDetailBizRequest);
List<IoOrderInvoiceResponse> filterListInv(FilterOrderDetailBizRequest orderDetailBizRequest);
IoOrderInvoiceResponse selectByinvoiceId(Long id);
List<IoOrderDetailCodeResponse> getfilterOrderList(FilterOrderDetailCodeRequest orderDetailBizRequest);
/**
*

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

@ -51,4 +51,7 @@ public interface IoOrderDetailBizService {
Boolean updateOrderDetailBiz(IoOrderDetailBizEntity ioOrderDetailBizEntity);
List<IoOrderDetailCodeResponse> getfilterOrderList(FilterOrderDetailCodeRequest orderDetailBizRequest);
}

@ -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<IoOrderInvoiceEntity> {
List<IoOrderInvoiceEntity> selectOrderInvoice(IoOrderInvoiceRequest ioOrderInvoiceRequest);
IoOrderResponse findRegStausByBillNo(IoOrderResponse orderResponse);
}

@ -142,4 +142,6 @@ public interface IoOrderService {
List<IoOrderEntity> selectList(Long userId);
List<String> selectOrderIdList(@Param("data") String data);
List<IoOrderResponse> getfilterOrderList(FilterOrderRequest filterOrderRequest);
}

@ -197,4 +197,14 @@ public class IoOrderDetailBizServiceImpl implements IoOrderDetailBizService {
return ioOrderDetailBizDao.updateById(ioOrderDetailBizEntity) > 0;
}
@Override
public List<IoOrderDetailCodeResponse> 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);
}
}

@ -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<IoOrderInvoiceMapper, IoOrderInvoiceEntity> implements IoOrderInvoiceService {
@Resource
IoOrderInvoiceMapper ioOrderInvoiceMapper;
@Resource
IoOrderDetailCodeDao orderDetailCodeDao;
@Override
public List<IoOrderInvoiceEntity> findByBillNo(String orderIdFk) {
@ -51,4 +59,41 @@ public class IoOrderInvoiceServiceImpl extends ServiceImpl<IoOrderInvoiceMapper,
public List<IoOrderInvoiceEntity> selectOrderInvoice(IoOrderInvoiceRequest ioOrderInvoiceRequest) {
return ioOrderInvoiceMapper.selectOrderInvoice(ioOrderInvoiceRequest);
}
@Override
public IoOrderResponse findRegStausByBillNo(IoOrderResponse orderResponse) {
List<IoOrderInvoiceEntity> orderInvoiceEntities = ioOrderInvoiceMapper.selectList(new QueryWrapper<IoOrderInvoiceEntity>().eq("orderIdFk", orderResponse.getBillNo()));
List<IoOrderDetailCodeEntity> orderDetailCodeEntities = orderDetailCodeDao.selectList(new QueryWrapper<IoOrderDetailCodeEntity>().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;
}
}

@ -1020,4 +1020,15 @@ public class IoOrderServiceImpl implements IoOrderService {
return false;
}
@Override
public List<IoOrderResponse> 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);
}
}

@ -473,16 +473,12 @@
<select id="getfilterOrderList" resultType="com.glxp.api.res.inout.IoOrderResponse">
SELECT
io.*,
SELECT io.*,
bus.NAME AS billTypeName,
ad.NAME AS deptName,
aw.NAME AS invName,
bc.NAME AS fromCorpName,
COUNT(IF(dc.regStatus = 1, 1, NULL)) AS allCout,
COUNT(IF(dc.regStatus = 0, 1, NULL)) AS partCount
FROM
io_order io
ad.NAME AS deptName,
aw.NAME AS invName,
bc.NAME AS fromCorpName
FROM io_order io
LEFT JOIN basic_bussiness_type bus ON io.action = bus.action
LEFT JOIN auth_dept ad ON io.deptCode = ad.CODE
LEFT JOIN auth_warehouse aw ON io.invCode = aw.CODE
@ -608,13 +604,12 @@
</where>
GROUP BY io.id
<choose>
<when test="(orderBy!=null ) and (sort=='desc' or sort=='asc')">
order by ${orderBy} ${sort}
<when test="(orderBy != null) and (sort == 'desc' or sort == 'asc')">
order by ${orderBy} ${sort}
</when>
<otherwise>
order by updateTime desc
</otherwise>
</choose>
</select>
</mapper>

@ -57,10 +57,10 @@
</select>
<select id="filterListInv" resultType="com.glxp.api.res.inout.IoOrderInvoiceResponse">
SELECT ic.*,cpmctymc,ggxh
SELECT ic.*, cpmctymc, ggxh
FROM io_order_invoice ic
LEFT JOIN basic_udirel bu ON bu.id = ic.bindRlFk
LEFT JOIN basic_products bp ON bu.uuid = bp.uuid
LEFT JOIN basic_udirel bu ON bu.id = ic.bindRlFk
LEFT JOIN basic_products bp ON bu.uuid = bp.uuid
<where>
<if test="orderIdFk != null and orderIdFk != ''">
AND ic.orderIdFk = #{orderIdFk}
@ -113,10 +113,7 @@
</select>
<select id="getfilterOrderList" resultType="com.glxp.api.res.inout.IoOrderDetailCodeResponse">
select io_order_detail_code.*,
(select count(*)
FROM io_order_invoice
where io_order_invoice.orderIdFk = io_order_detail_code.orderIdFk) as sucCount
select *
from io_order_detail_code
<where>
<if test="orderIdFk != null and orderIdFk != ''">
@ -128,12 +125,7 @@
<if test="batchNo != null and batchNo != ''">
AND batchNo = #{batchNo}
</if>
<if test="productName != null and productName != ''">
AND bp.cpmctymc like concat('%', #{productName}, '%')
</if>
</where>
group by io_order_detail_code.id
</select>
</mapper>

Loading…
Cancel
Save