diff --git a/pom.xml b/pom.xml index 40a8e590..b1678a2d 100644 --- a/pom.xml +++ b/pom.xml @@ -153,11 +153,11 @@ 8.0.15 - - - - - + + com.microsoft.sqlserver + mssql-jdbc + 8.4.1.jre8 + org.springframework diff --git a/src/main/java/com/qs/serve/common/framework/manager/AsyncFactory.java b/src/main/java/com/qs/serve/common/framework/manager/AsyncFactory.java index 386267fa..0a5f7a42 100644 --- a/src/main/java/com/qs/serve/common/framework/manager/AsyncFactory.java +++ b/src/main/java/com/qs/serve/common/framework/manager/AsyncFactory.java @@ -3,12 +3,16 @@ package com.qs.serve.common.framework.manager; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.qs.serve.common.config.DevEnvironmentConfig; +import com.qs.serve.common.framework.redis.RedisService; +import com.qs.serve.common.model.dto.R; import com.qs.serve.common.util.AuthContextUtils; import com.qs.serve.common.util.JsonUtil; import com.qs.serve.common.util.SpringUtils; import com.qs.serve.modules.data.entity.DataAffairCommit; import com.qs.serve.modules.data.service.DataAffairCommitService; import com.qs.serve.modules.seeyon.service.SeeYonOperationService; +import com.qs.serve.modules.seeyon.service.SeeYonRequestService; +import com.qs.serve.modules.seeyon.service.impl.SeeYonRequestBaseService; import com.qs.serve.modules.sys.entity.SysOperationLog; import com.qs.serve.modules.sys.mapper.SysOperationLogMapper; import com.qs.serve.modules.tbs.entity.TbsBudget; @@ -30,6 +34,9 @@ import org.springframework.scheduling.annotation.Async; import java.math.BigDecimal; import java.util.TimerTask; +import java.util.concurrent.TimeUnit; + +import static com.qs.serve.modules.tbs.common.TbsSeeYonConst.ERP_CUS_AMOUNT; /** * 异步工厂 @@ -53,6 +60,41 @@ public class AsyncFactory { }; } + /** + * 异步保存政策状态 + * @param userId + * @param supplierCode + * @return + */ + public static TimerTask initCustomerPrice(String userId,String supplierCode) { + return new TimerTask() { + @Override + public void run() { + String lockKey = "customer_price_lock:"+userId+":"+supplierCode; + String priceDataKey = "customer_price_data:"+userId; + RedisService redisService = SpringUtils.getBean(RedisService.class); + redisService.set(lockKey,1,30,TimeUnit.SECONDS); + log.debug("获取客户金额,cusCode:{}",supplierCode); + //请求获取金额 + SeeYonRequestBaseService seeYonRequestService = SpringUtils.getBean(SeeYonRequestBaseService.class); + R reqResult = seeYonRequestService.getBase(ERP_CUS_AMOUNT+"?supplierCode="+supplierCode,"获取客户["+supplierCode+"]金额"); + if(reqResult==null || !reqResult.getStatus().equals(200)){ + //有错误退出 + log.warn("获取客户金额失败,cusCode:{}",supplierCode); + redisService.set(lockKey,0); + return; + } + String amount = reqResult.getData()==null?"0":reqResult.getData(); + //数据格式:supplierCode_&_amount 如 A235654_&_612.00 + String value = supplierCode+"_&_"+amount; + //缓存15分钟 + log.debug("获取客户金额成功,cusCode:{},缓存15分钟",supplierCode); + redisService.set(priceDataKey,value,15, TimeUnit.MINUTES); + redisService.set(lockKey,0); + } + }; + } + /** * 异步保存政策状态 * @param policyId @@ -94,7 +136,7 @@ public class AsyncFactory { try { AuthContextUtils.setTenant("001"); log.debug("--------------------------SubmitBudgetApply CallbackTimer Sleep Start :{}------------------------------",budgetId); - Thread.sleep(7*1000); + Thread.sleep(3*1000); TbsBudgetChangeOperationServiceImpl applyOperationService = SpringUtils.getBean(TbsBudgetChangeOperationServiceImpl.class); String summeryResult = applyOperationService.checkAffairSummery(budgetId); @@ -175,7 +217,7 @@ public class AsyncFactory { try { AuthContextUtils.setTenant("001"); log.debug("--------------------------submitBudgetApply CallbackTimer Sleep Start :{}------------------------------",budgetId); - Thread.sleep(7*1000); + Thread.sleep(3*1000); TbsBudgetApplyOperationServiceImpl applyOperationService = SpringUtils.getBean(TbsBudgetApplyOperationServiceImpl.class); String summeryResult = applyOperationService.checkAffairSummery(budgetId); if(summeryResult.equals(TbsCostApplyOperationServiceImpl.SummeryState_Success)){ @@ -188,7 +230,7 @@ public class AsyncFactory { } TbsAffairCommitBo doParam = new TbsAffairCommitBo(); doParam.setTargetId(budgetId); - if (state==null||state==1){ + if (state == 1){ applyOperationService.doFinished(doParam); }else if (state==2){ applyOperationService.doCommitBacked(budgetId); diff --git a/src/main/java/com/qs/serve/common/util/JdbcUtil.java b/src/main/java/com/qs/serve/common/util/JdbcUtil.java new file mode 100644 index 00000000..1a7251e7 --- /dev/null +++ b/src/main/java/com/qs/serve/common/util/JdbcUtil.java @@ -0,0 +1,107 @@ +package com.qs.serve.common.util; + +import lombok.extern.slf4j.Slf4j; +import org.springframework.util.StringUtils; + +import java.sql.*; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +/** + * 原生JDBC工具类 + * @Author JcYen + * @Date 2021/6/4 + */ +@Slf4j +public class JdbcUtil { + + private static final String[] FILTER_WORD = new String[]{"truncate","create","alter","eval","delete","sp_password"}; + + /** + * 执行SQL(为安全,拦截delete语句) + * @param username + * @param password + * @param url + * @param driverName + * @param sql + * @return + */ + public static List> query(String username, String password, String url, String driverName, String sql) { + //检查SQL,防止SQL执行DDL语句 + doSqlFilter(sql); + List> list = new ArrayList(); + Connection conn = null; + Statement stmt = null; + ResultSet rs = null; + try { + Class.forName(driverName); + conn = DriverManager.getConnection(url, username, password); + stmt = conn.createStatement(); + log.debug("JDBC工具类 Preparing SQL: {}",url); + rs = stmt.executeQuery(sql); + ResultSetMetaData md = rs.getMetaData(); + int columnCount = md.getColumnCount(); + while (rs.next()) { + Map rowData = new HashMap<>(); + for (int i = 1; i <= columnCount; i++) { + rowData.put(md.getColumnName(i), rs.getObject(i)); + } + list.add(rowData); + } + } catch (ClassNotFoundException e) { + log.warn(e.getMessage()); + } catch (SQLException throwables) { + log.error(throwables.getMessage()); + }finally { + if(rs!=null){ + try { + rs.close(); + } catch (SQLException e) { + e.printStackTrace(); + } + } + if (stmt!=null){ + try { + stmt.close(); + } catch (SQLException e) { + e.printStackTrace(); + } + } + if(conn!=null){ + try { + conn.close(); + } catch (SQLException e) { + e.printStackTrace(); + } + } + rs = null; + stmt = null; + conn = null; + } + return list; + } + + private static void doSqlFilter(String sql){ + boolean unsafe = false; + String[] parts = sql.split(" "); + for (String part : parts) { + if(unsafe){ break; } + if(StringUtils.isEmpty(part)){ + continue; + } + part = part.trim(); + for (String filterWord : FILTER_WORD) { + if(part.equalsIgnoreCase(filterWord)){ + unsafe = true; + break; + } + } + } + if(unsafe){ + //AssertUtil.("非法SQL被拦截 ==> "+sql); + } + } + +} diff --git a/src/main/java/com/qs/serve/modules/erp/controller/ErpCustomerController.java b/src/main/java/com/qs/serve/modules/erp/controller/ErpCustomerController.java new file mode 100644 index 00000000..caa30886 --- /dev/null +++ b/src/main/java/com/qs/serve/modules/erp/controller/ErpCustomerController.java @@ -0,0 +1,72 @@ +package com.qs.serve.modules.erp.controller; + +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.qs.serve.common.model.dto.PageVo; +import com.qs.serve.common.model.dto.R; +import com.qs.serve.common.util.PageUtil; +import com.qs.serve.modules.bms.entity.BmsSupplier; +import com.qs.serve.modules.bms.service.BmsSupplierService; +import com.qs.serve.modules.erp.entity.dto.ErpCustomerAmountResult; +import com.qs.serve.modules.erp.service.ErpCustomerService; +import com.qs.serve.modules.goods.entity.GoodsBrand; +import lombok.AllArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.springframework.security.access.prepost.PreAuthorize; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.PathVariable; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +import java.math.BigDecimal; + + +/** + * ERP客户 + * @author YenHex + * @since 2023/9/5 + */ +@Slf4j +@AllArgsConstructor +@RestController +@RequestMapping("erp/customer") +public class ErpCustomerController { + + private final ErpCustomerService erpCustomerService; + private final BmsSupplierService supplierService; + + /** + * 获取客户帐余 + * @param code + * @return + */ + @GetMapping("/getAmount/{code}") + public R getAmount(@PathVariable String code){ + BmsSupplier supplier = supplierService.getByCode(code,null); + if(supplier!=null){ + ErpCustomerAmountResult amountResult = erpCustomerService.getCustomerAmount(code); + if(amountResult==null){ + //初始化帐余 + erpCustomerService.initAmount(code); + return new R(201,"客户帐余初始中"); + } + return R.ok(amountResult); + } + return R.error(); + } + + /** + * 初始化客户帐余 + * @param code + * @return + */ + @GetMapping("/initAmount/{code}") + public R initAmount(@PathVariable String code){ + BmsSupplier supplier = supplierService.getByCode(code,null); + if(supplier!=null){ + erpCustomerService.initAmount(code); + return R.ok(); + } + return R.error(); + } + +} diff --git a/src/main/java/com/qs/serve/modules/erp/entity/dto/ErpCustomerAmountResult.java b/src/main/java/com/qs/serve/modules/erp/entity/dto/ErpCustomerAmountResult.java new file mode 100644 index 00000000..5b666946 --- /dev/null +++ b/src/main/java/com/qs/serve/modules/erp/entity/dto/ErpCustomerAmountResult.java @@ -0,0 +1,19 @@ +package com.qs.serve.modules.erp.entity.dto; + +import lombok.Data; + +import java.math.BigDecimal; + +/** + * @author YenHex + * @since 2023/9/5 + */ +@Data +public class ErpCustomerAmountResult { + + /** + * 余额 + */ + BigDecimal amount; + +} diff --git a/src/main/java/com/qs/serve/modules/erp/service/ErpCustomerService.java b/src/main/java/com/qs/serve/modules/erp/service/ErpCustomerService.java new file mode 100644 index 00000000..b18c4dd5 --- /dev/null +++ b/src/main/java/com/qs/serve/modules/erp/service/ErpCustomerService.java @@ -0,0 +1,25 @@ +package com.qs.serve.modules.erp.service; + +import com.qs.serve.modules.erp.entity.dto.ErpCustomerAmountResult; +import org.springframework.web.bind.annotation.PathVariable; + +/** + * @author YenHex + * @since 2023/9/5 + */ +public interface ErpCustomerService { + + /** + * 获取客户帐余额 + * @param supplierCode + * @return + */ + ErpCustomerAmountResult getCustomerAmount(String supplierCode); + + /** + * 初始化 + * @param code + */ + void initAmount( String code); + +} diff --git a/src/main/java/com/qs/serve/modules/erp/service/impl/ErpCustomerServiceImpl.java b/src/main/java/com/qs/serve/modules/erp/service/impl/ErpCustomerServiceImpl.java new file mode 100644 index 00000000..a252c06e --- /dev/null +++ b/src/main/java/com/qs/serve/modules/erp/service/impl/ErpCustomerServiceImpl.java @@ -0,0 +1,68 @@ +package com.qs.serve.modules.erp.service.impl; + +import cn.hutool.core.collection.CollectionUtil; +import cn.hutool.crypto.Mode; +import cn.hutool.crypto.Padding; +import cn.hutool.crypto.symmetric.AES; +import com.qs.serve.common.framework.manager.AsyncFactory; +import com.qs.serve.common.framework.manager.AsyncManager; +import com.qs.serve.common.framework.redis.RedisService; +import com.qs.serve.common.util.AuthContextUtils; +import com.qs.serve.common.util.JdbcUtil; +import com.qs.serve.modules.erp.entity.dto.ErpCustomerAmountResult; +import com.qs.serve.modules.erp.service.ErpCustomerService; +import lombok.AllArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.springframework.stereotype.Service; + +import java.math.BigDecimal; +import java.util.List; +import java.util.Map; + +/** + * @author YenHex + * @since 2023/9/5 + */ +@Slf4j +@Service +@AllArgsConstructor +public class ErpCustomerServiceImpl implements ErpCustomerService { + + private final RedisService redisService; + + @Override + public ErpCustomerAmountResult getCustomerAmount(String supplierCode) { + String userId = AuthContextUtils.getSysUserId(); + String priceDataKey = "customer_price_data:"+userId; + //数据格式:supplierCode_&_amount 如 A235654_&_612.00 + String data = redisService.getString(priceDataKey); + if(data != null){ + String[] vals = data.split("_&_"); + if(vals.length==2){ + String code = vals[0]; + String amountStr = vals[1]; + if(code.equals(supplierCode)){ + ErpCustomerAmountResult amountResult = new ErpCustomerAmountResult(); + amountResult.setAmount(new BigDecimal(amountStr)); + return amountResult; + } + } + } + this.initAmount(supplierCode); + return null; + } + + @Override + public void initAmount(String code) { + String userId = AuthContextUtils.getSysUserId(); + String lockKey = "customer_price_lock:"+userId+":"+code; + // lockState=1 锁 + Integer lockState = redisService.getInteger(lockKey); + log.debug("customer_price_lock_value:"+lockState); + if(lockState==null||lockState==0){ + //设置值到redis + AsyncManager.me().execute(AsyncFactory.initCustomerPrice(userId,code)); + } + } + +} diff --git a/src/main/java/com/qs/serve/modules/goods/controller/GoodsSpuController.java b/src/main/java/com/qs/serve/modules/goods/controller/GoodsSpuController.java index abf9e695..559805e5 100644 --- a/src/main/java/com/qs/serve/modules/goods/controller/GoodsSpuController.java +++ b/src/main/java/com/qs/serve/modules/goods/controller/GoodsSpuController.java @@ -131,7 +131,7 @@ public class GoodsSpuController { @SysLog(module = SystemModule.GOODS, title = "spu", biz = BizType.QUERY) @PreAuthorize("hasRole('goods:spu:query')") public R getById(@PathVariable("id") Long id){ - GoodsSpuVo goodsSpu = goodsSpuService.getVoById(id); + GoodsSpuVo goodsSpu = goodsSpuService.getVoById(id,null); return R.ok(goodsSpu); } diff --git a/src/main/java/com/qs/serve/modules/goods/controller/api/GoodsSpuApi.java b/src/main/java/com/qs/serve/modules/goods/controller/api/GoodsSpuApi.java index 0183dc50..d8b4755c 100644 --- a/src/main/java/com/qs/serve/modules/goods/controller/api/GoodsSpuApi.java +++ b/src/main/java/com/qs/serve/modules/goods/controller/api/GoodsSpuApi.java @@ -6,8 +6,10 @@ import com.qs.serve.common.model.dto.PageVo; import com.qs.serve.common.model.dto.R; import com.qs.serve.common.model.enums.BizType; import com.qs.serve.common.model.enums.SystemModule; +import com.qs.serve.common.util.AuthContextUtils; import com.qs.serve.common.util.PageUtil; import com.qs.serve.common.util.StringUtils; +import com.qs.serve.modules.bms.entity.BmsSupplier; import com.qs.serve.modules.goods.entity.GoodsSpu; import com.qs.serve.modules.goods.entity.bo.GoodsSpuBatchTasteBo; import com.qs.serve.modules.goods.entity.vo.GoodsSpuVo; @@ -68,13 +70,12 @@ public class GoodsSpuApi { /** * 获取详情 * @param id spuId - * @param supplierId 客户id * @return */ @GetMapping("/getById/{id}") - public R getById(@PathVariable("id") Long id,String supplierId){ - GoodsSpuVo goodsSpu = goodsSpuService.getVoById(id); - //TODO 获取价格 + public R getById(@PathVariable("id") Long id){ + BmsSupplier supplier = AuthContextUtils.getCurrentSupplier(); + GoodsSpuVo goodsSpu = goodsSpuService.getVoById(id, supplier.getCode()); return R.ok(goodsSpu); } diff --git a/src/main/java/com/qs/serve/modules/goods/entity/GoodsSpu.java b/src/main/java/com/qs/serve/modules/goods/entity/GoodsSpu.java index 98f55e48..554759ce 100644 --- a/src/main/java/com/qs/serve/modules/goods/entity/GoodsSpu.java +++ b/src/main/java/com/qs/serve/modules/goods/entity/GoodsSpu.java @@ -1,5 +1,6 @@ package com.qs.serve.modules.goods.entity; +import java.math.BigDecimal; import java.time.LocalDateTime; import java.io.Serializable; @@ -113,6 +114,10 @@ public class GoodsSpu implements Serializable { /** 商品销售类型:0-普通商品;1-赠品 */ private Integer goodsSaleType; + /** 展示的价格 */ + @TableField(exist = false) + private Double showPrice = 123D; + /** 选中的类目ID */ @TableField(exist = false) private Long selectCategoryId; diff --git a/src/main/java/com/qs/serve/modules/goods/entity/dto/InventoryCusPrice.java b/src/main/java/com/qs/serve/modules/goods/entity/dto/InventoryCusPrice.java new file mode 100644 index 00000000..749bc890 --- /dev/null +++ b/src/main/java/com/qs/serve/modules/goods/entity/dto/InventoryCusPrice.java @@ -0,0 +1,32 @@ +package com.qs.serve.modules.goods.entity.dto; + +import lombok.Data; + +import java.math.BigDecimal; +import java.util.Date; + +/** + * 客户存货商品价格 + * @author YenHex + * @since 2021/10/28 + */ +@Data +public class InventoryCusPrice { + + private String cusCode; + + private String invCode; + + private BigDecimal price; + + /** + * 开始时间 + */ + private Date startDate; + + /** + * 结束时间 + */ + private Date endDate; + +} diff --git a/src/main/java/com/qs/serve/modules/goods/entity/so/InventoryCusPriceQuery.java b/src/main/java/com/qs/serve/modules/goods/entity/so/InventoryCusPriceQuery.java new file mode 100644 index 00000000..96b81bfb --- /dev/null +++ b/src/main/java/com/qs/serve/modules/goods/entity/so/InventoryCusPriceQuery.java @@ -0,0 +1,17 @@ +package com.qs.serve.modules.goods.entity.so; + +import lombok.Data; + +import java.util.List; + +/** + * @author YenHex + * @since 2023/9/6 + */ +@Data +public class InventoryCusPriceQuery { + + String cusCode; + List invCodes; + +} diff --git a/src/main/java/com/qs/serve/modules/goods/service/GoodsSkuService.java b/src/main/java/com/qs/serve/modules/goods/service/GoodsSkuService.java index e0626976..4714012a 100644 --- a/src/main/java/com/qs/serve/modules/goods/service/GoodsSkuService.java +++ b/src/main/java/com/qs/serve/modules/goods/service/GoodsSkuService.java @@ -25,6 +25,15 @@ public interface GoodsSkuService extends IService { List selectSkuByCategoryIds(List categoryIds); + /** + * 初始化客户特殊价 + * @param supplierCode + * @param skus + */ + void initSkuCusPrice(String supplierCode,List skus); + + void initSkuVoCusPrice(String supplierCode,List skus); + void editSku(GoodsSkuBo goodSkuVo); } diff --git a/src/main/java/com/qs/serve/modules/goods/service/GoodsSpuService.java b/src/main/java/com/qs/serve/modules/goods/service/GoodsSpuService.java index 06153f22..34a02acb 100644 --- a/src/main/java/com/qs/serve/modules/goods/service/GoodsSpuService.java +++ b/src/main/java/com/qs/serve/modules/goods/service/GoodsSpuService.java @@ -21,7 +21,7 @@ public interface GoodsSpuService extends IService { List selectSpuList(GoodsSpu goodsSpu); - GoodsSpuVo getVoById(Long id); + GoodsSpuVo getVoById(Long id,String supplierCode); GoodsSpu getByCode(String code); diff --git a/src/main/java/com/qs/serve/modules/goods/service/impl/GoodsSkuServiceImpl.java b/src/main/java/com/qs/serve/modules/goods/service/impl/GoodsSkuServiceImpl.java index 45be5fef..70ab17ea 100644 --- a/src/main/java/com/qs/serve/modules/goods/service/impl/GoodsSkuServiceImpl.java +++ b/src/main/java/com/qs/serve/modules/goods/service/impl/GoodsSkuServiceImpl.java @@ -2,19 +2,19 @@ package com.qs.serve.modules.goods.service.impl; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; -import com.qs.serve.common.util.Assert; -import com.qs.serve.common.util.AuthContextUtils; -import com.qs.serve.common.util.CollectionUtil; -import com.qs.serve.common.util.CopierUtil; +import com.qs.serve.common.model.dto.R; +import com.qs.serve.common.util.*; import com.qs.serve.modules.goods.common.GoodsConst; import com.qs.serve.modules.goods.entity.GoodsSkuSpecValue; import com.qs.serve.modules.goods.entity.GoodsSpecValue; -import com.qs.serve.modules.goods.entity.GoodsSpu; import com.qs.serve.modules.goods.entity.bo.GoodsSkuBo; +import com.qs.serve.modules.goods.entity.dto.InventoryCusPrice; +import com.qs.serve.modules.goods.entity.so.InventoryCusPriceQuery; import com.qs.serve.modules.goods.entity.vo.GoodSkuVo; import com.qs.serve.modules.goods.entity.vo.GoodsSkuSpecValueVo; import com.qs.serve.modules.goods.service.GoodsSkuSpecValueService; import com.qs.serve.modules.goods.service.GoodsSpecValueService; +import com.qs.serve.modules.seeyon.service.impl.SeeYonRequestBaseService; import lombok.AllArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.springframework.stereotype.Service; @@ -28,6 +28,8 @@ import java.util.Map; import java.util.Set; import java.util.stream.Collectors; +import static com.qs.serve.modules.tbs.common.TbsSeeYonConst.ERP_CUS_INV_PRICE; + /** * sku 服务实现类 * @author YenHex @@ -40,6 +42,7 @@ public class GoodsSkuServiceImpl extends ServiceImpl im private GoodsSkuSpecValueService goodsSkuSpecValueService; private GoodsSpecValueService goodsSpecValueService; + private SeeYonRequestBaseService seeYonRequestBaseService; @Override public GoodsSku getByCode(String code) { @@ -72,6 +75,60 @@ public class GoodsSkuServiceImpl extends ServiceImpl im return baseMapper.selectByCategoryIds(categoryIds, AuthContextUtils.getTenant()); } + @Override + public void initSkuCusPrice(String supplierCode,List skus) { + if(CollectionUtil.isNotEmpty(skus)&& StringUtils.hasText(supplierCode)){ + List codes = skus.stream().map(GoodsSku::getSkuCode).distinct().collect(Collectors.toList()); + InventoryCusPriceQuery query = new InventoryCusPriceQuery(); + query.setCusCode(supplierCode); + query.setInvCodes(codes); + try { + R res = seeYonRequestBaseService.postBase(ERP_CUS_INV_PRICE,query,"查询客户特殊价"); + if(res.getStatus().equals(200)){ + List inventoryCusPrices = JsonUtil.jsonToList(res.getData(), InventoryCusPrice.class); + assert inventoryCusPrices != null; + for (InventoryCusPrice cusPrice : inventoryCusPrices) { + for (GoodsSku sku : skus) { + if(sku.getSkuCode().equals(cusPrice.getInvCode())){ + sku.setSalesPrice(cusPrice.getPrice()); + break; + } + } + } + } + } catch (Exception e) { + log.error("客户特殊价异常:{}",e.getMessage()); + } + } + } + + @Override + public void initSkuVoCusPrice(String supplierCode, List skus) { + if(CollectionUtil.isNotEmpty(skus)&& StringUtils.hasText(supplierCode)){ + List codes = skus.stream().map(GoodsSku::getSkuCode).distinct().collect(Collectors.toList()); + InventoryCusPriceQuery query = new InventoryCusPriceQuery(); + query.setCusCode(supplierCode); + query.setInvCodes(codes); + try { + R res = seeYonRequestBaseService.postBase(ERP_CUS_INV_PRICE,query,"查询客户特殊价"); + if(res.getStatus().equals(200)){ + List inventoryCusPrices = JsonUtil.jsonToList(res.getData(), InventoryCusPrice.class); + assert inventoryCusPrices != null; + for (InventoryCusPrice cusPrice : inventoryCusPrices) { + for (GoodsSku sku : skus) { + if(sku.getSkuCode().equals(cusPrice.getInvCode())){ + sku.setSalesPrice(cusPrice.getPrice()); + break; + } + } + } + } + } catch (Exception e) { + log.error("客户特殊价异常:{}",e.getMessage()); + } + } + } + @Override @Transactional(rollbackFor = Exception.class) public void editSku(GoodsSkuBo goodSkuVo) { diff --git a/src/main/java/com/qs/serve/modules/goods/service/impl/GoodsSpuServiceImpl.java b/src/main/java/com/qs/serve/modules/goods/service/impl/GoodsSpuServiceImpl.java index 7ca582d2..4b8f4f11 100644 --- a/src/main/java/com/qs/serve/modules/goods/service/impl/GoodsSpuServiceImpl.java +++ b/src/main/java/com/qs/serve/modules/goods/service/impl/GoodsSpuServiceImpl.java @@ -60,10 +60,13 @@ public class GoodsSpuServiceImpl extends ServiceImpl im } @Override - public GoodsSpuVo getVoById(Long id) { + public GoodsSpuVo getVoById(Long id,String supplierCode) { GoodsSpu goodsSpu = this.getById(id); GoodsSpuVo goodsSpuVo = CopierUtil.copy(goodsSpu,new GoodsSpuVo()); List skuList = goodsSkuService.getBySpuId(id); + if(StringUtils.hasText(supplierCode)){ + goodsSkuService.initSkuCusPrice(supplierCode,skuList); + } goodsSpuVo.setSkuList(skuList); List skuSpecValueList = goodsSkuSpecValueService.listSpecValueBySpuId(id); goodsSpuVo.setSkuSpecValueList(skuSpecValueList); diff --git a/src/main/java/com/qs/serve/modules/oms/controller/api/OmsShoppingCartApi.java b/src/main/java/com/qs/serve/modules/oms/controller/api/OmsShoppingCartApi.java index 31481e73..56030bbe 100644 --- a/src/main/java/com/qs/serve/modules/oms/controller/api/OmsShoppingCartApi.java +++ b/src/main/java/com/qs/serve/modules/oms/controller/api/OmsShoppingCartApi.java @@ -60,6 +60,7 @@ public class OmsShoppingCartApi { } LambdaQueryWrapper shoppingCartWrapper = new LambdaQueryWrapper<>(param); shoppingCartWrapper.eq(OmsShoppingCart::getUserId,sysUserId); + shoppingCartWrapper.eq(OmsShoppingCart::getSupplierId,supplier.getId()); PageUtil.startPage(); List shoppingCarts = omsShoppingCartService.list(shoppingCartWrapper); omsShoppingCartService.checkShoppingCarts(supplier,shoppingCarts,false); @@ -93,13 +94,16 @@ public class OmsShoppingCartApi { OmsShoppingCart shoppingCart = CopierUtil.copy(param,new OmsShoppingCart()); shoppingCart.setUserId(AuthContextUtils.getSysUserId()); GoodsSku goodsSku = goodsSkuService.getById(shoppingCart.getSkuId()); + GoodsSpu goodsSpu = goodsSpuService.getById(goodsSku.getSpuId()); if(!goodsSku.getEnable().equals(1)){ return R.error("商品项["+goodsSku.getSpecInfos()+"]停用中"); } + shoppingCart.setSpuCode(goodsSpu.getSpuCode()); + shoppingCart.setSkuCode(goodsSku.getSkuCode()); shoppingCart.setPicUrl(goodsSku.getPicUrl()); shoppingCart.setSpuId(goodsSku.getSpuId()); shoppingCart.setAddPrice(goodsSku.getSalesPrice()); - GoodsSpu goodsSpu = goodsSpuService.getById(shoppingCart.getSpuId()); + shoppingCart.setSupplierId(Long.parseLong(supplier.getId())); if(!goodsSpu.getShelf().equals(1)){ return R.error("商品已下架"); } @@ -129,6 +133,9 @@ public class OmsShoppingCartApi { @DeleteMapping("/deleteById/{ids}") public R deleteById(@PathVariable("ids") String ids){ List idsLong = StringUtils.splitIdLong(ids); + LambdaQueryWrapper lqw = new LambdaQueryWrapper<>(); + lqw.eq(OmsShoppingCart::getId,idsLong); + lqw.eq(OmsShoppingCart::getSupplierId,AuthContextUtils.getSupplierId()); omsShoppingCartService.removeBatchByIds(idsLong); return R.ok(); } diff --git a/src/main/java/com/qs/serve/modules/oms/entity/OmsShoppingCart.java b/src/main/java/com/qs/serve/modules/oms/entity/OmsShoppingCart.java index 1330b3c8..31c4d323 100644 --- a/src/main/java/com/qs/serve/modules/oms/entity/OmsShoppingCart.java +++ b/src/main/java/com/qs/serve/modules/oms/entity/OmsShoppingCart.java @@ -41,11 +41,15 @@ public class OmsShoppingCart implements Serializable { @Length(max = 32,message = "商品SPU长度不能超过32字") private Long spuId; + private String spuCode; + /** 商品SKU */ @NotBlank(message = "商品SKU不能为空") @Length(max = 32,message = "商品SKU长度不能超过32字") private Long skuId; + private String skuCode; + /** 供应商ID */ private Long supplierId; diff --git a/src/main/java/com/qs/serve/modules/oms/service/impl/OmsOrderServiceImpl.java b/src/main/java/com/qs/serve/modules/oms/service/impl/OmsOrderServiceImpl.java index 6332dd26..1fcb6721 100644 --- a/src/main/java/com/qs/serve/modules/oms/service/impl/OmsOrderServiceImpl.java +++ b/src/main/java/com/qs/serve/modules/oms/service/impl/OmsOrderServiceImpl.java @@ -2,6 +2,7 @@ package com.qs.serve.modules.oms.service.impl; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.qs.serve.common.model.dto.R; +import com.qs.serve.common.util.Assert; import com.qs.serve.common.util.AuthContextUtils; import com.qs.serve.common.util.CollectionUtil; import com.qs.serve.common.util.StringUtils; @@ -9,6 +10,7 @@ import com.qs.serve.modules.bms.entity.BmsSupplier; import com.qs.serve.modules.bms.entity.BmsSupplierAddress; import com.qs.serve.modules.bms.service.BmsSupplierAddressService; import com.qs.serve.modules.goods.entity.GoodsSku; +import com.qs.serve.modules.goods.entity.GoodsSpu; import com.qs.serve.modules.goods.entity.vo.GoodSkuVo; import com.qs.serve.modules.goods.service.GoodsSkuService; import com.qs.serve.modules.goods.service.GoodsSpuService; @@ -65,10 +67,13 @@ public class OmsOrderServiceImpl extends ServiceImpl im }else { //立即购买,生成临时购物车 GoodsSku goodsSku = goodsSkuService.getById(confirmOrder.getSkuId()); + GoodsSpu goodsSpu = goodsSpuService.getById(goodsSku.getSpuId()); OmsShoppingCart shoppingCart = new OmsShoppingCart(); shoppingCart.setId(0L); shoppingCart.setSpuId(goodsSku.getSpuId()); shoppingCart.setSkuId(confirmOrder.getSkuId()); + shoppingCart.setSpuCode(goodsSpu.getSpuCode()); + shoppingCart.setSkuCode(goodsSku.getSkuCode()); shoppingCart.setQuantity(confirmOrder.getQuantity()); shoppingCart.setSpecInfo(goodsSku.getSpecInfos()); shoppingCart.setPicUrl(goodsSku.getPicUrl()); @@ -79,7 +84,7 @@ public class OmsOrderServiceImpl extends ServiceImpl im BigDecimal totalAmount = BigDecimal.ZERO; for (OmsShoppingCart shoppingCart : shoppingCarts) { GoodSkuVo goodSkuVo = shoppingCart.getGoodSkuVo(); - //todo 客户特殊价 + //客户特殊价 BigDecimal salePrice = goodSkuVo.getSalesPrice(); shoppingCart.setSupplierSalesPrice(salePrice); @@ -108,6 +113,9 @@ public class OmsOrderServiceImpl extends ServiceImpl im SysUser user = sysUserService.getById(AuthContextUtils.getSysUserId()); BmsSupplier supplier = confirmOrder.getSupplier(); BmsSupplierAddress address = confirmOrder.getDefaultAddress(); + if(address==null){ + Assert.throwEx("请补充收货地址"); + } List shoppingCarts = confirmOrder.getShoppingCarts(); OmsOrder order = new OmsOrder(); order.setOrderSn(StringUtils.generateOrderNo()); diff --git a/src/main/java/com/qs/serve/modules/oms/service/impl/OmsShoppingCartServiceImpl.java b/src/main/java/com/qs/serve/modules/oms/service/impl/OmsShoppingCartServiceImpl.java index b7ad66ee..c4b417c7 100644 --- a/src/main/java/com/qs/serve/modules/oms/service/impl/OmsShoppingCartServiceImpl.java +++ b/src/main/java/com/qs/serve/modules/oms/service/impl/OmsShoppingCartServiceImpl.java @@ -76,7 +76,8 @@ public class OmsShoppingCartServiceImpl extends ServiceImplvo.getShelf().equals(1)&&vo.getEnable().equals(1)).collect(Collectors.toList()); - //todo 检验库存 + //设置客户特殊价 + goodsSkuService.initSkuVoCusPrice(supplier.getSupplierCode(),goodsSkus); //检验规格拦截 List goodsSkuEntities = goodsSkus.stream().map(vo-> CopierUtil.copy(vo,new GoodsSku())).collect(Collectors.toList()); List invalidSkuIds = bmsRuleMainService.checkErrSkuIds(supplier,goodsSkuEntities); diff --git a/src/main/java/com/qs/serve/modules/seeyon/service/SeeYonOperationService.java b/src/main/java/com/qs/serve/modules/seeyon/service/SeeYonOperationService.java index d79dcfcb..ac2c4fbd 100644 --- a/src/main/java/com/qs/serve/modules/seeyon/service/SeeYonOperationService.java +++ b/src/main/java/com/qs/serve/modules/seeyon/service/SeeYonOperationService.java @@ -118,6 +118,7 @@ public interface SeeYonOperationService extends SeeYonBaseService{ addNodeDTO.setUserCode(sysUser.getAccount()); addNodeDTO.setUserSyId(sysUser.getSyUserId()); addNodeDTO.setTemplateCode(getTemplateCode()); + addNodeDTO.setComment(param.getComment()); R result = getRequestService().addNode(addNodeDTO); if(result.getData()!=null&&result.getData().toLowerCase(Locale.ROOT).contains("ok")){ return R.ok(); diff --git a/src/main/java/com/qs/serve/modules/tbs/common/TbsSeeYonConst.java b/src/main/java/com/qs/serve/modules/tbs/common/TbsSeeYonConst.java index 4d814d05..3a8406e1 100644 --- a/src/main/java/com/qs/serve/modules/tbs/common/TbsSeeYonConst.java +++ b/src/main/java/com/qs/serve/modules/tbs/common/TbsSeeYonConst.java @@ -78,6 +78,10 @@ public interface TbsSeeYonConst { String OA_USER_INFO = "/process/getUserByCode"; String OA_USER_LIST_1 = "/process/getUsersList"; + /** 客户账单余额 */ + String ERP_CUS_AMOUNT = "/erp/customer/amount"; + String ERP_CUS_INV_PRICE = "/erp/inventory/invPrices"; + String XLT_SAVE_CHECK = "/xlt/saveCheck"; String XLT_SAVE_PAYMENT = "/xlt/savePayment"; String XLT_SAVE_POLICY = "/xlt/savePolicyItem"; diff --git a/src/main/java/com/qs/serve/modules/tbs/controller/TbsBudgetChangeController.java b/src/main/java/com/qs/serve/modules/tbs/controller/TbsBudgetChangeController.java index ef39af5f..e26a5df7 100644 --- a/src/main/java/com/qs/serve/modules/tbs/controller/TbsBudgetChangeController.java +++ b/src/main/java/com/qs/serve/modules/tbs/controller/TbsBudgetChangeController.java @@ -8,18 +8,17 @@ import com.qs.serve.common.model.dto.PageVo; import com.qs.serve.common.model.dto.R; import com.qs.serve.common.model.enums.BizType; import com.qs.serve.common.model.enums.SystemModule; -import com.qs.serve.common.util.AuthContextUtils; -import com.qs.serve.common.util.PageUtil; -import com.qs.serve.common.util.CopierUtil; -import com.qs.serve.common.util.StringUtils; +import com.qs.serve.common.util.*; import com.qs.serve.modules.sys.service.SysAttachService; import com.qs.serve.modules.tbs.common.TbsBudgetCheckState; import com.qs.serve.modules.tbs.common.consts.ChangeTypeEnum; import com.qs.serve.modules.tbs.common.dto.TbsBudgetChangeVo; import com.qs.serve.modules.tbs.entity.*; +import com.qs.serve.modules.tbs.entity.bo.TbsAffairCommitBo; import com.qs.serve.modules.tbs.entity.so.TbsBudgetChangeSo; import com.qs.serve.modules.tbs.service.*; import com.qs.serve.modules.tbs.service.impl.TbsBudgetChangeOperationServiceImpl; +import com.qs.serve.modules.tbs.service.impl.TbsCostApplyOperationServiceImpl; import lombok.AllArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.springframework.security.access.prepost.PreAuthorize; @@ -50,6 +49,19 @@ public class TbsBudgetChangeController { private TbsScheduleItemBudgetService tbsScheduleItemBudgetService; private TbsBudgetConditionService tbsBudgetConditionService; + + /** + * 测试 + * @param param + * @return + */ + @PostMapping("/testChangeAmt") + public R testChangeAmt(@RequestBody TbsAffairCommitBo param){ + TbsBudgetChangeOperationServiceImpl impl = SpringUtils.getBean(TbsBudgetChangeOperationServiceImpl.class); + impl.doFinished(param); + return R.ok(); + } + /** * 预算审批整合翻页 * @param query diff --git a/src/main/java/com/qs/serve/modules/tbs/controller/TbsCostApplyController.java b/src/main/java/com/qs/serve/modules/tbs/controller/TbsCostApplyController.java index 028e4584..489a5b8a 100644 --- a/src/main/java/com/qs/serve/modules/tbs/controller/TbsCostApplyController.java +++ b/src/main/java/com/qs/serve/modules/tbs/controller/TbsCostApplyController.java @@ -75,17 +75,6 @@ public class TbsCostApplyController { private TbsCostApplyOperationServiceImpl tbsCostApplyOperationServiceImpl; private TbsBudgetMatchApplication tbsBudgetMatchApplication; - /** - * 测试 - * @param param - * @return - */ - //@PostMapping("/testChangeAmt") - public R testChangeAmt(@RequestBody TbsAffairCommitBo param){ - TbsCostApplyOperationServiceImpl impl = SpringUtils.getBean(TbsCostApplyOperationServiceImpl.class); - impl.doFinished(param); - return R.ok(); - } /** * 复制 diff --git a/src/main/java/com/qs/serve/modules/tbs/service/impl/TbsBudgetApplyOperationServiceImpl.java b/src/main/java/com/qs/serve/modules/tbs/service/impl/TbsBudgetApplyOperationServiceImpl.java index f4ae70ba..56236206 100644 --- a/src/main/java/com/qs/serve/modules/tbs/service/impl/TbsBudgetApplyOperationServiceImpl.java +++ b/src/main/java/com/qs/serve/modules/tbs/service/impl/TbsBudgetApplyOperationServiceImpl.java @@ -47,7 +47,7 @@ public class TbsBudgetApplyOperationServiceImpl implements SeeYonOperationServic @Override public void doCommitBacked(String targetId) { - AsyncManager.me().execute(AsyncFactory.submitBudgetApply(targetId)); + AsyncFactory.submitBudgetApply(targetId); } @Override diff --git a/src/main/java/com/qs/serve/modules/tbs/service/impl/TbsBudgetBatchOperationServiceImpl.java b/src/main/java/com/qs/serve/modules/tbs/service/impl/TbsBudgetBatchOperationServiceImpl.java index a6d1737c..c1e44327 100644 --- a/src/main/java/com/qs/serve/modules/tbs/service/impl/TbsBudgetBatchOperationServiceImpl.java +++ b/src/main/java/com/qs/serve/modules/tbs/service/impl/TbsBudgetBatchOperationServiceImpl.java @@ -62,6 +62,9 @@ public class TbsBudgetBatchOperationServiceImpl implements SeeYonOperationServic @Override public Object doFinished(TbsAffairCommitBo param) { TbsBudgetBatch budgetBatch = budgetBatchService.getById(param.getTargetId()); + if(!budgetBatch.getBatchState().equals(TbsBudgetCheckState.State_1_apply)){ + return null; + } List budgetBatchItemList = budgetBatchItemService.listByBatchId(budgetBatch.getId()); for (TbsBudgetBatchItem batchItem : budgetBatchItemList) { if(batchItem.getChangeId()==null){ @@ -83,6 +86,9 @@ public class TbsBudgetBatchOperationServiceImpl implements SeeYonOperationServic @Override public Object doRefuse(TbsAffairCommitBo param) { TbsBudgetBatch budgetBatch = budgetBatchService.getById(param.getTargetId()); + if(!budgetBatch.getBatchState().equals(TbsBudgetCheckState.State_1_apply)){ + return null; + } List budgetBatchItemList = budgetBatchItemService.listByBatchId(budgetBatch.getId()); for (TbsBudgetBatchItem batchItem : budgetBatchItemList) { if(batchItem.getChangeId()==null){ diff --git a/src/main/java/com/qs/serve/modules/tbs/service/impl/TbsBudgetBatchServiceImpl.java b/src/main/java/com/qs/serve/modules/tbs/service/impl/TbsBudgetBatchServiceImpl.java index 28b4815b..3a3f7488 100644 --- a/src/main/java/com/qs/serve/modules/tbs/service/impl/TbsBudgetBatchServiceImpl.java +++ b/src/main/java/com/qs/serve/modules/tbs/service/impl/TbsBudgetBatchServiceImpl.java @@ -409,6 +409,7 @@ public class TbsBudgetBatchServiceImpl extends ServiceImpl0){ @@ -140,6 +142,7 @@ public class TbsBudgetChangeOperationServiceImpl implements SeeYonOperationServi if(changeAmtIsNotNull && changeItem.getBudgetAmount().compareTo(changeItem.getNewBudgetAmount())!=0){ BudgetLogOptFlag optType; BigDecimal amount = changeItem.getNewBudgetAmount().subtract(changeItem.getBudgetAmount()); + log.debug("预算:{},项:{},原金额:{},新金额:{}",budget.getBudgetCode(),changeItem.getItemName(),changeItem.getBudgetAmount(),changeItem.getNewBudgetAmount()); if(amount.compareTo(BigDecimal.ZERO)>0){ optType = BudgetLogOptFlag.State_2; }else if(amount.compareTo(BigDecimal.ZERO)<0){ diff --git a/src/main/java/com/qs/serve/modules/tbs/service/impl/TbsBudgetChangeServiceImpl.java b/src/main/java/com/qs/serve/modules/tbs/service/impl/TbsBudgetChangeServiceImpl.java index f8d548e7..96fd3c99 100644 --- a/src/main/java/com/qs/serve/modules/tbs/service/impl/TbsBudgetChangeServiceImpl.java +++ b/src/main/java/com/qs/serve/modules/tbs/service/impl/TbsBudgetChangeServiceImpl.java @@ -153,6 +153,16 @@ public class TbsBudgetChangeServiceImpl extends ServiceImpl() + .in(TbsBudgetChange::getBudgetId,budget.getId()) + .eq(TbsBudgetChange::getBudgetCheckState,TbsBudgetCheckState.State_1_apply) + ); + if(countExist>0){ + Assert.throwEx("当前预算已存在修改审批"); + } + if(param.getOrgChangeId()!=null){ TbsBudgetChange orgBudgetChange = this.getById(param.getOrgChangeId()); if(orgBudgetChange.getBudgetCheckState().equals(TbsBudgetCheckState.State_3_setback)){ diff --git a/src/main/java/com/qs/serve/modules/tbs/service/impl/TbsBudgetServiceImpl.java b/src/main/java/com/qs/serve/modules/tbs/service/impl/TbsBudgetServiceImpl.java index c0036929..378ed119 100644 --- a/src/main/java/com/qs/serve/modules/tbs/service/impl/TbsBudgetServiceImpl.java +++ b/src/main/java/com/qs/serve/modules/tbs/service/impl/TbsBudgetServiceImpl.java @@ -329,7 +329,7 @@ public class TbsBudgetServiceImpl extends ServiceImpl budget.setBudgetState(1); budget.setBudgetCheckState(TbsBudgetCheckState.State_2_finished); this.updateById(budget); - SysUser sysUser = sysUserService.getById(AuthContextUtils.getSysUserId()); + SysUser sysUser = sysUserService.getById(budget.getUserId()); LambdaQueryWrapper lqw = new LambdaQueryWrapper<>(); lqw.eq(TbsScheduleItemBudget::getBudgetId,id); List scheduleItemBudgets = scheduleItemBudgetService.list(lqw); diff --git a/src/main/java/com/qs/serve/modules/vtb/controller/VtbVerificationDataController.java b/src/main/java/com/qs/serve/modules/vtb/controller/VtbVerificationDataController.java index ed0b2ecb..cafd70ee 100644 --- a/src/main/java/com/qs/serve/modules/vtb/controller/VtbVerificationDataController.java +++ b/src/main/java/com/qs/serve/modules/vtb/controller/VtbVerificationDataController.java @@ -2,6 +2,7 @@ package com.qs.serve.modules.vtb.controller; import com.qs.serve.common.model.dto.PageVo; import com.qs.serve.common.model.dto.R; +import com.qs.serve.common.util.PageUtil; import com.qs.serve.modules.vtb.entity.dto.VtbActivityCheckDTO; import com.qs.serve.modules.vtb.entity.dto.VtbVerificationDTO; import com.qs.serve.modules.vtb.entity.so.VtbActivityCheckSo; @@ -37,6 +38,7 @@ public class VtbVerificationDataController { public R> getActivityData(VtbActivityCheckSo query){ Long count = verReportMapper.countActivityCheck(query); if(count>0){ + query.setStartRow(PageUtil.getStartRow()); List list = verReportMapper.pageActivityCheck(query); PageVo page = new PageVo<>(); page.initPageByTotal(count); @@ -52,9 +54,10 @@ public class VtbVerificationDataController { * @return */ @GetMapping("pageVerificationCheck") - public R getVerificationData(VtbVerificationCheckSo query){ + public R> getVerificationData(VtbVerificationCheckSo query){ Long count = verReportMapper.countVerificationCheck(query); if(count>0){ + query.setStartRow(PageUtil.getStartRow()); List list = verReportMapper.pageVerificationCheck(query); PageVo page = new PageVo<>(); page.initPageByTotal(count); diff --git a/src/main/java/com/qs/serve/modules/vtb/entity/so/VtbActivityCheckSo.java b/src/main/java/com/qs/serve/modules/vtb/entity/so/VtbActivityCheckSo.java index a619c9bc..5460a63a 100644 --- a/src/main/java/com/qs/serve/modules/vtb/entity/so/VtbActivityCheckSo.java +++ b/src/main/java/com/qs/serve/modules/vtb/entity/so/VtbActivityCheckSo.java @@ -39,17 +39,17 @@ public class VtbActivityCheckSo { /** 提交结束时间 */ @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8") - private LocalDateTime queryEndSubmitTime; + private String queryEndSubmitTime; /** 核销开始时间 */ @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8") - private LocalDateTime queryStartCheckTime; + private String queryStartCheckTime; /** 核销开始时间 */ @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8") - private LocalDateTime queryEndCheckTime; + private String queryEndCheckTime; private Integer pageSize; diff --git a/src/main/java/com/qs/serve/modules/vtb/entity/so/VtbVerificationCheckSo.java b/src/main/java/com/qs/serve/modules/vtb/entity/so/VtbVerificationCheckSo.java index 633fc80f..3b3282b4 100644 --- a/src/main/java/com/qs/serve/modules/vtb/entity/so/VtbVerificationCheckSo.java +++ b/src/main/java/com/qs/serve/modules/vtb/entity/so/VtbVerificationCheckSo.java @@ -27,6 +27,7 @@ public class VtbVerificationCheckSo { /** 活动内容 */ private String actTitle; + /** 开始核销时间 */ @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8") private LocalDateTime startCheckTime; @@ -35,6 +36,7 @@ public class VtbVerificationCheckSo { @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8") private LocalDateTime endCheckTime; + /** 开始支付时间 */ @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8") private LocalDateTime startPayTime; @@ -43,4 +45,7 @@ public class VtbVerificationCheckSo { @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8") private LocalDateTime endPayTime; + private Integer pageSize; + + private Integer startRow; } diff --git a/src/main/resources/mapper/his/HisUserSupplierMapper.xml b/src/main/resources/mapper/his/HisUserSupplierMapper.xml index c1b1a8f7..0aef2bc1 100644 --- a/src/main/resources/mapper/his/HisUserSupplierMapper.xml +++ b/src/main/resources/mapper/his/HisUserSupplierMapper.xml @@ -46,7 +46,7 @@ and `his_user_supplier`.`biz_region_fourthly` = #{query.bizRegionFourthly} and `his_user_supplier`.`tenant_id` = #{query.tenantId} and `his_user_supplier`.`stop_flag` = #{query.stopFlag} - and `his_user_supplier`.`cooperate_puse_flag` = #{query.cooperatePauseFlag} + and `his_user_supplier`.`cooperate_pause_flag` = #{query.cooperatePauseFlag} and `bms_supplier_visit_address`.`address_detail` like concat('%',#{query.queryAddress},'%') and (`bms_supplier_visit_address`.`address_detail` like concat('%',#{query.queryValue},'%') diff --git a/src/main/resources/mapper/vtb/VtbVerReportMapper.xml b/src/main/resources/mapper/vtb/VtbVerReportMapper.xml index 5682a1f4..be385929 100644 --- a/src/main/resources/mapper/vtb/VtbVerReportMapper.xml +++ b/src/main/resources/mapper/vtb/VtbVerReportMapper.xml @@ -20,6 +20,10 @@ and `tbs_cost_apply`.`charge_theme` like concat('%',#{query.costTitle},'%') + + + + + + + + + + + + + + + + + + - select vtb.verification_code , vtb.supplier_code , @@ -123,6 +141,7 @@ left join tbs_activity act on act.id = vtb.activity_id where vtb.del_flag = 0 + and vtb.verification_state = 1 and act.del_flag = 0 and act.cancel_flag = 0 and cost.del_flag = 0 @@ -136,6 +155,7 @@ and `cost`.`charge_theme` like concat('%',#{query.chargeTheme},'%') and `vtb`.`finished_time` >= #{query.startCheckTime} and `vtb`.`finished_time` <= #{query.endCheckTime} + limit #{query.startRow},#{query.pageSize}