package com.glxp.api.controller.inout; import cn.hutool.core.bean.BeanUtil; import cn.hutool.core.collection.CollUtil; import cn.hutool.core.util.StrUtil; import com.glxp.api.annotation.AuthRuleAnnotation; import com.glxp.api.annotation.Log; import com.glxp.api.common.res.BaseResponse; import com.glxp.api.common.util.ResultVOUtils; import com.glxp.api.constant.BusinessType; 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.http.sync.SpGetHttpClient; import com.glxp.api.idc.service.FileService; import com.glxp.api.req.inout.RefreshInoiceRequest; import com.glxp.api.res.inout.RefreshInoiceResponse; import com.glxp.api.service.inout.IoOrderDetailCodeService; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RestController; import javax.annotation.Resource; import java.util.ArrayList; import java.util.List; @RestController public class IoOrderInvoiceController { @Resource IoOrderInvoiceMapper orderInvoiceMapper; @Resource SpGetHttpClient spGetHttpClient; @Resource FileService fileService; @Resource IoOrderDetailCodeDao ioOrderDetailCodeDao; @AuthRuleAnnotation("") @PostMapping("/udiwms/inout/order/refrshInvoice") @Log(title = "发票", businessType = BusinessType.INSERT) public BaseResponse addBizProduct(@RequestBody RefreshInoiceRequest refreshInoiceRequest) { BaseResponse baseResponse = spGetHttpClient.getIoOrderInvoices(refreshInoiceRequest); if (baseResponse.getCode() == 20000) { RefreshInoiceResponse refreshInoiceResponse = baseResponse.getData(); List orderDetailCodeEntities = refreshInoiceResponse.getOrderDetailCodeEntities(); ioOrderDetailCodeDao.insertOrUpdateBatch(orderDetailCodeEntities); List orderInvoiceEntities = refreshInoiceResponse.getOrderInvoiceEntities(); if (CollUtil.isNotEmpty(orderInvoiceEntities)) { List syncFiles = new ArrayList<>(); for (IoOrderInvoiceEntity orderInvoiceEntity : orderInvoiceEntities) { if (StrUtil.isNotEmpty(orderInvoiceEntity.getLicenseUrl())) { syncFiles.add(orderInvoiceEntity.getLicenseUrl()); } orderInvoiceMapper.insertOrUpdate(orderInvoiceEntity); } if (CollUtil.isNotEmpty(syncFiles)) { fileService.download(syncFiles); } } return ResultVOUtils.success("更新成功!"); } else return baseResponse; } }