Commit f7a7cbca by huluobin

Merge remote-tracking branch 'origin/master'

parents eacda37b 4a6a88da
package com.bailuntec.application.impl; package com.bailuntec.application.impl;
import com.alibaba.fastjson.JSON;
import com.bailuntec.api.amazon.AmazonAdApi;
import com.bailuntec.api.amazon.request.AmazonURI;
import com.bailuntec.application.IDcBaseFinanceAmazonAdProductService; import com.bailuntec.application.IDcBaseFinanceAmazonAdProductService;
import com.bailuntec.common.BeanUtils;
import com.bailuntec.common.JsonUtilByJackson;
import com.bailuntec.domain.DcBaseCompanyAccount;
import com.bailuntec.domain.DcBaseFinanceAmazonAdProduct; import com.bailuntec.domain.DcBaseFinanceAmazonAdProduct;
import com.bailuntec.domain.JobAmazonAdLog;
import com.bailuntec.infrastructure.mapper.DcBaseCompanyAccountMapper;
import com.bailuntec.infrastructure.mapper.DcBaseFinanceAmazonAdProductMapper; import com.bailuntec.infrastructure.mapper.DcBaseFinanceAmazonAdProductMapper;
import com.bailuntec.infrastructure.mapper.JobAmazonAdLogMapper;
import com.bailuntec.infrastructure.util.CallBailunSystemUtil;
import com.bailuntec.infrastructure.util.enumerate.CurrencyType;
import com.bailuntec.pojo.AmazonAdAuth;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.google.common.reflect.TypeToken;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.junit.Assert;
import org.springframework.http.ResponseEntity;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import javax.annotation.Resource;
import java.io.ByteArrayInputStream;
import java.io.IOException;
import java.lang.reflect.Type;
import java.math.BigDecimal;
import java.time.LocalDateTime;
import java.util.List;
import java.util.zip.GZIPInputStream;
/** /**
* <p> * <p>
......
package com.bailuntec.application.impl; package com.bailuntec.application.impl;
import com.bailuntec.api.amazon.AmazonAdApi;
import com.bailuntec.api.amazon.request.AmazonDisplayReportReq;
import com.bailuntec.api.amazon.request.AmazonProductsReportReq;
import com.bailuntec.api.amazon.request.AmazonURI;
import com.bailuntec.api.amazon.response.AmazonAdReportResp;
import com.bailuntec.application.IJobAmazonAdLogService; import com.bailuntec.application.IJobAmazonAdLogService;
import com.bailuntec.common.JsonUtilByFsJson;
import com.bailuntec.common.StringUtils;
import com.bailuntec.domain.DcBaseCompanyAccount;
import com.bailuntec.domain.JobAmazonAdLog; import com.bailuntec.domain.JobAmazonAdLog;
import com.bailuntec.infrastructure.mapper.DcBaseCompanyAccountMapper;
import com.bailuntec.infrastructure.mapper.JobAmazonAdLogMapper; import com.bailuntec.infrastructure.mapper.JobAmazonAdLogMapper;
import com.bailuntec.pojo.AmazonAdAuth;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import javax.annotation.Resource;
import java.net.URI;
import java.time.LocalDate;
import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;
import java.time.temporal.ChronoUnit;
import java.util.List;
import java.util.stream.Collectors;
import java.util.stream.Stream;
/** /**
* <p> * <p>
......
package com.bailuntec.domain;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
import java.io.Serializable;
import java.math.BigDecimal;
import java.time.LocalDateTime;
/**
* @Author: li.yanlin
* @Description:
* @Date: Created in 11:20 2021-03-29
* @Modified by:
*/
@Data
@EqualsAndHashCode(callSuper = false)
@Accessors(chain = true)
@ApiModel(value = "DcSemiStockLog对象", description = "")
public class DcSemiStockLog implements Serializable {
private static final long serialVersionUID = 1L;
@TableId(value = "id", type = IdType.AUTO)
@ApiModelProperty("id")
private Integer id;
@ApiModelProperty("流水ID")
private Integer logId;
@ApiModelProperty("原料sku编码")
private String skuCode;
@ApiModelProperty("原料sku名称")
private String skuName;
@ApiModelProperty("流水类型ID")
private Integer logTypeId;
@ApiModelProperty("流水类型名称")
private String logType;
@ApiModelProperty("流水数量")
private Integer logQuantity;
@ApiModelProperty("当前库存")
private BigDecimal finalStock;
@ApiModelProperty("仓库ID")
private Integer warehouseId;
@ApiModelProperty("仓库名称")
private String warehouseName;
@ApiModelProperty("半成品仓流水创建日期")
private LocalDateTime createTime;
@ApiModelProperty("冗余库存")
private BigDecimal redundancyStock;
@ApiModelProperty("仓库类型:1-jit仓,2-计划仓")
private Integer warehouseType;
@ApiModelProperty("取数时间")
private LocalDateTime updateTime;
@ApiModelProperty("产品大类id")
private Integer productCategoryId;
@ApiModelProperty("产品大类")
private String productCategoryName;
@ApiModelProperty("产品小类id")
private Integer TypeId;
@ApiModelProperty("产品小类")
private String typeName;
}
package com.bailuntec.domain;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
import java.io.Serializable;
import java.math.BigDecimal;
import java.time.LocalDateTime;
/**
* @Author: li.yanlin
* @Description:
* @Date: Created in 17:02 2021-03-27
* @Modified by:
*/
@Data
@EqualsAndHashCode(callSuper = false)
@Accessors(chain = true)
@ApiModel(value = "DcSemiSupplierOfferLog对象", description = "")
public class DcSemiSupplierOfferLog implements Serializable {
private static final long serialVersionUID = 1L;
@TableId(value = "id", type = IdType.AUTO)
@ApiModelProperty("id")
private Integer id;
@ApiModelProperty("流水ID")
private Integer logId;
@ApiModelProperty("供应商ID")
private Integer supplierId;
@ApiModelProperty("供应商名称")
private String supplierName;
@ApiModelProperty("币种ID")
private Integer unitId;
@ApiModelProperty("币种名称")
private String unitName;
@ApiModelProperty("半成品系统创建时间")
private LocalDateTime createTime;
@ApiModelProperty("报价")
private BigDecimal price;
@ApiModelProperty("原料SKU编码")
private String skuCode;
@ApiModelProperty("原料SKU名称")
private String skuName;
@ApiModelProperty("原料SKU ID")
private Integer skuId;
@ApiModelProperty("取数时间")
private LocalDateTime updateTime;
}
...@@ -2,11 +2,13 @@ package com.bailuntec.infrastructure.mapper; ...@@ -2,11 +2,13 @@ package com.bailuntec.infrastructure.mapper;
import com.bailuntec.domain.DcSemiDailyStock; import com.bailuntec.domain.DcSemiDailyStock;
import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.apache.ibatis.annotations.Insert;
import org.apache.ibatis.annotations.Param; import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Select; import org.apache.ibatis.annotations.Select;
import java.math.BigDecimal; import java.math.BigDecimal;
import java.time.LocalDate; import java.time.LocalDate;
import java.util.Date;
/** /**
* <p> * <p>
...@@ -18,6 +20,12 @@ import java.time.LocalDate; ...@@ -18,6 +20,12 @@ import java.time.LocalDate;
*/ */
public interface DcSemiDailyStockMapper extends BaseMapper<DcSemiDailyStock> { public interface DcSemiDailyStockMapper extends BaseMapper<DcSemiDailyStock> {
@Insert("insert into dc_semi_daily_stock(day,inventory_amount,sku_code,sku_name,stock_quantity,price,warehouse_id,warehouse_name,redundancy_stock) " +
"select #{lastDay},l.final_stock * ifnull(ol.price,0),l.sku_code,l.sku_name,l.final_stock,ifnull(ol.price,0),l.warehouse_id,l.warehouse_name," +
"case when l.redundancy_stock is null then 0 when l.redundancy_stock < 0 then 0 else l.redundancy_stock end " +
"from dc_semi_stock_log l left join dc_semi_supplier_offer_log ol on l.sku_code = ol.sku_code")
void insertSemiDailyStock(@Param("lastDay") Date lastDay);
@Select("select ifnull(sum(inventory_amount),0) from dc_semi_daily_stock where day = #{lastDay}") @Select("select ifnull(sum(inventory_amount),0) from dc_semi_daily_stock where day = #{lastDay}")
BigDecimal getSemiDailyStockSum(@Param("lastDay") LocalDate lastDay); BigDecimal getSemiDailyStockSum(@Param("lastDay") LocalDate lastDay);
......
package com.bailuntec.infrastructure.mapper;
import com.bailuntec.api.bailuntec.mj.resp.StockLogResp;
import com.bailuntec.domain.DcSemiStockLog;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import java.util.List;
/**
* @Author: li.yanlin
* @Description:
* @Date: Created in 11:49 2021-03-29
* @Modified by:
*/
public interface DcSemiStockLogMapper extends BaseMapper<DcSemiStockLog> {
void insertOrUpdateSemiStockLog(List<StockLogResp> semiStockLogDTOList);
}
package com.bailuntec.infrastructure.mapper;
import com.bailuntec.api.bailuntec.mjcg.resp.SupofferLogResp;
import com.bailuntec.domain.DcSemiSupplierOfferLog;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.apache.ibatis.annotations.Insert;
import java.util.List;
/**
* @Author: li.yanlin
* @Description:
* @Date: Created in 16:59 2021-03-27
* @Modified by:
*/
public interface DcSemiSupplierOfferLogMapper extends BaseMapper<DcSemiSupplierOfferLog> {
@Insert("<script>" +
"insert into dc_semi_supplier_offer_log(log_id,supplier_id,supplier_name,unit_id,unit_name,create_time,price,sku_code,sku_name,sku_id) values" +
"<foreach collection='list' item='item' index='index' separator=','>" +
"(#{item.logId},#{item.supplierId},#{item.supplierName},#{item.unitId},#{item.unitName},#{item.createTime},#{item.price},#{item.sku},#{item.skuName},#{item.skuId})" +
"</foreach>" +
" on duplicate key update log_id=values(log_id),supplier_id=values(supplier_id),supplier_name=values(supplier_name),unit_id=values(unit_id),unit_name=values(unit_name)," +
"create_time=values(create_time),price=values(price),sku_name=values(sku_name),sku_id=values(sku_id)" +
"</script>")
void insertOrUpdateSemiSupplierOfferLog(List<SupofferLogResp> semiSupOfferLogDTOList);
}
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.bailuntec.infrastructure.mapper.DcSemiStockLogMapper">
<insert id="insertOrUpdateSemiStockLog" parameterType="java.util.ArrayList">
insert into dc_semi_stock_log(
log_id,
sku_code,
sku_name,
log_type_id,
log_type,
log_quantity,
final_stock,
warehouse_id,
warehouse_name,
create_time,
redundancy_stock,
warehouse_type,
type_id,
type_name,
product_category_id,
product_category_name
) values
<foreach collection='list' item='item' index='index' separator=','>
(
#{item.logId},
#{item.skuCode},
#{item.skuName},
#{item.logTypeId},
#{item.logType},
#{item.logQuantity},
#{item.finalStock},
#{item.warehouseId},
#{item.warehouseName},
#{item.createTime},
#{item.redundancyStock},
#{item.warehouseType}
<if test="item.typeId != null">
,#{item.typeId}
</if>
<if test="item.typeId == null">
,0
</if>
<if test="item.typeName != null">
,#{item.typeName}
</if>
<if test="item.typeName == null">
,'缺失'
</if>
<if test="item.productCategoryId != null">
,#{item.productCategoryId}
</if>
<if test="item.productCategoryId == null">
,0
</if>
<if test="item.productCategoryName != null">
,#{item.productCategoryName}
</if>
<if test="item.productCategoryName == null">
,'缺失'
</if>
)
</foreach>
on duplicate key update
log_id=values(log_id),
sku_name=values(sku_name),
log_type_id=values(log_type_id),
log_type=values(log_type),
log_quantity=values(log_quantity),
final_stock=values(final_stock),
warehouse_id=values(warehouse_id),
warehouse_name=values(warehouse_name),
create_time=values(create_time),
redundancy_stock=values(redundancy_stock),
warehouse_type=values(warehouse_type),
type_id=values(type_id),
type_name=values(type_name),
product_category_id=values(product_category_id),
product_category_name=values(product_category_name)
</insert>
</mapper>
package com.bailuntec.job; package com.bailuntec.job;
import com.alibaba.fastjson.JSON;
import com.bailuntec.application.IDcBaseFinanceEbayService; import com.bailuntec.application.IDcBaseFinanceEbayService;
import com.bailuntec.domain.DcBaseFinanceEbay; import com.bailuntec.domain.DcBaseFinanceEbay;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.springframework.batch.item.ItemWriter; import org.springframework.batch.item.ItemWriter;
import org.springframework.lang.NonNull; import org.springframework.lang.NonNull;
import java.util.ArrayList;
import java.util.Comparator;
import java.util.List; import java.util.List;
import java.util.TreeSet;
import java.util.stream.Collectors; import java.util.stream.Collectors;
/** /**
...@@ -29,6 +35,19 @@ public class EbayFinanceWriter implements ItemWriter<DcBaseFinanceEbay> { ...@@ -29,6 +35,19 @@ public class EbayFinanceWriter implements ItemWriter<DcBaseFinanceEbay> {
@Override @Override
public void write(@NonNull List<? extends DcBaseFinanceEbay> items) { public void write(@NonNull List<? extends DcBaseFinanceEbay> items) {
log.info("批量写入DcBaseFinanceEbay"); log.info("批量写入DcBaseFinanceEbay");
dcBaseFinanceEbayService.saveBatch(items.stream().map(var -> (DcBaseFinanceEbay) var).collect(Collectors.toList())); List<DcBaseFinanceEbay> list = items.stream()
.map(var -> (DcBaseFinanceEbay)var)
.collect(
Collectors.collectingAndThen(
Collectors.toCollection(() -> new TreeSet<>(Comparator.comparing(DcBaseFinanceEbay::getRefNumber)))
, ArrayList::new)
);
list.forEach(x -> {
int total = dcBaseFinanceEbayService.count(new LambdaQueryWrapper<DcBaseFinanceEbay>()
.eq(DcBaseFinanceEbay::getRefNumber,x.getRefNumber()));
if(total <= 0){
dcBaseFinanceEbayService.save(x);
}
});
} }
} }
...@@ -16,7 +16,7 @@ public class BalanceSheetJob { ...@@ -16,7 +16,7 @@ public class BalanceSheetJob {
@Resource @Resource
BalanceSheetService balanceSheetService; BalanceSheetService balanceSheetService;
@Scheduled(cron = "0/10 * * * * ?") @Scheduled(cron = "0 0 1 * * ?")
public void syncBankAccount() { public void syncBankAccount() {
try { try {
log.info("每分钟同步 银行帐号信息 开始"); log.info("每分钟同步 银行帐号信息 开始");
...@@ -30,7 +30,7 @@ public class BalanceSheetJob { ...@@ -30,7 +30,7 @@ public class BalanceSheetJob {
/** /**
* 同步提现在途 * 同步提现在途
*/ */
@Scheduled(cron = "0/10 * * * * ?") @Scheduled(cron = "0 0 1 * * ?")
public void syncWithdrawOnWaySummary() { public void syncWithdrawOnWaySummary() {
try { try {
log.info("每分钟 同步提现在途 开始"); log.info("每分钟 同步提现在途 开始");
...@@ -44,7 +44,7 @@ public class BalanceSheetJob { ...@@ -44,7 +44,7 @@ public class BalanceSheetJob {
/** /**
* 同步第三方帐号余额 * 同步第三方帐号余额
*/ */
@Scheduled(cron = "0/10 * * * * ?") @Scheduled(cron = "0 0 1 * * ?")
public void syncPayPal() { public void syncPayPal() {
try { try {
log.info("每分钟 同步第三方余额 开始"); log.info("每分钟 同步第三方余额 开始");
...@@ -59,7 +59,7 @@ public class BalanceSheetJob { ...@@ -59,7 +59,7 @@ public class BalanceSheetJob {
/** /**
* 同步短期借款余额 * 同步短期借款余额
*/ */
@Scheduled(cron = "0/10 * * * * ?") @Scheduled(cron = "0 0 1 * * ?")
@Transactional(rollbackFor = Exception.class) @Transactional(rollbackFor = Exception.class)
public void syncShortBorrowBalance() { public void syncShortBorrowBalance() {
try { try {
...@@ -74,11 +74,11 @@ public class BalanceSheetJob { ...@@ -74,11 +74,11 @@ public class BalanceSheetJob {
/** /**
* 同步数据中心需要的费用单 * 同步数据中心需要的费用单
*/ */
@Scheduled(cron = "0/10 * * * * ?") @Scheduled(cron = "0 0 1 * * ?")
public void syncCost() { public void syncCost() {
try { try {
log.info("每分钟 同步数据中心需要的费用单 开始"); log.info("每分钟 同步数据中心需要的费用单 开始");
balanceSheetService.syncCost(); //balanceSheetService.syncCost();
log.info("每分钟 同步数据中心需要的费用单 结束"); log.info("每分钟 同步数据中心需要的费用单 结束");
} catch (Exception ex) { } catch (Exception ex) {
log.error("每分钟 同步数据中心需要的费用单 异常:", ex); log.error("每分钟 同步数据中心需要的费用单 异常:", ex);
...@@ -89,7 +89,7 @@ public class BalanceSheetJob { ...@@ -89,7 +89,7 @@ public class BalanceSheetJob {
/** /**
* 同步费用系统采购单:固定资产 * 同步费用系统采购单:固定资产
*/ */
@Scheduled(cron = "0/10 * * * * ?") @Scheduled(cron = "0 0 1 * * ?")
public void syncBuy() { public void syncBuy() {
try { try {
log.info("每分钟 同步费用系统采购单 开始"); log.info("每分钟 同步费用系统采购单 开始");
...@@ -109,7 +109,7 @@ public class BalanceSheetJob { ...@@ -109,7 +109,7 @@ public class BalanceSheetJob {
* </p> * </p>
* 数据来源 * 数据来源
*/ */
@Scheduled(cron = "0/10 * * * * ?") @Scheduled(cron = "0 0 1 * * ?")
public void generateBalanceSheet() { public void generateBalanceSheet() {
try { try {
log.info("每分钟 生成资产负债表 开始"); log.info("每分钟 生成资产负债表 开始");
...@@ -129,7 +129,7 @@ public class BalanceSheetJob { ...@@ -129,7 +129,7 @@ public class BalanceSheetJob {
* </p> * </p>
* 数据来源 * 数据来源
*/ */
@Scheduled(cron = "0/10 * * * * ?") @Scheduled(cron = "0 0 1 * * ?")
public void generateBalanceSheetNewResult() { public void generateBalanceSheetNewResult() {
try { try {
log.info("每分钟 生成新资产负债结果表 开始"); log.info("每分钟 生成新资产负债结果表 开始");
......
...@@ -5,13 +5,19 @@ import com.bailuntec.api.bailuntec.cw.response.BankAccountBalanceDTO; ...@@ -5,13 +5,19 @@ import com.bailuntec.api.bailuntec.cw.response.BankAccountBalanceDTO;
import com.bailuntec.api.bailuntec.cw.response.BorrowBalanceDTO; import com.bailuntec.api.bailuntec.cw.response.BorrowBalanceDTO;
import com.bailuntec.api.bailuntec.cw.response.PayPalBalanceDTO; import com.bailuntec.api.bailuntec.cw.response.PayPalBalanceDTO;
import com.bailuntec.api.bailuntec.cw.response.WithdrawOnWayDTO; import com.bailuntec.api.bailuntec.cw.response.WithdrawOnWayDTO;
import com.bailuntec.api.bailuntec.mj.MjzzApi;
import com.bailuntec.api.bailuntec.mj.resp.MjzzPage;
import com.bailuntec.api.bailuntec.mj.resp.MjzzResult;
import com.bailuntec.api.bailuntec.mj.resp.StockLogResp;
import com.bailuntec.api.bailuntec.mjcg.MjgysApi;
import com.bailuntec.api.bailuntec.mjcg.resp.MjgysResult;
import com.bailuntec.api.bailuntec.mjcg.resp.SupofferLogResp;
import com.bailuntec.application.*; import com.bailuntec.application.*;
import com.bailuntec.common.BeanUtils; import com.bailuntec.common.BeanUtils;
import com.bailuntec.common.ListUtil; import com.bailuntec.common.ListUtil;
import com.bailuntec.cost.api.BuyApi; import com.bailuntec.cost.api.BuyApi;
import com.bailuntec.cost.api.CostApi; import com.bailuntec.cost.api.CostApi;
import com.bailuntec.cost.api.domain.BuyDomain; import com.bailuntec.cost.api.domain.BuyDomain;
import com.bailuntec.cost.api.dto.CostDto;
import com.bailuntec.domain.*; import com.bailuntec.domain.*;
import com.bailuntec.infrastructure.mapper.*; import com.bailuntec.infrastructure.mapper.*;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
...@@ -24,6 +30,9 @@ import java.math.BigDecimal; ...@@ -24,6 +30,9 @@ import java.math.BigDecimal;
import java.text.ParseException; import java.text.ParseException;
import java.time.LocalDate; import java.time.LocalDate;
import java.time.LocalDateTime; import java.time.LocalDateTime;
import java.time.ZoneOffset;
import java.time.format.DateTimeFormatter;
import java.util.Date;
import java.util.List; import java.util.List;
import java.util.stream.Collectors; import java.util.stream.Collectors;
...@@ -213,22 +222,22 @@ public class BalanceSheetService { ...@@ -213,22 +222,22 @@ public class BalanceSheetService {
LocalDate date = dcJobConfig.getStartTime().toLocalDate(); LocalDate date = dcJobConfig.getStartTime().toLocalDate();
List<CostDto> costDtoList = costApi.balanceSheetCostList(dcJobConfig.getStartTimeStr(), dcJobConfig.getEndTimeStr()).getData(); // List<CostDto> costDtoList = costApi.balanceSheetCostList(dcJobConfig.getStartTimeStr(), dcJobConfig.getEndTimeStr()).getData();
costDtoList.forEach(costDto -> { // costDtoList.forEach(costDto -> {
//
DcBaseCost dcBaseCost = dcBaseCostMapper.selectByCostNo(costDto.getCostNo()); // DcBaseCost dcBaseCost = dcBaseCostMapper.selectByCostNo(costDto.getCostNo());
if (dcBaseCost == null) { // if (dcBaseCost == null) {
dcBaseCost = new DcBaseCost(); // dcBaseCost = new DcBaseCost();
} // }
BeanUtils.copyProperties(costDto, dcBaseCost, "id"); // BeanUtils.copyProperties(costDto, dcBaseCost, "id");
dcBaseCost.setDay(dcJobConfig.getStartTime().toLocalDate()); // dcBaseCost.setDay(dcJobConfig.getStartTime().toLocalDate());
if (costDto.getCostStatus().equals(4)) { // if (costDto.getCostStatus().equals(4)) {
dcBaseCost.setIsWaitPay(0); // dcBaseCost.setIsWaitPay(0);
} else { // } else {
dcBaseCost.setIsWaitPay(1); // dcBaseCost.setIsWaitPay(1);
} // }
dcBaseCostService.saveOrUpdate(dcBaseCost); // dcBaseCostService.saveOrUpdate(dcBaseCost);
}); // });
// 删除要过滤的公司主体数据 // 删除要过滤的公司主体数据
dcBaseCostMapper.deleteUnusedCost(date); dcBaseCostMapper.deleteUnusedCost(date);
...@@ -406,6 +415,17 @@ public class BalanceSheetService { ...@@ -406,6 +415,17 @@ public class BalanceSheetService {
@Resource @Resource
IDcBalanceSheetNewService dcBalanceSheetNewService; IDcBalanceSheetNewService dcBalanceSheetNewService;
@Resource
DcSemiSupplierOfferLogMapper dcSemiSupplierOfferLogMapper;
@Resource
DcSemiStockLogMapper dcSemiStockLogMapper;
@Resource
MjgysApi mjgysApi;
@Resource
MjzzApi mjzzApi;
/** /**
* 每天生成资产负债表 * 每天生成资产负债表
* companyValue 0 * companyValue 0
...@@ -467,6 +487,8 @@ public class BalanceSheetService { ...@@ -467,6 +487,8 @@ public class BalanceSheetService {
LocalDate date = dcJobConfig.getStartTime().toLocalDate(); LocalDate date = dcJobConfig.getStartTime().toLocalDate();
getSemiInventoryBalance(dcJobConfig);
DcBalanceSheet dcBalanceSheet = dcBalanceSheetMapper.selectOne(new LambdaQueryWrapper<DcBalanceSheet>() DcBalanceSheet dcBalanceSheet = dcBalanceSheetMapper.selectOne(new LambdaQueryWrapper<DcBalanceSheet>()
.eq(DcBalanceSheet::getCompanyValue, companyValue) .eq(DcBalanceSheet::getCompanyValue, companyValue)
.eq(DcBalanceSheet::getCompanyName, companyName) .eq(DcBalanceSheet::getCompanyName, companyName)
...@@ -642,6 +664,59 @@ public class BalanceSheetService { ...@@ -642,6 +664,59 @@ public class BalanceSheetService {
dcJobConfigMapper.updateById(dcJobConfig.refresh()); dcJobConfigMapper.updateById(dcJobConfig.refresh());
} }
/**
* <p>
* 获取半成品存货
* </p>
* @param dcJobConfig
*/
public void getSemiInventoryBalance(DcJobConfig dcJobConfig){
boolean isOk = true;
DateTimeFormatter dtf = DateTimeFormatter.ofPattern("yyyy-MM-dd");
String startDate = dcJobConfig.getStartTime().toLocalDate().format(dtf);
String endDate = dcJobConfig.getEndTime().toLocalDate().format(dtf);
try {
MjgysResult<List<SupofferLogResp>> supofferLogs = mjgysApi.supofferLog(startDate,endDate);
if (supofferLogs.isSuccess() && supofferLogs.getData().size() > 0) {
dcSemiSupplierOfferLogMapper.insertOrUpdateSemiSupplierOfferLog(supofferLogs.getData());
}
} catch (Exception e) {
e.printStackTrace();
isOk = false;
}
int rows = 5000;
int page = 1;
try {
MjzzResult<MjzzPage<StockLogResp>> stockLogResult = mjzzApi.stockLog(page,rows,startDate,endDate);
if (stockLogResult.getSuccess() && stockLogResult.getData().getTotalItems() > 0) {
dcSemiStockLogMapper.insertOrUpdateSemiStockLog(stockLogResult.getData().getItems());
int totalPages = stockLogResult.getData().getTotalPages();
stockLogResult = null;
while (page < totalPages) {
page += 1;
try {
stockLogResult = mjzzApi.stockLog(page,rows,startDate,endDate);
if (stockLogResult.getData() != null && stockLogResult.getData().getItems() != null) {
dcSemiStockLogMapper.insertOrUpdateSemiStockLog(stockLogResult.getData().getItems());
}
stockLogResult = null;
} catch (Exception e) {
e.printStackTrace();
isOk = false;
continue;
}
}
}
} catch (Exception e) {
e.printStackTrace();
isOk = false;
}
// 生成半成品每日存货
if (isOk) {
Date lastDay = Date.from(dcJobConfig.getStartTime().toInstant(ZoneOffset.ofHours(8)));
dcSemiDailyStockMapper.insertSemiDailyStock(lastDay);
}
}
@Resource @Resource
IDcBalanceSheetNewResultService dcBalanceSheetNewResultService; IDcBalanceSheetNewResultService dcBalanceSheetNewResultService;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment