流水逻辑修改
This commit is contained in:
parent
3e5e9c265e
commit
c934bcb9dc
@ -96,6 +96,9 @@ public class DynamicTaskScheduler {
|
|||||||
commentModel =sxDataService.getCommentModel();
|
commentModel =sxDataService.getCommentModel();
|
||||||
}
|
}
|
||||||
DataBaseInfo dataBaseInfo=sxDataService.getDataBaseInfo(commentModel);
|
DataBaseInfo dataBaseInfo=sxDataService.getDataBaseInfo(commentModel);
|
||||||
|
if(dataBaseInfo==null||StringUtils.isEmpty(dataBaseInfo.getUserName())){
|
||||||
|
return;
|
||||||
|
}
|
||||||
if(ObjectUtil.isNotEmpty(dataBaseInfo.getRefreshTime())){
|
if(ObjectUtil.isNotEmpty(dataBaseInfo.getRefreshTime())){
|
||||||
commentModel.setSyncTime(DateUtil.formatDateTime(dataBaseInfo.getRefreshTime()));
|
commentModel.setSyncTime(DateUtil.formatDateTime(dataBaseInfo.getRefreshTime()));
|
||||||
}
|
}
|
||||||
|
|||||||
@ -75,7 +75,7 @@ public class WebController {
|
|||||||
//sxDataService.getAppSign();
|
//sxDataService.getAppSign();
|
||||||
CommentModel commentModel= sxDataService.getCommentModel();
|
CommentModel commentModel= sxDataService.getCommentModel();
|
||||||
DataBaseInfo dataBaseInfo=sxDataService.getDataBaseInfo(commentModel);
|
DataBaseInfo dataBaseInfo=sxDataService.getDataBaseInfo(commentModel);
|
||||||
if(dataBaseInfo==null){
|
if(dataBaseInfo==null||StringUtils.isEmpty(dataBaseInfo.getUserName())){
|
||||||
log.error("syncGoods dataBaseInfo is null");
|
log.error("syncGoods dataBaseInfo is null");
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|||||||
@ -515,20 +515,22 @@ public class SxDataDao extends BaseDao{
|
|||||||
int count = 0;
|
int count = 0;
|
||||||
Set<Map.Entry> sme=map.entrySet();
|
Set<Map.Entry> sme=map.entrySet();
|
||||||
for (Map.Entry entry : sme) {
|
for (Map.Entry entry : sme) {
|
||||||
|
String key=entry.getKey().toString();
|
||||||
|
String[] splitKey = key.split("-");
|
||||||
|
if(splitKey.length!=2){
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
String itemNo = splitKey[1];
|
||||||
BigDecimal stock_qty= (BigDecimal) entry.getValue();
|
BigDecimal stock_qty= (BigDecimal) entry.getValue();
|
||||||
|
|
||||||
if(stock_qty.compareTo(BigDecimal.ZERO)==0){
|
if(stock_qty.compareTo(BigDecimal.ZERO)==0){
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
String itemNo = (String) entry.getKey();
|
|
||||||
ProductQuantityConsumptionDto productQuantityConsumptionDto=pqMap.get(itemNo);
|
ProductQuantityConsumptionDto productQuantityConsumptionDto=pqMap.get(itemNo);
|
||||||
BigDecimal unitPrice = productQuantityConsumptionDto.getUnitPrice();
|
if(productQuantityConsumptionDto.getSaleAmount().compareTo(BigDecimal.ZERO)==0){
|
||||||
RmSaleflow rmSaleflow=new RmSaleflow();
|
continue;
|
||||||
rmSaleflow.setItemNo(itemNo);
|
}
|
||||||
rmSaleflow.setSalePrice(unitPrice);
|
RmSaleflow rmSaleflow = getRmSaleflow(productQuantityConsumptionDto, itemNo, stock_qty);
|
||||||
rmSaleflow.setSaleQnty(stock_qty);
|
|
||||||
rmSaleflow.setSourcePrice(unitPrice);
|
|
||||||
rmSaleflow.setFlownoRand(productQuantityConsumptionDto.getOrderId());//随机子单号 设置网上订单号
|
|
||||||
rmSaleflow= fixRmSaleFlow(rmSaleflow,brachNo,itemInfoMap,dataBaseInfo.getSaleAccount());
|
rmSaleflow= fixRmSaleFlow(rmSaleflow,brachNo,itemInfoMap,dataBaseInfo.getSaleAccount());
|
||||||
TRmPayflow trmPayflow=fixTRmPayflow(rmSaleflow);
|
TRmPayflow trmPayflow=fixTRmPayflow(rmSaleflow);
|
||||||
|
|
||||||
@ -587,6 +589,25 @@ public class SxDataDao extends BaseDao{
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 封装对象
|
||||||
|
* @param productQuantityConsumptionDto
|
||||||
|
* @param itemNo
|
||||||
|
* @param stock_qty
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
private RmSaleflow getRmSaleflow(ProductQuantityConsumptionDto productQuantityConsumptionDto, String itemNo, BigDecimal stock_qty) {
|
||||||
|
BigDecimal unitPrice = productQuantityConsumptionDto.getUnitPrice();
|
||||||
|
RmSaleflow rmSaleflow=new RmSaleflow();
|
||||||
|
rmSaleflow.setItemNo(itemNo);
|
||||||
|
rmSaleflow.setSalePrice(unitPrice);
|
||||||
|
rmSaleflow.setSaleQnty(stock_qty);
|
||||||
|
rmSaleflow.setSaleMoney(productQuantityConsumptionDto.getSaleAmount());
|
||||||
|
// rmSaleflow.setSourcePrice(unitPrice);
|
||||||
|
rmSaleflow.setFlownoRand(productQuantityConsumptionDto.getOrderId());//随机子单号 设置网上订单号
|
||||||
|
return rmSaleflow;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 补充字段
|
* 补充字段
|
||||||
* @param rmSaleflow
|
* @param rmSaleflow
|
||||||
@ -597,7 +618,8 @@ public class SxDataDao extends BaseDao{
|
|||||||
rmSaleflow.setFlowId(1);
|
rmSaleflow.setFlowId(1);
|
||||||
String orderId=rmSaleflow.getFlownoRand();
|
String orderId=rmSaleflow.getFlownoRand();
|
||||||
String[] orderIdSplits= orderId.split("_");
|
String[] orderIdSplits= orderId.split("_");
|
||||||
String DateStr=DateUtil.format(new java.util.Date(),"yyyyMMdd");
|
//String DateStr=DateUtil.format(new java.util.Date(),"yyyyMMdd");
|
||||||
|
String DateStr=orderIdSplits[1];
|
||||||
String number= String.format("%04d", Integer.valueOf(orderIdSplits[orderIdSplits.length-1]));
|
String number= String.format("%04d", Integer.valueOf(orderIdSplits[orderIdSplits.length-1]));
|
||||||
String flowNo="99"+DateStr+number;
|
String flowNo="99"+DateStr+number;
|
||||||
rmSaleflow.setFlowNo(flowNo);//订单号 todo
|
rmSaleflow.setFlowNo(flowNo);//订单号 todo
|
||||||
@ -612,17 +634,18 @@ public class SxDataDao extends BaseDao{
|
|||||||
rmSaleflow.setSaleQnty(saleQnty);
|
rmSaleflow.setSaleQnty(saleQnty);
|
||||||
rmSaleflow.setRetQnty(BigDecimal.ZERO);
|
rmSaleflow.setRetQnty(BigDecimal.ZERO);
|
||||||
}
|
}
|
||||||
BigDecimal saleMoney=rmSaleflow.getSalePrice().multiply(rmSaleflow.getSaleQnty());
|
// BigDecimal saleMoney=rmSaleflow.getSalePrice().multiply(rmSaleflow.getSaleQnty());
|
||||||
if(rmSaleflow.getSaleQnty().compareTo(BigDecimal.ZERO)<0){
|
// if(rmSaleflow.getSaleQnty().compareTo(BigDecimal.ZERO)<0){
|
||||||
saleMoney=saleMoney.multiply(new BigDecimal("-1"));
|
// saleMoney=saleMoney.multiply(new BigDecimal("-1"));
|
||||||
}
|
// }
|
||||||
rmSaleflow.setSaleMoney(saleMoney);
|
// rmSaleflow.setSaleMoney(saleMoney);
|
||||||
//判断取值 end
|
//判断取值 end
|
||||||
|
|
||||||
//数据库查询取值start todo
|
//数据库查询取值start todo
|
||||||
ItemInfo itemInfo=itemInfoMap.get(rmSaleflow.getItemNo());
|
ItemInfo itemInfo=itemInfoMap.get(rmSaleflow.getItemNo());
|
||||||
if(itemInfo!=null){
|
if(itemInfo!=null){
|
||||||
rmSaleflow.setInPrice(itemInfo.getPrice());
|
rmSaleflow.setInPrice(itemInfo.getPrice());
|
||||||
|
rmSaleflow.setSourcePrice(itemInfo.getSalePrice());
|
||||||
rmSaleflow.setOperDate(new Timestamp(System.currentTimeMillis()));
|
rmSaleflow.setOperDate(new Timestamp(System.currentTimeMillis()));
|
||||||
}
|
}
|
||||||
rmSaleflow.setBranchNo(branchNo);
|
rmSaleflow.setBranchNo(branchNo);
|
||||||
@ -654,11 +677,12 @@ public class SxDataDao extends BaseDao{
|
|||||||
TRmPayflow rmPayflow=new TRmPayflow();
|
TRmPayflow rmPayflow=new TRmPayflow();
|
||||||
rmPayflow.setFlowId(rmSaleflow.getFlowId());
|
rmPayflow.setFlowId(rmSaleflow.getFlowId());
|
||||||
rmPayflow.setFlowNo(rmSaleflow.getFlowNo());
|
rmPayflow.setFlowNo(rmSaleflow.getFlowNo());
|
||||||
BigDecimal saleAmount=rmSaleflow.getSalePrice().multiply(rmSaleflow.getSaleQnty()).setScale(2, RoundingMode.HALF_UP);
|
// BigDecimal saleAmount=rmSaleflow.getSalePrice().multiply(rmSaleflow.getSaleQnty()).setScale(2, RoundingMode.HALF_UP);
|
||||||
if(saleAmount.compareTo(BigDecimal.ZERO)<0){
|
// if(saleAmount.compareTo(BigDecimal.ZERO)<0){
|
||||||
saleAmount=saleAmount.multiply(new BigDecimal("-1"));
|
// saleAmount=saleAmount.multiply(new BigDecimal("-1"));
|
||||||
}
|
// }
|
||||||
rmPayflow.setSaleAmount(saleAmount);
|
// rmPayflow.setSaleAmount(saleAmount);
|
||||||
|
rmPayflow.setSaleAmount(rmSaleflow.getSaleMoney());
|
||||||
rmPayflow.setBranchNo(rmSaleflow.getBranchNo());
|
rmPayflow.setBranchNo(rmSaleflow.getBranchNo());
|
||||||
rmPayflow.setPayWay("RMB");//人民币
|
rmPayflow.setPayWay("RMB");//人民币
|
||||||
rmPayflow.setSellWay(rmSaleflow.getSellWay());
|
rmPayflow.setSellWay(rmSaleflow.getSellWay());
|
||||||
@ -666,7 +690,7 @@ public class SxDataDao extends BaseDao{
|
|||||||
rmPayflow.setVipNo(null);
|
rmPayflow.setVipNo(null);
|
||||||
rmPayflow.setCoinNo("RMB");//
|
rmPayflow.setCoinNo("RMB");//
|
||||||
rmPayflow.setCoinRate(new BigDecimal("1"));//利率
|
rmPayflow.setCoinRate(new BigDecimal("1"));//利率
|
||||||
rmPayflow.setPayAmount(saleAmount);
|
rmPayflow.setPayAmount(rmSaleflow.getSaleMoney());
|
||||||
rmPayflow.setOperDate(new Timestamp(System.currentTimeMillis()));
|
rmPayflow.setOperDate(new Timestamp(System.currentTimeMillis()));
|
||||||
rmPayflow.setOperId(rmSaleflow.getOperId());
|
rmPayflow.setOperId(rmSaleflow.getOperId());
|
||||||
rmPayflow.setCounterNo(rmSaleflow.getCounterNo());
|
rmPayflow.setCounterNo(rmSaleflow.getCounterNo());
|
||||||
@ -712,7 +736,11 @@ public class SxDataDao extends BaseDao{
|
|||||||
Set<Map.Entry> sme=map.entrySet();
|
Set<Map.Entry> sme=map.entrySet();
|
||||||
String where = "where 1=1 and ";
|
String where = "where 1=1 and ";
|
||||||
List<String> itemNos = sme.stream()
|
List<String> itemNos = sme.stream()
|
||||||
.map(entry -> (String) entry.getKey())
|
.map(entry -> {
|
||||||
|
String key= (String) entry.getKey();
|
||||||
|
String[] split = key.split("-");
|
||||||
|
return split[1];
|
||||||
|
})
|
||||||
.collect(Collectors.toList());
|
.collect(Collectors.toList());
|
||||||
where += SqlBuilder.buildInCondition("item_no", itemNos);
|
where += SqlBuilder.buildInCondition("item_no", itemNos);
|
||||||
ResultDto resultDto= this.baseFindList(dataBaseInfo.getIp(),dataBaseInfo.getUserName(),dataBaseInfo.getPassword(),
|
ResultDto resultDto= this.baseFindList(dataBaseInfo.getIp(),dataBaseInfo.getUserName(),dataBaseInfo.getPassword(),
|
||||||
@ -738,6 +766,9 @@ public class SxDataDao extends BaseDao{
|
|||||||
if(StringUtils.isNotEmpty(rs.getString("item_clsno"))){
|
if(StringUtils.isNotEmpty(rs.getString("item_clsno"))){
|
||||||
itemInfo.setItemClsno(rs.getString("item_clsno").trim());
|
itemInfo.setItemClsno(rs.getString("item_clsno").trim());
|
||||||
}
|
}
|
||||||
|
if(StringUtils.isNotEmpty(rs.getString("sale_price"))){
|
||||||
|
itemInfo.setSalePrice(rs.getBigDecimal("sale_price"));
|
||||||
|
}
|
||||||
resultMap.put(itemNo,itemInfo);
|
resultMap.put(itemNo,itemInfo);
|
||||||
}
|
}
|
||||||
} catch (SQLException e) {
|
} catch (SQLException e) {
|
||||||
|
|||||||
@ -43,7 +43,7 @@ public class DataBaseInfo {
|
|||||||
private String shopGapTime;
|
private String shopGapTime;
|
||||||
|
|
||||||
@ApiModelProperty(value = "调价时间")
|
@ApiModelProperty(value = "调价时间")
|
||||||
private String priceOperatiem;
|
private String priceOperatime;
|
||||||
|
|
||||||
@ApiModelProperty(value = "库存条件")
|
@ApiModelProperty(value = "库存条件")
|
||||||
private String stockOperateWhere;
|
private String stockOperateWhere;
|
||||||
|
|||||||
@ -29,6 +29,9 @@ public class ProductQuantityConsumptionDto {
|
|||||||
@ApiModelProperty("数量(正数表示入库/增加,负数表示出库/减少)")
|
@ApiModelProperty("数量(正数表示入库/增加,负数表示出库/减少)")
|
||||||
private BigDecimal quantity;
|
private BigDecimal quantity;
|
||||||
|
|
||||||
|
@ApiModelProperty("订单总额")
|
||||||
|
private BigDecimal saleAmount;
|
||||||
|
|
||||||
@ApiModelProperty("消费状态:0-未消费,1-已消费")
|
@ApiModelProperty("消费状态:0-未消费,1-已消费")
|
||||||
private Integer status;
|
private Integer status;
|
||||||
|
|
||||||
|
|||||||
@ -334,7 +334,7 @@ public class SxDataServiceImp extends SxDataAbstService implements SxDataService
|
|||||||
String stockOperateWhere=" ls.oper_date>'"+dataBaseInfo.getOperDate()+"' ";
|
String stockOperateWhere=" ls.oper_date>'"+dataBaseInfo.getOperDate()+"' ";
|
||||||
dataBaseInfo.setStockOperateWhere(stockOperateWhere);
|
dataBaseInfo.setStockOperateWhere(stockOperateWhere);
|
||||||
}
|
}
|
||||||
if(StringUtils.isNotEmpty(dataBaseInfo.getPriceOperatiem())){
|
if(StringUtils.isNotEmpty(dataBaseInfo.getPriceOperatime())){
|
||||||
where+=" and EXISTS ( " +
|
where+=" and EXISTS ( " +
|
||||||
" select " +
|
" select " +
|
||||||
" shop.item_no " +
|
" shop.item_no " +
|
||||||
@ -344,17 +344,19 @@ public class SxDataServiceImp extends SxDataAbstService implements SxDataService
|
|||||||
" on " +
|
" on " +
|
||||||
" tpfd.sheet_no = tppfm.sheet_no " +
|
" tpfd.sheet_no = tppfm.sheet_no " +
|
||||||
" where " +
|
" where " +
|
||||||
" tppfm.valid_flag = '1' " +//有效
|
" tppfm.valid_flag = '2' " +//有效
|
||||||
" and shop.item_no=tpfd.item_no " +
|
" and shop.item_no=tpfd.item_no " +
|
||||||
" and tppfm.oper_date >'"+dataBaseInfo.getPriceOperatiem()+"' " +
|
" and tppfm.oper_date >'"+dataBaseInfo.getPriceOperatime()+"' " +
|
||||||
" )";
|
" )";
|
||||||
}
|
}
|
||||||
dataBaseInfo.setWhere(where);
|
dataBaseInfo.setWhere(where);
|
||||||
// 记录总数
|
// 记录总数
|
||||||
total = sxDataDao.getTBditemInfoJoninTotal(dataBaseInfo);
|
total = sxDataDao.getTBditemInfoJoninTotal(dataBaseInfo);
|
||||||
}else {
|
}else {
|
||||||
|
where="where b.status='1'";
|
||||||
dataBaseInfo.setWhere(where);
|
dataBaseInfo.setWhere(where);
|
||||||
total = sxDataDao.getTBditemInfoTotal(dataBaseInfo);
|
total = sxDataDao.getTBditemInfoTotal(dataBaseInfo);
|
||||||
|
where="where shop.status='1'";
|
||||||
}
|
}
|
||||||
if(total==0){
|
if(total==0){
|
||||||
log.info("暂无商品同步");
|
log.info("暂无商品同步");
|
||||||
@ -471,9 +473,10 @@ public class SxDataServiceImp extends SxDataAbstService implements SxDataService
|
|||||||
* 增量同步 调价单变化
|
* 增量同步 调价单变化
|
||||||
*/
|
*/
|
||||||
private void syncFlowPrice(DataBaseInfo dataBaseInfo, CommentModel commentModel,String sycnTime){
|
private void syncFlowPrice(DataBaseInfo dataBaseInfo, CommentModel commentModel,String sycnTime){
|
||||||
dataBaseInfo.setPriceOperatiem(sycnTime);
|
dataBaseInfo.setPriceOperatime(sycnTime);
|
||||||
commentModel.setSyncTime("");
|
commentModel.setSyncTime("");
|
||||||
dataBaseInfo.setOperDate("");
|
dataBaseInfo.setOperDate("");
|
||||||
|
dataBaseInfo.setStockOperateWhere("");
|
||||||
syncAllGoods(dataBaseInfo,commentModel);
|
syncAllGoods(dataBaseInfo,commentModel);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -773,7 +776,7 @@ public class SxDataServiceImp extends SxDataAbstService implements SxDataService
|
|||||||
if(!productQuantityConsumptionDtoList.isEmpty()){
|
if(!productQuantityConsumptionDtoList.isEmpty()){
|
||||||
Map map = productQuantityConsumptionDtoList.stream()
|
Map map = productQuantityConsumptionDtoList.stream()
|
||||||
.collect(Collectors.groupingBy(
|
.collect(Collectors.groupingBy(
|
||||||
ProductQuantityConsumptionDto::getProductNumber,
|
dto -> dto.getOrderId()+"-"+dto.getProductNumber(),
|
||||||
Collectors.reducing(
|
Collectors.reducing(
|
||||||
BigDecimal.ZERO,
|
BigDecimal.ZERO,
|
||||||
ProductQuantityConsumptionDto::getQuantity,
|
ProductQuantityConsumptionDto::getQuantity,
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user