From 1c9be074e8c46b211906ff714b9691cd81ad1942 Mon Sep 17 00:00:00 2001 From: ligaode Date: Fri, 15 Nov 2024 14:49:24 +0800 Subject: [PATCH] =?UTF-8?q?=E6=9B=B4=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../apiadmin/base/BaseGoodsSkuExtendRest.java | 7 + .../base/apiadmin/base/BaseGoodsSkuRest.java | 8 + .../base/basegoodssku/BaseGoodsSkuMapper.java | 2 + .../base/basegoodssku/BaseGoodsSkuMapper.xml | 10 + .../basegoodssku/BaseGoodsSkuService.java | 4 + .../BaseGoodsSkuExtendMapper.java | 10 +- .../BaseGoodsSkuExtendService.java | 29 +- .../SmsPricestrategyBillDetailRest.java | 8 + ...sPricestrategyBillGoodstypedetailRest.java | 17 +- .../SmsPricestrategyBillService.java | 1172 +++++++++-------- .../SmsPricestrategyBillDetailMapper.java | 2 + .../SmsPricestrategyBillDetailMapper.xml | 12 + .../SmsPricestrategyBillDetailService.java | 7 + .../wms/wmsinventory/WmsInventoryFeign.java | 5 + .../WmsInventoryFeignFallback.java | 6 + .../WmsInventoryRecordFeign.java | 5 + .../yxtbase/BaseGoodsSkuExtendFeign.java | 26 + .../sms/feign/yxtbase/BaseGoodsSkuFeign.java | 31 + .../inventroy/WmsInventoryRecordRest.java | 7 +- .../apiadmin/inventroy/WmsInventoryRest.java | 9 + .../wmsinventory/WmsInventoryMapper.java | 3 + .../wmsinventory/WmsInventoryMapper.xml | 9 + .../wmsinventory/WmsInventoryService.java | 4 + .../WmsInventoryRecordMapper.java | 2 + .../WmsInventoryRecordMapper.xml | 10 + .../WmsInventoryRecordService.java | 6 + .../wmsshelfbill/WmsShelfBillService.java | 28 +- .../BaseGoodsSkuExtendFeign.java | 24 + .../SmsPricesTrategyBillDetailFeign.java | 25 + ...PricesTrategyBillGoodsTypeDetailFeign.java | 26 + ...estrategyBillGoodstypedetailDetailsVo.java | 64 + 31 files changed, 995 insertions(+), 583 deletions(-) create mode 100644 yxt-sms-biz/src/main/java/com/yxt/sms/feign/yxtbase/BaseGoodsSkuExtendFeign.java create mode 100644 yxt-sms-biz/src/main/java/com/yxt/sms/feign/yxtbase/BaseGoodsSkuFeign.java create mode 100644 yxt-wms-biz/src/main/java/com/yxt/wms/feign/base/basegoodsskuextend/BaseGoodsSkuExtendFeign.java create mode 100644 yxt-wms-biz/src/main/java/com/yxt/wms/feign/sms/smspricestrategybilldetail/SmsPricesTrategyBillDetailFeign.java create mode 100644 yxt-wms-biz/src/main/java/com/yxt/wms/feign/sms/smsspricestrategybillgoodstypedetail/SmsPricesTrategyBillGoodsTypeDetailFeign.java create mode 100644 yxt-wms-biz/src/main/java/com/yxt/wms/feign/sms/smsspricestrategybillgoodstypedetail/SmsPricestrategyBillGoodstypedetailDetailsVo.java diff --git a/yxt-base-biz/src/main/java/com/yxt/base/apiadmin/base/BaseGoodsSkuExtendRest.java b/yxt-base-biz/src/main/java/com/yxt/base/apiadmin/base/BaseGoodsSkuExtendRest.java index 8b4fdb6ec2..98065eef38 100644 --- a/yxt-base-biz/src/main/java/com/yxt/base/apiadmin/base/BaseGoodsSkuExtendRest.java +++ b/yxt-base-biz/src/main/java/com/yxt/base/apiadmin/base/BaseGoodsSkuExtendRest.java @@ -47,9 +47,16 @@ public class BaseGoodsSkuExtendRest { public ResultBean delete(@PathVariable("sid") String sid) { return baseGoodsSkuExtendService.delete(sid); } + @ApiOperation("更改可用状态") @GetMapping("/updateIsEnable/{sid}/{isEnable}") public ResultBean updateIsEnable(@PathVariable("sid") String sid,@PathVariable("isEnable")String isEnable) { return baseGoodsSkuExtendService.updateIsEnable(sid,isEnable); } + + @ApiOperation("根据skuSid修改销售单价") + @PostMapping("/updateSalesPrice") + ResultBean updateSalesPrice(@RequestParam("skuSid") String skuSid,@RequestParam("salesPrice") String salesPrice){ + return baseGoodsSkuExtendService.updateSalesPrice(skuSid,salesPrice); + } } diff --git a/yxt-base-biz/src/main/java/com/yxt/base/apiadmin/base/BaseGoodsSkuRest.java b/yxt-base-biz/src/main/java/com/yxt/base/apiadmin/base/BaseGoodsSkuRest.java index 6f29888fb9..6310c0a22f 100644 --- a/yxt-base-biz/src/main/java/com/yxt/base/apiadmin/base/BaseGoodsSkuRest.java +++ b/yxt-base-biz/src/main/java/com/yxt/base/apiadmin/base/BaseGoodsSkuRest.java @@ -87,4 +87,12 @@ public class BaseGoodsSkuRest { List goodsDeptVos = baseGoodsSkuService.selectGoods(name,orgPath); return rb.success().setData(goodsDeptVos); } + + @ApiOperation("根据商品类别sid查询对应的skusid") + @PostMapping("/fetchSkuSid") + ResultBean> fetchSkuSid(@RequestParam("goodTypeSid") String goodTypeSid) { + ResultBean rb = ResultBean.fireFail(); + List skuSids = baseGoodsSkuService.fetchSkuSid(goodTypeSid); + return rb.success().setData(skuSids); + } } diff --git a/yxt-base-biz/src/main/java/com/yxt/base/biz/base/basegoodssku/BaseGoodsSkuMapper.java b/yxt-base-biz/src/main/java/com/yxt/base/biz/base/basegoodssku/BaseGoodsSkuMapper.java index cc533a2244..dd688eac58 100644 --- a/yxt-base-biz/src/main/java/com/yxt/base/biz/base/basegoodssku/BaseGoodsSkuMapper.java +++ b/yxt-base-biz/src/main/java/com/yxt/base/biz/base/basegoodssku/BaseGoodsSkuMapper.java @@ -29,4 +29,6 @@ public interface BaseGoodsSkuMapper extends BaseMapper { IPage getGoodsListPage(IPage page, @Param(Constants.WRAPPER) QueryWrapper qw); List selectGoods(@Param("name") String name, @Param("useOrgSid") String useOrgSid); + + List fetchSkuSid(String goodTypeSid); } diff --git a/yxt-base-biz/src/main/java/com/yxt/base/biz/base/basegoodssku/BaseGoodsSkuMapper.xml b/yxt-base-biz/src/main/java/com/yxt/base/biz/base/basegoodssku/BaseGoodsSkuMapper.xml index d94a428dd0..d764835a0a 100644 --- a/yxt-base-biz/src/main/java/com/yxt/base/biz/base/basegoodssku/BaseGoodsSkuMapper.xml +++ b/yxt-base-biz/src/main/java/com/yxt/base/biz/base/basegoodssku/BaseGoodsSkuMapper.xml @@ -96,4 +96,14 @@ , '%') + + diff --git a/yxt-base-biz/src/main/java/com/yxt/base/biz/base/basegoodssku/BaseGoodsSkuService.java b/yxt-base-biz/src/main/java/com/yxt/base/biz/base/basegoodssku/BaseGoodsSkuService.java index 20da8960e0..da67297c3d 100644 --- a/yxt-base-biz/src/main/java/com/yxt/base/biz/base/basegoodssku/BaseGoodsSkuService.java +++ b/yxt-base-biz/src/main/java/com/yxt/base/biz/base/basegoodssku/BaseGoodsSkuService.java @@ -264,4 +264,8 @@ public class BaseGoodsSkuService extends MybatisBaseService fetchSkuSid(String goodTypeSid) { + return baseMapper.fetchSkuSid(goodTypeSid); + } } diff --git a/yxt-base-biz/src/main/java/com/yxt/base/biz/base/basegoodsskuextend/BaseGoodsSkuExtendMapper.java b/yxt-base-biz/src/main/java/com/yxt/base/biz/base/basegoodsskuextend/BaseGoodsSkuExtendMapper.java index 17f75a5e27..66079e9db1 100644 --- a/yxt-base-biz/src/main/java/com/yxt/base/biz/base/basegoodsskuextend/BaseGoodsSkuExtendMapper.java +++ b/yxt-base-biz/src/main/java/com/yxt/base/biz/base/basegoodsskuextend/BaseGoodsSkuExtendMapper.java @@ -6,6 +6,7 @@ import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.toolkit.Constants; import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Param; +import org.apache.ibatis.annotations.Update; /** * @author wangpengfei @@ -15,6 +16,11 @@ import org.apache.ibatis.annotations.Param; public interface BaseGoodsSkuExtendMapper extends BaseMapper { IPage listPage(IPage page, @Param(Constants.WRAPPER) QueryWrapper qw); - BaseGoodsSkuExtendVo getExtendBySkuSid(@Param("skuSid")String skuSid); - BaseGoodsSkuExtendVo getExtendBySid(@Param("sid")String sid); + + BaseGoodsSkuExtendVo getExtendBySkuSid(@Param("skuSid") String skuSid); + + BaseGoodsSkuExtendVo getExtendBySid(@Param("sid") String sid); + + @Update("update base_goods_sku_extend set salesPrice = #{salesPrice} where goodsSkuSid = #{skuSid}") + void updateSalesPrice(@Param("skuSid") String skuSid, @Param("salesPrice") String salesPrice); } diff --git a/yxt-base-biz/src/main/java/com/yxt/base/biz/base/basegoodsskuextend/BaseGoodsSkuExtendService.java b/yxt-base-biz/src/main/java/com/yxt/base/biz/base/basegoodsskuextend/BaseGoodsSkuExtendService.java index 8a0fa2e3ce..f2d7987953 100644 --- a/yxt-base-biz/src/main/java/com/yxt/base/biz/base/basegoodsskuextend/BaseGoodsSkuExtendService.java +++ b/yxt-base-biz/src/main/java/com/yxt/base/biz/base/basegoodsskuextend/BaseGoodsSkuExtendService.java @@ -50,8 +50,8 @@ public class BaseGoodsSkuExtendService extends MybatisBaseService qw = new QueryWrapper<>(); - if(StringUtils.isNotBlank(query.getName())){ - qw.like("goodsName",query.getName()); + if (StringUtils.isNotBlank(query.getName())) { + qw.like("goodsName", query.getName()); } IPage page = PagerUtil.queryToPage(pq); IPage pagging = baseMapper.listPage(page, qw); @@ -67,12 +67,13 @@ public class BaseGoodsSkuExtendService extends MybatisBaseService saveOrUpdate(BaseGoodsSkuExtendDto dto) { ResultBean rb = ResultBean.fireFail(); String sid = ""; - BaseGoodsSkuExtend extend=baseMapper.selectOne(new QueryWrapper().eq("sid",dto.getSid())); - if (null!=extend) { + BaseGoodsSkuExtend extend = baseMapper.selectOne(new QueryWrapper().eq("sid", dto.getSid())); + if (null != extend) { sid = dto.getSid(); BaseGoodsSkuExtend wmsGoods = fetchBySid(dto.getSid()); BeanUtil.copyProperties(dto, wmsGoods); @@ -81,10 +82,10 @@ public class BaseGoodsSkuExtendService extends MybatisBaseService selSid(@RequestParam("goodsTypeSid") String goodsTypeSid,@RequestParam("deptSid") String deptSid){ + return smsPricestrategyBillDetailService.selSid(goodsTypeSid,deptSid); + } } diff --git a/yxt-sms-biz/src/main/java/com/yxt/sms/apiadmin/SmsPricestrategyBillGoodstypedetailRest.java b/yxt-sms-biz/src/main/java/com/yxt/sms/apiadmin/SmsPricestrategyBillGoodstypedetailRest.java index e0f0e56c58..94a2c2f0f2 100644 --- a/yxt-sms-biz/src/main/java/com/yxt/sms/apiadmin/SmsPricestrategyBillGoodstypedetailRest.java +++ b/yxt-sms-biz/src/main/java/com/yxt/sms/apiadmin/SmsPricestrategyBillGoodstypedetailRest.java @@ -25,15 +25,16 @@ *********************************************************/ package com.yxt.sms.apiadmin; -import com.yxt.common.core.query.PagerQuery; import com.yxt.common.core.result.ResultBean; -import com.yxt.common.core.vo.PagerVo; -import com.yxt.sms.biz.smspricestrategybillgoodstypedetail.*; +import com.yxt.sms.biz.smspricestrategybillgoodstypedetail.SmsPricestrategyBillGoodstypedetailDetailsVo; +import com.yxt.sms.biz.smspricestrategybillgoodstypedetail.SmsPricestrategyBillGoodstypedetailService; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; +import java.util.List; + /** * Project: yxt-sms(价格策略)
* File: SmsPricestrategyBillGoodstypedetailFeignFallback.java
@@ -52,4 +53,14 @@ import org.springframework.web.bind.annotation.*; @RequestMapping("v1/smspricestrategybillgoodstypedetail") public class SmsPricestrategyBillGoodstypedetailRest { + @Autowired + private SmsPricestrategyBillGoodstypedetailService smsPricestrategyBillGoodstypedetailService; + + @ApiOperation("根据定调价明细sid查询") + @GetMapping("/selByMainSid") + public ResultBean> selByMainSid(@RequestParam("mainSid") String mainSid){ + ResultBean rb = ResultBean.fireFail(); + List smsPricestrategyBillGoodstypedetailDetailsVos = smsPricestrategyBillGoodstypedetailService.selByMainSid(mainSid); + return rb.success().setData(smsPricestrategyBillGoodstypedetailDetailsVos); + } } diff --git a/yxt-sms-biz/src/main/java/com/yxt/sms/biz/smspricestrategybill/SmsPricestrategyBillService.java b/yxt-sms-biz/src/main/java/com/yxt/sms/biz/smspricestrategybill/SmsPricestrategyBillService.java index c394b4a049..ca311b36ec 100644 --- a/yxt-sms-biz/src/main/java/com/yxt/sms/biz/smspricestrategybill/SmsPricestrategyBillService.java +++ b/yxt-sms-biz/src/main/java/com/yxt/sms/biz/smspricestrategybill/SmsPricestrategyBillService.java @@ -55,6 +55,10 @@ import com.yxt.sms.feign.portal.sysstafforg.SysStaffOrgFeign; import com.yxt.sms.feign.portal.sysuserrole.SysUserRoleFeign; import com.yxt.sms.feign.privilege.PrivilegeQuery; import com.yxt.sms.feign.sysuser.SysUserFeign; +import com.yxt.sms.feign.wms.wmsinventory.WmsInventoryFeign; +import com.yxt.sms.feign.wms.wmsinventoryrecord.WmsInventoryRecordFeign; +import com.yxt.sms.feign.yxtbase.BaseGoodsSkuExtendFeign; +import com.yxt.sms.feign.yxtbase.BaseGoodsSkuFeign; import org.apache.commons.lang3.StringUtils; import com.yxt.common.base.service.MybatisBaseService; import com.yxt.common.base.utils.PagerUtil; @@ -65,6 +69,8 @@ import org.apache.tomcat.util.threads.ThreadPoolExecutor; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; +import javax.annotation.Resource; +import java.math.BigDecimal; import java.util.*; import java.util.concurrent.*; import java.util.stream.Collectors; @@ -85,585 +91,623 @@ import java.util.stream.Collectors; @Service public class SmsPricestrategyBillService extends MybatisBaseService { - @Autowired - private SmsPricestrategyBillDetailService smsPricestrategyBillDetailService; - @Autowired - private SmsPricestrategyBillGoodstypedetailService smsPricestrategyBillGoodstypedetailService; - @Autowired - private SysOrganizationFeign sysOrganizationFeign; - @Autowired - private SysStaffOrgFeign sysStaffOrgFeign; - @Autowired - private FlowableFeign flowableFeign; - @Autowired - private FlowTaskFeign flowTaskFeign; - @Autowired - private FlowFeign flowFeign; - @Autowired - private MessageFeign messageFeign; - @Autowired - private SysUserFeign sysUserFeign; - @Autowired - private SysUserRoleFeign sysUserRoleFeign; - - public PagerVo listPageVo(PagerQuery pq) { - SmsPricestrategyBillQuery query = pq.getParams(); - QueryWrapper qw = new QueryWrapper<>(); - //========================================数据授权开始 - if (StringUtils.isNotBlank(query.getMenuUrl())) { - PrivilegeQuery privilegeQuery = new PrivilegeQuery(); - privilegeQuery.setOrgPath(query.getOrgPath()); - privilegeQuery.setMenuUrl(query.getMenuUrl()); - privilegeQuery.setUserSid(query.getUserSid()); - ResultBean defaultIdReltBean = sysUserFeign.selectPrivilegeLevel(privilegeQuery); - if (StringUtils.isNotBlank(defaultIdReltBean.getData())) { - //数据权限ID(1集团、2事业部、3分公司、4部门、5个人) - String orgSidPath = query.getOrgPath(); - orgSidPath = orgSidPath + "/"; - int i1 = orgSidPath.indexOf("/"); - int i2 = orgSidPath.indexOf("/", i1 + 1); - int i3 = orgSidPath.indexOf("/", i2 + 1); - int i4 = orgSidPath.indexOf("/", i3 + 1); - String orgLevelKey = defaultIdReltBean.getData(); - if ("1".equals(orgLevelKey)) { - orgSidPath = orgSidPath.substring(0, i1); - qw.like("s.orgSidPath", orgSidPath); - } else if ("2".equals(orgLevelKey)) { - orgSidPath = orgSidPath.substring(0, i2); - qw.like("s.orgSidPath", orgSidPath); - } else if ("3".equals(orgLevelKey)) { - orgSidPath = orgSidPath.substring(0, i3); - qw.like("s.orgSidPath", orgSidPath); - } else if ("4".equals(orgLevelKey)) { - orgSidPath = orgSidPath.substring(0, i4); - qw.like("s.orgSidPath", orgSidPath); - } else if ("5".equals(orgLevelKey)) { - qw.eq("sb.createBySid", query.getUserSid()); - } else { - PagerVo p = new PagerVo<>(); - return p; - } - } else { - PagerVo p = new PagerVo<>(); - return p; - } - } - if (StringUtils.isNotBlank(query.getUseOrgName())) { - qw.like("sb.useOrgName", query.getUseOrgName()); - } - if (StringUtils.isNotBlank(query.getDeptName())) { - qw.like("sb.deptName", query.getDeptName()); - } - if (StringUtils.isNotBlank(query.getCreateByName())) { - qw.like("sb.createByName", query.getCreateByName()); - } - if (StringUtils.isNotBlank(query.getBillNo())) { - qw.like("sb.billNo", query.getBillNo()); - } - String createStartTime = query.getCreateStartTime(); - String createEndTime = query.getCreateEndTime(); - qw.apply(StringUtils.isNotEmpty(createStartTime), "date_format (sb.createTime,'%Y-%m-%d') >= date_format('" + createStartTime + "','%Y-%m-%d')"). - apply(StringUtils.isNotEmpty(createEndTime), "date_format (sb.createTime,'%Y-%m-%d') <= date_format('" + createEndTime + "','%Y-%m-%d')" - ); - String finishStartTime = query.getFinishStartTime(); - String finishEndTime = query.getFinishEndTime(); - qw.apply(StringUtils.isNotEmpty(finishStartTime), "date_format (sb.finishTime,'%Y-%m-%d') >= date_format('" + finishStartTime + "','%Y-%m-%d')"). - apply(StringUtils.isNotEmpty(finishEndTime), "date_format (sb.finishTime,'%Y-%m-%d') <= date_format('" + finishEndTime + "','%Y-%m-%d')" - ); - qw.orderByDesc("sb.createTime"); - IPage page = PagerUtil.queryToPage(pq); - IPage pagging = baseMapper.selectPageVo(page, qw); - PagerVo p = PagerUtil.pageToVo(pagging, null); - return p; - } - - public String saveOrUpdateDto(SmsPricestrategyBillDto dto){ + @Autowired + private SmsPricestrategyBillDetailService smsPricestrategyBillDetailService; + @Autowired + private SmsPricestrategyBillGoodstypedetailService smsPricestrategyBillGoodstypedetailService; + @Autowired + private SysOrganizationFeign sysOrganizationFeign; + @Autowired + private SysStaffOrgFeign sysStaffOrgFeign; + @Autowired + private FlowableFeign flowableFeign; + @Autowired + private FlowTaskFeign flowTaskFeign; + @Autowired + private FlowFeign flowFeign; + @Autowired + private MessageFeign messageFeign; + @Autowired + private SysUserFeign sysUserFeign; + @Autowired + private SysUserRoleFeign sysUserRoleFeign; + @Autowired + private BaseGoodsSkuFeign baseGoodsSkuFeign; + @Resource + private WmsInventoryFeign wmsInventoryFeign; + @Autowired + private WmsInventoryRecordFeign wmsInventoryRecordFeign; + @Autowired + private BaseGoodsSkuExtendFeign baseGoodsSkuExtendFeign; + + public PagerVo listPageVo(PagerQuery pq) { + SmsPricestrategyBillQuery query = pq.getParams(); + QueryWrapper qw = new QueryWrapper<>(); + //========================================数据授权开始 + if (StringUtils.isNotBlank(query.getMenuUrl())) { + PrivilegeQuery privilegeQuery = new PrivilegeQuery(); + privilegeQuery.setOrgPath(query.getOrgPath()); + privilegeQuery.setMenuUrl(query.getMenuUrl()); + privilegeQuery.setUserSid(query.getUserSid()); + ResultBean defaultIdReltBean = sysUserFeign.selectPrivilegeLevel(privilegeQuery); + if (StringUtils.isNotBlank(defaultIdReltBean.getData())) { + //数据权限ID(1集团、2事业部、3分公司、4部门、5个人) + String orgSidPath = query.getOrgPath(); + orgSidPath = orgSidPath + "/"; + int i1 = orgSidPath.indexOf("/"); + int i2 = orgSidPath.indexOf("/", i1 + 1); + int i3 = orgSidPath.indexOf("/", i2 + 1); + int i4 = orgSidPath.indexOf("/", i3 + 1); + String orgLevelKey = defaultIdReltBean.getData(); + if ("1".equals(orgLevelKey)) { + orgSidPath = orgSidPath.substring(0, i1); + qw.like("s.orgSidPath", orgSidPath); + } else if ("2".equals(orgLevelKey)) { + orgSidPath = orgSidPath.substring(0, i2); + qw.like("s.orgSidPath", orgSidPath); + } else if ("3".equals(orgLevelKey)) { + orgSidPath = orgSidPath.substring(0, i3); + qw.like("s.orgSidPath", orgSidPath); + } else if ("4".equals(orgLevelKey)) { + orgSidPath = orgSidPath.substring(0, i4); + qw.like("s.orgSidPath", orgSidPath); + } else if ("5".equals(orgLevelKey)) { + qw.eq("sb.createBySid", query.getUserSid()); + } else { + PagerVo p = new PagerVo<>(); + return p; + } + } else { + PagerVo p = new PagerVo<>(); + return p; + } + } + if (StringUtils.isNotBlank(query.getUseOrgName())) { + qw.like("sb.useOrgName", query.getUseOrgName()); + } + if (StringUtils.isNotBlank(query.getDeptName())) { + qw.like("sb.deptName", query.getDeptName()); + } + if (StringUtils.isNotBlank(query.getCreateByName())) { + qw.like("sb.createByName", query.getCreateByName()); + } + if (StringUtils.isNotBlank(query.getBillNo())) { + qw.like("sb.billNo", query.getBillNo()); + } + String createStartTime = query.getCreateStartTime(); + String createEndTime = query.getCreateEndTime(); + qw.apply(StringUtils.isNotEmpty(createStartTime), "date_format (sb.createTime,'%Y-%m-%d') >= date_format('" + createStartTime + "','%Y-%m-%d')"). + apply(StringUtils.isNotEmpty(createEndTime), "date_format (sb.createTime,'%Y-%m-%d') <= date_format('" + createEndTime + "','%Y-%m-%d')" + ); + String finishStartTime = query.getFinishStartTime(); + String finishEndTime = query.getFinishEndTime(); + qw.apply(StringUtils.isNotEmpty(finishStartTime), "date_format (sb.finishTime,'%Y-%m-%d') >= date_format('" + finishStartTime + "','%Y-%m-%d')"). + apply(StringUtils.isNotEmpty(finishEndTime), "date_format (sb.finishTime,'%Y-%m-%d') <= date_format('" + finishEndTime + "','%Y-%m-%d')" + ); + qw.orderByDesc("sb.createTime"); + IPage page = PagerUtil.queryToPage(pq); + IPage pagging = baseMapper.selectPageVo(page, qw); + PagerVo p = PagerUtil.pageToVo(pagging, null); + return p; + } + + public String saveOrUpdateDto(SmsPricestrategyBillDto dto) { + String dtoSid = dto.getSid(); + List smsPricestrategyBillDetailList = dto.getSmsPricestrategyBillDetailList(); + String deptSid = dto.getDeptSid(); + SysOrganizationVo deptVo = sysOrganizationFeign.fetchBySid(deptSid).getData(); + String useOrgSid = sysStaffOrgFeign.getOrgSidByPath(deptVo.getOrgSidPath()).getData(); + SysOrganizationVo organizationVo = sysOrganizationFeign.fetchBySid(useOrgSid).getData(); + dto.setUseOrgSid(useOrgSid); + dto.setUseOrgName(organizationVo.getName()); + if (StringUtils.isBlank(dtoSid)) { + //生成单据编号 + String billNo = ""; + String date = DateUtil.format(DateUtil.date(), "yyyyMM"); + billNo = "JGCL" + organizationVo.getOrgCode() + date; + String i = baseMapper.selectNum(billNo); + if (StringUtils.isNotBlank(i)) { + billNo = Rule.getBillNo(billNo, Integer.valueOf(i).intValue()); + } else { + billNo = Rule.getBillNo(billNo, 0); + } + dto.setBillNo(billNo); + String sid = this.insertByDto(dto); + for (SmsPricestrategyBillDetailDto smsPricestrategyBillDetailDto : smsPricestrategyBillDetailList) { + smsPricestrategyBillDetailDto.setMainSid(sid); + String sid1 = smsPricestrategyBillDetailService.saveOrUpdateDto(smsPricestrategyBillDetailDto); + if (smsPricestrategyBillDetailDto.getStrategyType() == 1) { + SmsPricestrategyBillGoodstypedetailDto smsPricestrategyBillGoodstypedetailDto = new SmsPricestrategyBillGoodstypedetailDto(); + smsPricestrategyBillGoodstypedetailDto.setDetailSid(sid1); + smsPricestrategyBillGoodstypedetailDto.setMarkupRate(smsPricestrategyBillDetailDto.getGdMarkupRate()); + smsPricestrategyBillGoodstypedetailDto.setRangeStart(new BigDecimal("0")); + smsPricestrategyBillGoodstypedetailDto.setRangeEnd(new BigDecimal("99999999")); + smsPricestrategyBillGoodstypedetailService.saveOrUpdateDto(smsPricestrategyBillGoodstypedetailDto); + } else { + List smsPricestrategyBillGoodstypedetailList = smsPricestrategyBillDetailDto.getSmsPricestrategyBillGoodstypedetailList(); + for (SmsPricestrategyBillGoodstypedetailDto smsPricestrategyBillGoodstypedetailDto : smsPricestrategyBillGoodstypedetailList) { + smsPricestrategyBillGoodstypedetailDto.setDetailSid(sid1); + smsPricestrategyBillGoodstypedetailService.saveOrUpdateDto(smsPricestrategyBillGoodstypedetailDto); + } + } + } + return sid; + } + this.updateByDto(dto); + List smsPricestrategyBillDetailDetailsVos = smsPricestrategyBillDetailService.selByMainSid(dtoSid); + for (SmsPricestrategyBillDetailDetailsVo smsPricestrategyBillDetailDetailsVo : smsPricestrategyBillDetailDetailsVos) { + smsPricestrategyBillGoodstypedetailService.delByMainSid(smsPricestrategyBillDetailDetailsVo.getSid()); + } + smsPricestrategyBillDetailService.delByMainSid(dtoSid); + for (SmsPricestrategyBillDetailDto smsPricestrategyBillDetailDto : smsPricestrategyBillDetailList) { + smsPricestrategyBillDetailDto.setMainSid(dtoSid); + String sid1 = smsPricestrategyBillDetailService.saveOrUpdateDto(smsPricestrategyBillDetailDto); + if (smsPricestrategyBillDetailDto.getStrategyType() == 1) { + SmsPricestrategyBillGoodstypedetailDto smsPricestrategyBillGoodstypedetailDto = new SmsPricestrategyBillGoodstypedetailDto(); + smsPricestrategyBillGoodstypedetailDto.setDetailSid(sid1); + smsPricestrategyBillGoodstypedetailDto.setMarkupRate(smsPricestrategyBillDetailDto.getGdMarkupRate()); + smsPricestrategyBillGoodstypedetailService.saveOrUpdateDto(smsPricestrategyBillGoodstypedetailDto); + } else { + List smsPricestrategyBillGoodstypedetailList = smsPricestrategyBillDetailDto.getSmsPricestrategyBillGoodstypedetailList(); + for (SmsPricestrategyBillGoodstypedetailDto smsPricestrategyBillGoodstypedetailDto : smsPricestrategyBillGoodstypedetailList) { + smsPricestrategyBillGoodstypedetailDto.setDetailSid(sid1); + smsPricestrategyBillGoodstypedetailService.saveOrUpdateDto(smsPricestrategyBillGoodstypedetailDto); + } + } + } + return dtoSid; + } + + public String insertByDto(SmsPricestrategyBillDto dto) { + SmsPricestrategyBill entity = new SmsPricestrategyBill(); + BeanUtil.copyProperties(dto, entity, "id", "sid"); + entity.setNodeState("待提交"); + baseMapper.insert(entity); + return entity.getSid(); + } + + public void updateByDto(SmsPricestrategyBillDto dto) { String dtoSid = dto.getSid(); - List smsPricestrategyBillDetailList = dto.getSmsPricestrategyBillDetailList(); - String deptSid = dto.getDeptSid(); - SysOrganizationVo deptVo = sysOrganizationFeign.fetchBySid(deptSid).getData(); - String useOrgSid = sysStaffOrgFeign.getOrgSidByPath(deptVo.getOrgSidPath()).getData(); - SysOrganizationVo organizationVo = sysOrganizationFeign.fetchBySid(useOrgSid).getData(); - dto.setUseOrgSid(useOrgSid); - dto.setUseOrgName(organizationVo.getName()); - if (StringUtils.isBlank(dtoSid)) { - //生成单据编号 - String billNo = ""; - String date = DateUtil.format(DateUtil.date(), "yyyyMM"); - billNo = "JGCL" + organizationVo.getOrgCode() + date; - String i = baseMapper.selectNum(billNo); - if (StringUtils.isNotBlank(i)) { - billNo = Rule.getBillNo(billNo, Integer.valueOf(i).intValue()); - } else { - billNo = Rule.getBillNo(billNo, 0); - } - dto.setBillNo(billNo); - String sid = this.insertByDto(dto); - for (SmsPricestrategyBillDetailDto smsPricestrategyBillDetailDto : smsPricestrategyBillDetailList) { - smsPricestrategyBillDetailDto.setMainSid(sid); - String sid1 = smsPricestrategyBillDetailService.saveOrUpdateDto(smsPricestrategyBillDetailDto); - if (smsPricestrategyBillDetailDto.getStrategyType() == 1){ - SmsPricestrategyBillGoodstypedetailDto smsPricestrategyBillGoodstypedetailDto = new SmsPricestrategyBillGoodstypedetailDto(); - smsPricestrategyBillGoodstypedetailDto.setDetailSid(sid1); - smsPricestrategyBillGoodstypedetailDto.setMarkupRate(smsPricestrategyBillDetailDto.getGdMarkupRate()); - smsPricestrategyBillGoodstypedetailService.saveOrUpdateDto(smsPricestrategyBillGoodstypedetailDto); - }else { - List smsPricestrategyBillGoodstypedetailList = smsPricestrategyBillDetailDto.getSmsPricestrategyBillGoodstypedetailList(); - for (SmsPricestrategyBillGoodstypedetailDto smsPricestrategyBillGoodstypedetailDto : smsPricestrategyBillGoodstypedetailList) { - smsPricestrategyBillGoodstypedetailDto.setDetailSid(sid1); - smsPricestrategyBillGoodstypedetailService.saveOrUpdateDto(smsPricestrategyBillGoodstypedetailDto); - } - } - } - return sid; - } - this.updateByDto(dto); - List smsPricestrategyBillDetailDetailsVos = smsPricestrategyBillDetailService.selByMainSid(dtoSid); - for (SmsPricestrategyBillDetailDetailsVo smsPricestrategyBillDetailDetailsVo : smsPricestrategyBillDetailDetailsVos) { - smsPricestrategyBillGoodstypedetailService.delByMainSid(smsPricestrategyBillDetailDetailsVo.getSid()); - } - smsPricestrategyBillDetailService.delByMainSid(dtoSid); - for (SmsPricestrategyBillDetailDto smsPricestrategyBillDetailDto : smsPricestrategyBillDetailList) { - smsPricestrategyBillDetailDto.setMainSid(dtoSid); - String sid1 = smsPricestrategyBillDetailService.saveOrUpdateDto(smsPricestrategyBillDetailDto); - if (smsPricestrategyBillDetailDto.getStrategyType() == 1){ - SmsPricestrategyBillGoodstypedetailDto smsPricestrategyBillGoodstypedetailDto = new SmsPricestrategyBillGoodstypedetailDto(); - smsPricestrategyBillGoodstypedetailDto.setDetailSid(sid1); - smsPricestrategyBillGoodstypedetailDto.setMarkupRate(smsPricestrategyBillDetailDto.getGdMarkupRate()); - smsPricestrategyBillGoodstypedetailService.saveOrUpdateDto(smsPricestrategyBillGoodstypedetailDto); - }else { - List smsPricestrategyBillGoodstypedetailList = smsPricestrategyBillDetailDto.getSmsPricestrategyBillGoodstypedetailList(); - for (SmsPricestrategyBillGoodstypedetailDto smsPricestrategyBillGoodstypedetailDto : smsPricestrategyBillGoodstypedetailList) { - smsPricestrategyBillGoodstypedetailDto.setDetailSid(sid1); - smsPricestrategyBillGoodstypedetailService.saveOrUpdateDto(smsPricestrategyBillGoodstypedetailDto); - } - } - } - return dtoSid; - } - - public String insertByDto(SmsPricestrategyBillDto dto){ - SmsPricestrategyBill entity = new SmsPricestrategyBill(); - BeanUtil.copyProperties(dto, entity, "id", "sid"); - entity.setNodeState("待提交"); - baseMapper.insert(entity); - return entity.getSid(); - } - - public void updateByDto(SmsPricestrategyBillDto dto){ - String dtoSid = dto.getSid(); if (StringUtils.isBlank(dtoSid)) { return; - } - SmsPricestrategyBill entity = fetchBySid(dtoSid); - BeanUtil.copyProperties(dto, entity, "id", "sid"); - baseMapper.updateById(entity); - } - - public SmsPricestrategyBillDetailsVo fetchDetailsVoBySid(String sid){ - SmsPricestrategyBill entity = fetchBySid(sid); - SmsPricestrategyBillDetailsVo vo = new SmsPricestrategyBillDetailsVo(); - BeanUtil.copyProperties(entity, vo); - List smsPricestrategyBillDetailDetailsVos = smsPricestrategyBillDetailService.selByMainSid(sid); - vo.setSmsPricestrategyBillDetailList(smsPricestrategyBillDetailDetailsVos); - for (SmsPricestrategyBillDetailDetailsVo smsPricestrategyBillDetailDetailsVo : smsPricestrategyBillDetailDetailsVos) { - List smsPricestrategyBillGoodstypedetailDetailsVos = smsPricestrategyBillGoodstypedetailService.selByMainSid(smsPricestrategyBillDetailDetailsVo.getSid()); - if (smsPricestrategyBillDetailDetailsVo.getStrategyType() == 1){ - SmsPricestrategyBillGoodstypedetailDetailsVo smsPricestrategyBillGoodstypedetailDetailsVo = smsPricestrategyBillGoodstypedetailDetailsVos.get(0); - smsPricestrategyBillDetailDetailsVo.setGdMarkupRate(smsPricestrategyBillGoodstypedetailDetailsVo.getMarkupRate()); - }else { - smsPricestrategyBillDetailDetailsVo.setSmsPricestrategyBillGoodstypedetailList(smsPricestrategyBillGoodstypedetailDetailsVos); - } - } - return vo; - } + } + SmsPricestrategyBill entity = fetchBySid(dtoSid); + BeanUtil.copyProperties(dto, entity, "id", "sid"); + baseMapper.updateById(entity); + } - public ResultBean delAll(String[] sids) { - ResultBean rb = ResultBean.fireFail(); - //查询该sid中是否有流程不是待提交的 - int count = baseMapper.selectBySid(StringUtils.join(sids, ",")); - if (count > 0) { - return rb.setMsg("删除的数据中包含已提交或已办结审批的数据,删除失败"); - } - delBySids(sids); - for (String sid : sids) { - List smsPricestrategyBillDetailDetailsVos = smsPricestrategyBillDetailService.selByMainSid(sid); - for (SmsPricestrategyBillDetailDetailsVo smsPricestrategyBillDetailDetailsVo : smsPricestrategyBillDetailDetailsVos) { - smsPricestrategyBillGoodstypedetailService.delByMainSid(smsPricestrategyBillDetailDetailsVo.getSid()); - } - smsPricestrategyBillDetailService.delByMainSid(sid); - } - return rb.success(); - } + public SmsPricestrategyBillDetailsVo fetchDetailsVoBySid(String sid) { + SmsPricestrategyBill entity = fetchBySid(sid); + SmsPricestrategyBillDetailsVo vo = new SmsPricestrategyBillDetailsVo(); + BeanUtil.copyProperties(entity, vo); + List smsPricestrategyBillDetailDetailsVos = smsPricestrategyBillDetailService.selByMainSid(sid); + vo.setSmsPricestrategyBillDetailList(smsPricestrategyBillDetailDetailsVos); + for (SmsPricestrategyBillDetailDetailsVo smsPricestrategyBillDetailDetailsVo : smsPricestrategyBillDetailDetailsVos) { + List smsPricestrategyBillGoodstypedetailDetailsVos = smsPricestrategyBillGoodstypedetailService.selByMainSid(smsPricestrategyBillDetailDetailsVo.getSid()); + if (smsPricestrategyBillDetailDetailsVo.getStrategyType() == 1) { + SmsPricestrategyBillGoodstypedetailDetailsVo smsPricestrategyBillGoodstypedetailDetailsVo = smsPricestrategyBillGoodstypedetailDetailsVos.get(0); + smsPricestrategyBillDetailDetailsVo.setGdMarkupRate(smsPricestrategyBillGoodstypedetailDetailsVo.getMarkupRate()); + } else { + smsPricestrategyBillDetailDetailsVo.setSmsPricestrategyBillGoodstypedetailList(smsPricestrategyBillGoodstypedetailDetailsVos); + } + } + return vo; + } - public ResultBean submit(SubmitSmsPricestrategyBillDto dto) { - ResultBean rb = ResultBean.fireFail(); - SmsPricestrategyBill smsPricestrategyBill = fetchBySid(dto.getSid()); - int r = submitBusinessData(dto, smsPricestrategyBill); - if (r == 3) { - return rb.setMsg("该申请不存在"); - } - if (r == 0) { - return rb.setMsg("操作失败!提交的数据不一致"); - } - //新增修改保存 - String businessSid = saveOrUpdateDto(dto); - smsPricestrategyBill = fetchBySid(businessSid); - //创建BusinessVariables实体对象 - BusinessVariables bv = new BusinessVariables(); - //流程中的参数赋值、若有网关,则赋值网关中判断的字段。 - Map variables = new HashMap<>(); - //用户的部门全路径sid - SysOrganizationVo deptVo = sysOrganizationFeign.fetchBySid(smsPricestrategyBill.getDeptSid()).getData(); - bv.setOrgSidPath(deptVo.getOrgSidPath()); - //业务sid - bv.setBusinessSid(businessSid); - //用户sid - bv.setUserSid(smsPricestrategyBill.getCreateBySid()); - //若app移动端有此功能,则传递appMap参数 - Map appMap = new HashMap<>(); - appMap.put("sid", businessSid); - //需和移动端沟通业务sid保存的属性具体值:appMap中sid不是固定的。移动端提供具体字段。 - variables.put("app", appMap); - //判断发起人是否为配件主管 - String createBySid = smsPricestrategyBill.getCreateBySid(); - List list = sysUserRoleFeign.getUserRoleSidByUserSid(createBySid).getData(); - variables.put("iszg", list.contains("bdacdca7-7a62-49b1-84c6-e32a4ffab777")); - //流程定义id - bv.setModelId(ProcDefEnum.SMSPRICESTRATEGYBILL.getProDefId()); - bv.setFormVariables(variables); - if (r == 1) { - ResultBean voResultBean = flowFeign.startProcess(bv); - UpdateFlowFieldVo ufVo = voResultBean.getData(); - updateFlowFiled(BeanUtil.beanToMap(ufVo)); - //极光推送 - smsPricestrategyBill = fetchBySid(businessSid); - //==================================添加线程 - try { - ThreadFactory namedThreadFactory = new ThreadFactoryBuilder() - .setNameFormat("demo-pool-%d").build(); - ExecutorService pool = new ThreadPoolExecutor(2, 100, - 0L, TimeUnit.MILLISECONDS, - new LinkedBlockingQueue(1024), namedThreadFactory, new ThreadPoolExecutor.AbortPolicy()); - SmsPricestrategyBill pricestrategyBill = smsPricestrategyBill; - Future future1 = pool.submit(() -> { - //极光推送 - MessageFlowableQuery messageFlowableQuery = new MessageFlowableQuery(); - MessageFlowVo messageFlowVo = new MessageFlowVo(); - BeanUtil.copyProperties(ufVo, messageFlowVo); - messageFlowableQuery.setUfVo(messageFlowVo); - messageFlowableQuery.setAppMap(appMap); - messageFlowableQuery.setBusinessSid(businessSid); - messageFlowableQuery.setModuleName("价格策略申请"); - messageFlowableQuery.setMsgContent(pricestrategyBill.getCreateByName() + "提交的" + messageFlowableQuery.getModuleName() + ",请审批"); - messageFlowableQuery.setMsgTitle("价格策略申请"); - messageFeign.pushMessage(messageFlowableQuery); - }); - } catch (Exception e) { - e.printStackTrace(); - } - //==================================添加线程 - return voResultBean; - } - if (r == 2) { - // ToDo:驳回到发起人后再次提交 - if (StringUtils.isBlank(dto.getInstanceId())) { - return rb.setMsg("参数错误:instanceId"); - } - bv.setTaskId(smsPricestrategyBill.getTaskId()); - bv.setTaskDefKey(smsPricestrategyBill.getNodeId()); - bv.setComment(StringUtils.isNotBlank(dto.getComment()) ? dto.getComment() : "重新提交"); - bv.setInstanceId(dto.getInstanceId()); - return complete(bv); - } - return rb; - } + public ResultBean delAll(String[] sids) { + ResultBean rb = ResultBean.fireFail(); + //查询该sid中是否有流程不是待提交的 + int count = baseMapper.selectBySid(StringUtils.join(sids, ",")); + if (count > 0) { + return rb.setMsg("删除的数据中包含已提交或已办结审批的数据,删除失败"); + } + delBySids(sids); + for (String sid : sids) { + List smsPricestrategyBillDetailDetailsVos = smsPricestrategyBillDetailService.selByMainSid(sid); + for (SmsPricestrategyBillDetailDetailsVo smsPricestrategyBillDetailDetailsVo : smsPricestrategyBillDetailDetailsVos) { + smsPricestrategyBillGoodstypedetailService.delByMainSid(smsPricestrategyBillDetailDetailsVo.getSid()); + } + smsPricestrategyBillDetailService.delByMainSid(sid); + } + return rb.success(); + } - private synchronized int submitBusinessData(SubmitSmsPricestrategyBillDto dto, SmsPricestrategyBill smsPricestrategyBill) { - int r = 0; - if (StringUtils.isBlank(dto.getSid())) { - r = 1; - } else { - if (smsPricestrategyBill != null) { - String businessTaskId = smsPricestrategyBill.getTaskId(); - if (StringUtils.isBlank(businessTaskId) && StringUtils.isBlank(dto.getTaskId())) { - //新提交 - r = 1; - } else if (StringUtils.isNotBlank(businessTaskId) && businessTaskId.equals(dto.getTaskId())) { - //二次提交//只有数据一致的时候才能进行下一步 - r = 2; - } - } else { - r = 3; - } + public ResultBean submit(SubmitSmsPricestrategyBillDto dto) { + ResultBean rb = ResultBean.fireFail(); + SmsPricestrategyBill smsPricestrategyBill = fetchBySid(dto.getSid()); + int r = submitBusinessData(dto, smsPricestrategyBill); + if (r == 3) { + return rb.setMsg("该申请不存在"); + } + if (r == 0) { + return rb.setMsg("操作失败!提交的数据不一致"); + } + //新增修改保存 + String businessSid = saveOrUpdateDto(dto); + smsPricestrategyBill = fetchBySid(businessSid); + //创建BusinessVariables实体对象 + BusinessVariables bv = new BusinessVariables(); + //流程中的参数赋值、若有网关,则赋值网关中判断的字段。 + Map variables = new HashMap<>(); + //用户的部门全路径sid + SysOrganizationVo deptVo = sysOrganizationFeign.fetchBySid(smsPricestrategyBill.getDeptSid()).getData(); + bv.setOrgSidPath(deptVo.getOrgSidPath()); + //业务sid + bv.setBusinessSid(businessSid); + //用户sid + bv.setUserSid(smsPricestrategyBill.getCreateBySid()); + //若app移动端有此功能,则传递appMap参数 + Map appMap = new HashMap<>(); + appMap.put("sid", businessSid); + //需和移动端沟通业务sid保存的属性具体值:appMap中sid不是固定的。移动端提供具体字段。 + variables.put("app", appMap); + //判断发起人是否为配件主管 + String createBySid = smsPricestrategyBill.getCreateBySid(); + List list = sysUserRoleFeign.getUserRoleSidByUserSid(createBySid).getData(); + variables.put("iszg", list.contains("bdacdca7-7a62-49b1-84c6-e32a4ffab777")); + //流程定义id + bv.setModelId(ProcDefEnum.SMSPRICESTRATEGYBILL.getProDefId()); + bv.setFormVariables(variables); + if (r == 1) { + ResultBean voResultBean = flowFeign.startProcess(bv); + UpdateFlowFieldVo ufVo = voResultBean.getData(); + updateFlowFiled(BeanUtil.beanToMap(ufVo)); + //极光推送 + smsPricestrategyBill = fetchBySid(businessSid); + //==================================添加线程 + try { + ThreadFactory namedThreadFactory = new ThreadFactoryBuilder() + .setNameFormat("demo-pool-%d").build(); + ExecutorService pool = new ThreadPoolExecutor(2, 100, + 0L, TimeUnit.MILLISECONDS, + new LinkedBlockingQueue(1024), namedThreadFactory, new ThreadPoolExecutor.AbortPolicy()); + SmsPricestrategyBill pricestrategyBill = smsPricestrategyBill; + Future future1 = pool.submit(() -> { + //极光推送 + MessageFlowableQuery messageFlowableQuery = new MessageFlowableQuery(); + MessageFlowVo messageFlowVo = new MessageFlowVo(); + BeanUtil.copyProperties(ufVo, messageFlowVo); + messageFlowableQuery.setUfVo(messageFlowVo); + messageFlowableQuery.setAppMap(appMap); + messageFlowableQuery.setBusinessSid(businessSid); + messageFlowableQuery.setModuleName("价格策略申请"); + messageFlowableQuery.setMsgContent(pricestrategyBill.getCreateByName() + "提交的" + messageFlowableQuery.getModuleName() + ",请审批"); + messageFlowableQuery.setMsgTitle("价格策略申请"); + messageFeign.pushMessage(messageFlowableQuery); + }); + } catch (Exception e) { + e.printStackTrace(); + } + //==================================添加线程 + return voResultBean; + } + if (r == 2) { + // ToDo:驳回到发起人后再次提交 + if (StringUtils.isBlank(dto.getInstanceId())) { + return rb.setMsg("参数错误:instanceId"); + } + bv.setTaskId(smsPricestrategyBill.getTaskId()); + bv.setTaskDefKey(smsPricestrategyBill.getNodeId()); + bv.setComment(StringUtils.isNotBlank(dto.getComment()) ? dto.getComment() : "重新提交"); + bv.setInstanceId(dto.getInstanceId()); + return complete(bv); + } + return rb; + } - } - return r; - } + private synchronized int submitBusinessData(SubmitSmsPricestrategyBillDto dto, SmsPricestrategyBill smsPricestrategyBill) { + int r = 0; + if (StringUtils.isBlank(dto.getSid())) { + r = 1; + } else { + if (smsPricestrategyBill != null) { + String businessTaskId = smsPricestrategyBill.getTaskId(); + if (StringUtils.isBlank(businessTaskId) && StringUtils.isBlank(dto.getTaskId())) { + //新提交 + r = 1; + } else if (StringUtils.isNotBlank(businessTaskId) && businessTaskId.equals(dto.getTaskId())) { + //二次提交//只有数据一致的时候才能进行下一步 + r = 2; + } + } else { + r = 3; + } - private int updateFlowFiled(Map map) { - return baseMapper.updateFlowFiled(map); - } + } + return r; + } - public ResultBean complete(BusinessVariables bv) { - ResultBean rb = ResultBean.fireFail(); - String businessSid = bv.getBusinessSid(); - SmsPricestrategyBill smsPricestrategyBill = fetchBySid(businessSid); - Map variables = new HashMap<>(); - //判断发起人是否为配件主管 - String createBySid = smsPricestrategyBill.getCreateBySid(); - List list = sysUserRoleFeign.getUserRoleSidByUserSid(createBySid).getData(); - variables.put("iszg", list.contains("bdacdca7-7a62-49b1-84c6-e32a4ffab777")); - Map appMap = new HashMap<>(); - appMap.put("sid", businessSid); - variables.put("app", appMap); - FlowProcessMapQuery flowProcessMapQuery = new FlowProcessMapQuery(); - if (StringUtils.isBlank(smsPricestrategyBill.getProcDefId())) { - flowProcessMapQuery.setProDefKey(bv.getModelId()); - } else { - flowProcessMapQuery.setProDefKey(smsPricestrategyBill.getProcDefId()); - } - flowProcessMapQuery.setVariables(variables); - variables = flowableFeign.getMap(flowProcessMapQuery).getData(); - //======================================= - bv.setFormVariables(variables); - SysOrganizationVo deptVo = sysOrganizationFeign.fetchBySid(smsPricestrategyBill.getDeptSid()).getData(); - bv.setOrgSidPath(deptVo.getOrgSidPath()); - if (bv.getTaskId().equals(smsPricestrategyBill.getTaskId())) { - ResultBean resultBean = flowFeign.handleProsess(bv); - if (!resultBean.getSuccess()) { - return rb.setMsg(resultBean.getMsg()); - } - UpdateFlowFieldVo ufVo = resultBean.getData(); - updateFlowFiled(BeanUtil.beanToMap(resultBean.getData())); - if ("Event_end".equals(resultBean.getData().getTaskDefKey())) { + private int updateFlowFiled(Map map) { + return baseMapper.updateFlowFiled(map); + } - } else { - //极光推送 - smsPricestrategyBill = fetchBySid(businessSid); - //==================================添加线程 - try { - ThreadFactory namedThreadFactory = new ThreadFactoryBuilder() - .setNameFormat("demo-pool-%d").build(); - ExecutorService pool = new ThreadPoolExecutor(2, 100, - 0L, TimeUnit.MILLISECONDS, - new LinkedBlockingQueue(1024), namedThreadFactory, new ThreadPoolExecutor.AbortPolicy()); - SmsPricestrategyBill pricestrategyBill = smsPricestrategyBill; - Future future1 = pool.submit(() -> { - //极光推送 - MessageFlowableQuery messageFlowableQuery = new MessageFlowableQuery(); - MessageFlowVo messageFlowVo = new MessageFlowVo(); - BeanUtil.copyProperties(ufVo, messageFlowVo); - ufVo.setProcDefId(pricestrategyBill.getProcDefId()); - ufVo.setProcInsId(pricestrategyBill.getProcInstId()); - messageFlowableQuery.setUfVo(messageFlowVo); - messageFlowableQuery.setAppMap(appMap); - messageFlowableQuery.setBusinessSid(businessSid); - messageFlowableQuery.setModuleName("价格策略申请"); - messageFlowableQuery.setMsgContent(pricestrategyBill.getCreateByName() + "提交的" + messageFlowableQuery.getModuleName() + ",请审批"); - messageFlowableQuery.setMsgTitle("价格策略申请"); - messageFeign.pushMessage(messageFlowableQuery); - }); - } catch (Exception e) { - e.printStackTrace(); - } - //==================================添加线程 - } - return rb.success().setData(resultBean.getData()); - } else { - return rb.setMsg("操作失败!提交的数据不一致"); - } - } + public ResultBean complete(BusinessVariables bv) { + ResultBean rb = ResultBean.fireFail(); + String businessSid = bv.getBusinessSid(); + SmsPricestrategyBill smsPricestrategyBill = fetchBySid(businessSid); + Map variables = new HashMap<>(); + //判断发起人是否为配件主管 + String createBySid = smsPricestrategyBill.getCreateBySid(); + List list = sysUserRoleFeign.getUserRoleSidByUserSid(createBySid).getData(); + variables.put("iszg", list.contains("bdacdca7-7a62-49b1-84c6-e32a4ffab777")); + Map appMap = new HashMap<>(); + appMap.put("sid", businessSid); + variables.put("app", appMap); + FlowProcessMapQuery flowProcessMapQuery = new FlowProcessMapQuery(); + if (StringUtils.isBlank(smsPricestrategyBill.getProcDefId())) { + flowProcessMapQuery.setProDefKey(bv.getModelId()); + } else { + flowProcessMapQuery.setProDefKey(smsPricestrategyBill.getProcDefId()); + } + flowProcessMapQuery.setVariables(variables); + variables = flowableFeign.getMap(flowProcessMapQuery).getData(); + //======================================= + bv.setFormVariables(variables); + SysOrganizationVo deptVo = sysOrganizationFeign.fetchBySid(smsPricestrategyBill.getDeptSid()).getData(); + bv.setOrgSidPath(deptVo.getOrgSidPath()); + if (bv.getTaskId().equals(smsPricestrategyBill.getTaskId())) { + ResultBean resultBean = flowFeign.handleProsess(bv); + if (!resultBean.getSuccess()) { + return rb.setMsg(resultBean.getMsg()); + } + UpdateFlowFieldVo ufVo = resultBean.getData(); + updateFlowFiled(BeanUtil.beanToMap(resultBean.getData())); + if ("Event_end".equals(resultBean.getData().getTaskDefKey())) { + List smsPricestrategyBillDetailDetailsVos = smsPricestrategyBillDetailService.selByMainSid(businessSid); + for (SmsPricestrategyBillDetailDetailsVo smsPricestrategyBillDetailDetailsVo : smsPricestrategyBillDetailDetailsVos) { + List smsPricestrategyBillGoodstypedetailDetailsVos = smsPricestrategyBillGoodstypedetailService.selByMainSid(smsPricestrategyBillDetailDetailsVo.getSid()); + List skuSids = baseGoodsSkuFeign.fetchSkuSid(smsPricestrategyBillDetailDetailsVo.getGoodsTypeSid()).getData(); + for (String skuSid : skuSids) { + BigDecimal price = wmsInventoryFeign.compute(skuSid).getData(); + if (price.compareTo(BigDecimal.ZERO) == 0) { + //查找出入库记录中最后一次销售出库的销售价 + BigDecimal cost = wmsInventoryRecordFeign.selCost(skuSid).getData(); + if (cost.compareTo(BigDecimal.ZERO) == 1){ + for (SmsPricestrategyBillGoodstypedetailDetailsVo smsPricestrategyBillGoodstypedetailDetailsVo : smsPricestrategyBillGoodstypedetailDetailsVos) { + if (cost.compareTo(smsPricestrategyBillGoodstypedetailDetailsVo.getRangeStart()) != -1 && cost.compareTo(smsPricestrategyBillGoodstypedetailDetailsVo.getRangeEnd()) != 1) { + BigDecimal markupRate = smsPricestrategyBillGoodstypedetailDetailsVo.getMarkupRate(); + cost = cost.add(cost.multiply(markupRate).divide(new BigDecimal("100"))); + baseGoodsSkuExtendFeign.updateSalesPrice(skuSid, cost.toString()); + } + } + } + } else { + for (SmsPricestrategyBillGoodstypedetailDetailsVo smsPricestrategyBillGoodstypedetailDetailsVo : smsPricestrategyBillGoodstypedetailDetailsVos) { + if (price.compareTo(smsPricestrategyBillGoodstypedetailDetailsVo.getRangeStart()) != -1 && price.compareTo(smsPricestrategyBillGoodstypedetailDetailsVo.getRangeEnd()) != 1) { + BigDecimal markupRate = smsPricestrategyBillGoodstypedetailDetailsVo.getMarkupRate(); + price = price.add(price.multiply(markupRate).divide(new BigDecimal("100"))); + baseGoodsSkuExtendFeign.updateSalesPrice(skuSid, price.toString()); + } + } + } + } + } + } else { + //极光推送 + smsPricestrategyBill = fetchBySid(businessSid); + //==================================添加线程 + try { + ThreadFactory namedThreadFactory = new ThreadFactoryBuilder() + .setNameFormat("demo-pool-%d").build(); + ExecutorService pool = new ThreadPoolExecutor(2, 100, + 0L, TimeUnit.MILLISECONDS, + new LinkedBlockingQueue(1024), namedThreadFactory, new ThreadPoolExecutor.AbortPolicy()); + SmsPricestrategyBill pricestrategyBill = smsPricestrategyBill; + Future future1 = pool.submit(() -> { + //极光推送 + MessageFlowableQuery messageFlowableQuery = new MessageFlowableQuery(); + MessageFlowVo messageFlowVo = new MessageFlowVo(); + BeanUtil.copyProperties(ufVo, messageFlowVo); + ufVo.setProcDefId(pricestrategyBill.getProcDefId()); + ufVo.setProcInsId(pricestrategyBill.getProcInstId()); + messageFlowableQuery.setUfVo(messageFlowVo); + messageFlowableQuery.setAppMap(appMap); + messageFlowableQuery.setBusinessSid(businessSid); + messageFlowableQuery.setModuleName("价格策略申请"); + messageFlowableQuery.setMsgContent(pricestrategyBill.getCreateByName() + "提交的" + messageFlowableQuery.getModuleName() + ",请审批"); + messageFlowableQuery.setMsgTitle("价格策略申请"); + messageFeign.pushMessage(messageFlowableQuery); + }); + } catch (Exception e) { + e.printStackTrace(); + } + //==================================添加线程 + } + return rb.success().setData(resultBean.getData()); + } else { + return rb.setMsg("操作失败!提交的数据不一致"); + } + } - public ResultBean> getPreviousNodesForReject(SmsPricestrategyBillNodeQuery query) { - ResultBean> rb = ResultBean.fireFail(); - BusinessVariables bv = new BusinessVariables(); - BeanUtil.copyProperties(query, bv); - //流程中的参数赋值、若有网关,则赋值网关中判断的字段。 - Map variables = new HashMap<>(); - //查询业务信息 - SmsPricestrategyBill smsPricestrategyBill = fetchBySid(query.getBusinessSid()); - //判断发起人是否为配件主管 - String createBySid = smsPricestrategyBill.getCreateBySid(); - List list = sysUserRoleFeign.getUserRoleSidByUserSid(createBySid).getData(); - variables.put("iszg", list.contains("bdacdca7-7a62-49b1-84c6-e32a4ffab777")); - bv.setModelId(smsPricestrategyBill.getProcDefId()); - bv.setFormVariables(variables); - //======================================= - ResultBean>> resultBean = flowTaskFeign.getPreviousNodesForReject(bv); - //判断数组是否为空,若为空则赋值,若不为空,则遍历循环将map中的数据赋值给getNodeVo - List voList = Optional.ofNullable(resultBean.getData()).orElse(new ArrayList<>()).stream().map(m -> JSON.parseObject(JSON.toJSONString(m), SmsPricestrategyBillNodeVo.class)).collect(Collectors.toList()); - return rb.success().setData(voList); - } + public ResultBean> getPreviousNodesForReject(SmsPricestrategyBillNodeQuery query) { + ResultBean> rb = ResultBean.fireFail(); + BusinessVariables bv = new BusinessVariables(); + BeanUtil.copyProperties(query, bv); + //流程中的参数赋值、若有网关,则赋值网关中判断的字段。 + Map variables = new HashMap<>(); + //查询业务信息 + SmsPricestrategyBill smsPricestrategyBill = fetchBySid(query.getBusinessSid()); + //判断发起人是否为配件主管 + String createBySid = smsPricestrategyBill.getCreateBySid(); + List list = sysUserRoleFeign.getUserRoleSidByUserSid(createBySid).getData(); + variables.put("iszg", list.contains("bdacdca7-7a62-49b1-84c6-e32a4ffab777")); + bv.setModelId(smsPricestrategyBill.getProcDefId()); + bv.setFormVariables(variables); + //======================================= + ResultBean>> resultBean = flowTaskFeign.getPreviousNodesForReject(bv); + //判断数组是否为空,若为空则赋值,若不为空,则遍历循环将map中的数据赋值给getNodeVo + List voList = Optional.ofNullable(resultBean.getData()).orElse(new ArrayList<>()).stream().map(m -> JSON.parseObject(JSON.toJSONString(m), SmsPricestrategyBillNodeVo.class)).collect(Collectors.toList()); + return rb.success().setData(voList); + } - public ResultBean> getNextNodesForSubmit(SmsPricestrategyBillNodeQuery query) { - ResultBean> rb = ResultBean.fireFail(); - BusinessVariables bv = new BusinessVariables(); - BeanUtil.copyProperties(query, bv); - //流程中的参数赋值、若有网关,则赋值网关中判断的字段。 - Map variables = new HashMap<>(); - //查询业务信息 - SmsPricestrategyBill smsPricestrategyBill = fetchBySid(query.getBusinessSid()); - //判断发起人是否为配件主管 - String createBySid = smsPricestrategyBill.getCreateBySid(); - List list = sysUserRoleFeign.getUserRoleSidByUserSid(createBySid).getData(); - variables.put("iszg", list.contains("bdacdca7-7a62-49b1-84c6-e32a4ffab777")); - bv.setModelId(smsPricestrategyBill.getProcDefId()); - bv.setFormVariables(variables); - //======================================= - ResultBean>> resultBean = flowTaskFeign.getNextNodesForSubmit(bv); - //判断数组是否为空,若为空则赋值,若不为空,则遍历循环将map中的数据赋值给getNodeVo - List voList = Optional.ofNullable(resultBean.getData()).orElse(new ArrayList<>()).stream().map(m -> JSON.parseObject(JSON.toJSONString(m), SmsPricestrategyBillNodeVo.class)).collect(Collectors.toList()); - return rb.success().setData(voList); - } + public ResultBean> getNextNodesForSubmit(SmsPricestrategyBillNodeQuery query) { + ResultBean> rb = ResultBean.fireFail(); + BusinessVariables bv = new BusinessVariables(); + BeanUtil.copyProperties(query, bv); + //流程中的参数赋值、若有网关,则赋值网关中判断的字段。 + Map variables = new HashMap<>(); + //查询业务信息 + SmsPricestrategyBill smsPricestrategyBill = fetchBySid(query.getBusinessSid()); + //判断发起人是否为配件主管 + String createBySid = smsPricestrategyBill.getCreateBySid(); + List list = sysUserRoleFeign.getUserRoleSidByUserSid(createBySid).getData(); + variables.put("iszg", list.contains("bdacdca7-7a62-49b1-84c6-e32a4ffab777")); + bv.setModelId(smsPricestrategyBill.getProcDefId()); + bv.setFormVariables(variables); + //======================================= + ResultBean>> resultBean = flowTaskFeign.getNextNodesForSubmit(bv); + //判断数组是否为空,若为空则赋值,若不为空,则遍历循环将map中的数据赋值给getNodeVo + List voList = Optional.ofNullable(resultBean.getData()).orElse(new ArrayList<>()).stream().map(m -> JSON.parseObject(JSON.toJSONString(m), SmsPricestrategyBillNodeVo.class)).collect(Collectors.toList()); + return rb.success().setData(voList); + } - public ResultBean reject(SmsPricestrategyBillTaskQuery query) { - ResultBean rb = ResultBean.fireFail(); - String businessSid = query.getBusinessSid(); - SmsPricestrategyBill smsPricestrategyBill = fetchBySid(businessSid); - if (smsPricestrategyBill == null) { - return rb.setMsg("该申请不存在"); - } - String businessTaskId = smsPricestrategyBill.getTaskId(); - if (StringUtils.isNotBlank(businessTaskId)) { - if (businessTaskId.equals(query.getTaskId())) { - if (StringUtils.isBlank(query.getComment())) { - return rb.setMsg("请填写意见"); - } - if (StringUtils.isBlank(query.getUserSid())) { - return rb.setMsg("参数错误:userSid"); - } - FlowTaskVo flowTaskVo = new FlowTaskVo(); - BeanUtil.copyProperties(query, flowTaskVo); - Map variables = new HashMap<>(); - Map appMap = new HashMap<>(); - appMap.put("sid", businessSid); - variables.put("app", appMap); - //判断发起人是否为配件主管 - String createBySid = smsPricestrategyBill.getCreateBySid(); - List list = sysUserRoleFeign.getUserRoleSidByUserSid(createBySid).getData(); - variables.put("iszg", list.contains("bdacdca7-7a62-49b1-84c6-e32a4ffab777")); - flowTaskVo.setValues(variables); - ResultBean resultBean = flowableFeign.taskReject(flowTaskVo); - if (!resultBean.getSuccess()) { - return rb.setMsg(resultBean.getMsg()); - } - UpdateFlowFieldVo ufVo = resultBean.getData(); - Map map = BeanUtil.beanToMap(ufVo); - //更新业务中的流程相关的参数 - updateFlowFiled(map); - //极光推送 - smsPricestrategyBill = fetchBySid(businessSid); - //==================================添加线程 - try { - ThreadFactory namedThreadFactory = new ThreadFactoryBuilder() - .setNameFormat("demo-pool-%d").build(); - ExecutorService pool = new ThreadPoolExecutor(2, 100, - 0L, TimeUnit.MILLISECONDS, - new LinkedBlockingQueue(1024), namedThreadFactory, new ThreadPoolExecutor.AbortPolicy()); - SmsPricestrategyBill pricestrategyBill = smsPricestrategyBill; - Future future1 = pool.submit(() -> { - //极光推送 - MessageFlowableQuery messageFlowableQuery = new MessageFlowableQuery(); - MessageFlowVo messageFlowVo = new MessageFlowVo(); - BeanUtil.copyProperties(ufVo, messageFlowVo); - String procId = pricestrategyBill.getProcInstId(); - ufVo.setProcInsId(procId); - ufVo.setProcDefId(pricestrategyBill.getProcDefId()); - messageFlowableQuery.setUfVo(messageFlowVo); - messageFlowableQuery.setAppMap(appMap); - messageFlowableQuery.setBusinessSid(businessSid); - messageFlowableQuery.setModuleName("价格策略申请"); - ResultBean> listResultBean = flowTaskFeign.getLatestTasks(procId); - String nextNodeUserSids = listResultBean.getData().get(0).getASSIGNEE_(); - List receiveSidList = Arrays.asList(nextNodeUserSids.split(",")); - if (receiveSidList.size() == 1 && receiveSidList.get(0).equals(pricestrategyBill.getCreateBySid())) { - messageFlowableQuery.setMsgContent("您提交的" + messageFlowableQuery.getModuleName() + "已被驳回,请重新提交"); - } else { - messageFlowableQuery.setMsgContent(pricestrategyBill.getCreateByName() + "提交的" + messageFlowableQuery.getModuleName() + ",请审批"); - } - messageFlowableQuery.setMsgTitle("价格策略申请"); - messageFeign.pushMessage(messageFlowableQuery); - }); - } catch (Exception e) { - e.printStackTrace(); - } - //==================================添加线程 - return rb.success(); - } - } - return rb.setMsg("操作失败!提交的数据不一致!"); - } + public ResultBean reject(SmsPricestrategyBillTaskQuery query) { + ResultBean rb = ResultBean.fireFail(); + String businessSid = query.getBusinessSid(); + SmsPricestrategyBill smsPricestrategyBill = fetchBySid(businessSid); + if (smsPricestrategyBill == null) { + return rb.setMsg("该申请不存在"); + } + String businessTaskId = smsPricestrategyBill.getTaskId(); + if (StringUtils.isNotBlank(businessTaskId)) { + if (businessTaskId.equals(query.getTaskId())) { + if (StringUtils.isBlank(query.getComment())) { + return rb.setMsg("请填写意见"); + } + if (StringUtils.isBlank(query.getUserSid())) { + return rb.setMsg("参数错误:userSid"); + } + FlowTaskVo flowTaskVo = new FlowTaskVo(); + BeanUtil.copyProperties(query, flowTaskVo); + Map variables = new HashMap<>(); + Map appMap = new HashMap<>(); + appMap.put("sid", businessSid); + variables.put("app", appMap); + //判断发起人是否为配件主管 + String createBySid = smsPricestrategyBill.getCreateBySid(); + List list = sysUserRoleFeign.getUserRoleSidByUserSid(createBySid).getData(); + variables.put("iszg", list.contains("bdacdca7-7a62-49b1-84c6-e32a4ffab777")); + flowTaskVo.setValues(variables); + ResultBean resultBean = flowableFeign.taskReject(flowTaskVo); + if (!resultBean.getSuccess()) { + return rb.setMsg(resultBean.getMsg()); + } + UpdateFlowFieldVo ufVo = resultBean.getData(); + Map map = BeanUtil.beanToMap(ufVo); + //更新业务中的流程相关的参数 + updateFlowFiled(map); + //极光推送 + smsPricestrategyBill = fetchBySid(businessSid); + //==================================添加线程 + try { + ThreadFactory namedThreadFactory = new ThreadFactoryBuilder() + .setNameFormat("demo-pool-%d").build(); + ExecutorService pool = new ThreadPoolExecutor(2, 100, + 0L, TimeUnit.MILLISECONDS, + new LinkedBlockingQueue(1024), namedThreadFactory, new ThreadPoolExecutor.AbortPolicy()); + SmsPricestrategyBill pricestrategyBill = smsPricestrategyBill; + Future future1 = pool.submit(() -> { + //极光推送 + MessageFlowableQuery messageFlowableQuery = new MessageFlowableQuery(); + MessageFlowVo messageFlowVo = new MessageFlowVo(); + BeanUtil.copyProperties(ufVo, messageFlowVo); + String procId = pricestrategyBill.getProcInstId(); + ufVo.setProcInsId(procId); + ufVo.setProcDefId(pricestrategyBill.getProcDefId()); + messageFlowableQuery.setUfVo(messageFlowVo); + messageFlowableQuery.setAppMap(appMap); + messageFlowableQuery.setBusinessSid(businessSid); + messageFlowableQuery.setModuleName("价格策略申请"); + ResultBean> listResultBean = flowTaskFeign.getLatestTasks(procId); + String nextNodeUserSids = listResultBean.getData().get(0).getASSIGNEE_(); + List receiveSidList = Arrays.asList(nextNodeUserSids.split(",")); + if (receiveSidList.size() == 1 && receiveSidList.get(0).equals(pricestrategyBill.getCreateBySid())) { + messageFlowableQuery.setMsgContent("您提交的" + messageFlowableQuery.getModuleName() + "已被驳回,请重新提交"); + } else { + messageFlowableQuery.setMsgContent(pricestrategyBill.getCreateByName() + "提交的" + messageFlowableQuery.getModuleName() + ",请审批"); + } + messageFlowableQuery.setMsgTitle("价格策略申请"); + messageFeign.pushMessage(messageFlowableQuery); + }); + } catch (Exception e) { + e.printStackTrace(); + } + //==================================添加线程 + return rb.success(); + } + } + return rb.setMsg("操作失败!提交的数据不一致!"); + } - public ResultBean revokeProcess(SmsPricestrategyBillTaskQuery query) { - ResultBean rb = ResultBean.fireFail(); - if (StringUtils.isBlank(query.getUserSid())) { - return rb.setMsg("参数错误:userSid"); - } - SmsPricestrategyBill smsPricestrategyBill = fetchBySid(query.getBusinessSid()); - String businessTaskId = smsPricestrategyBill.getTaskId(); - if (StringUtils.isNotBlank(businessTaskId)) { - if (businessTaskId.equals(query.getTaskId())) { - FlowTaskVo flowTaskVo = new FlowTaskVo(); - BeanUtil.copyProperties(query, flowTaskVo); - ResultBean resultBean = flowableFeign.revokeProcess(flowTaskVo); - if (!resultBean.getSuccess()) { - return rb.setMsg(resultBean.getMsg()); - } - updateFlowFiled(BeanUtil.beanToMap(resultBean.getData())); - return rb.success().setData(resultBean.getData()); - } - } - return rb.setMsg("操作失败,提交的数据不一致!"); - } + public ResultBean revokeProcess(SmsPricestrategyBillTaskQuery query) { + ResultBean rb = ResultBean.fireFail(); + if (StringUtils.isBlank(query.getUserSid())) { + return rb.setMsg("参数错误:userSid"); + } + SmsPricestrategyBill smsPricestrategyBill = fetchBySid(query.getBusinessSid()); + String businessTaskId = smsPricestrategyBill.getTaskId(); + if (StringUtils.isNotBlank(businessTaskId)) { + if (businessTaskId.equals(query.getTaskId())) { + FlowTaskVo flowTaskVo = new FlowTaskVo(); + BeanUtil.copyProperties(query, flowTaskVo); + ResultBean resultBean = flowableFeign.revokeProcess(flowTaskVo); + if (!resultBean.getSuccess()) { + return rb.setMsg(resultBean.getMsg()); + } + updateFlowFiled(BeanUtil.beanToMap(resultBean.getData())); + return rb.success().setData(resultBean.getData()); + } + } + return rb.setMsg("操作失败,提交的数据不一致!"); + } - public ResultBean breakProcess(SmsPricestrategyBillTaskQuery query) { - ResultBean rb = ResultBean.fireFail(); - if (StringUtils.isBlank(query.getInstanceId())) { - return rb.setMsg("参数错误:instanceId"); - } - if (StringUtils.isBlank(query.getUserSid())) { - return rb.setMsg("参数错误:userSid"); - } - if (StringUtils.isBlank(query.getComment())) { - return rb.setMsg("请填写意见"); - } - SmsPricestrategyBill smsPricestrategyBill = fetchBySid(query.getBusinessSid()); - String businessTaskId = smsPricestrategyBill.getTaskId(); - if (StringUtils.isNotBlank(businessTaskId)) { - if (query.getUserSid().equals(smsPricestrategyBill.getCreateBySid())) { - FlowTaskVo flowTaskVo = new FlowTaskVo(); - BeanUtil.copyProperties(query, flowTaskVo); - ResultBean resultBean = flowableFeign.breakProcess(flowTaskVo); - if (!resultBean.getSuccess()) { - return rb.setMsg(resultBean.getMsg()); - } - Map map = BeanUtil.beanToMap(resultBean.getData()); - updateFlowFiled(map); - return rb.success().setData(resultBean.getData()); - } else { - if (businessTaskId.equals(query.getTaskId())) { - FlowTaskVo flowTaskVo = new FlowTaskVo(); - BeanUtil.copyProperties(query, flowTaskVo); - ResultBean resultBean = flowableFeign.breakProcess(flowTaskVo); - if (!resultBean.getSuccess()) { - return rb.setMsg(resultBean.getMsg()); - } - Map map = BeanUtil.beanToMap(resultBean.getData()); - updateFlowFiled(map); - return rb.success().setData(resultBean.getData()); - } - } + public ResultBean breakProcess(SmsPricestrategyBillTaskQuery query) { + ResultBean rb = ResultBean.fireFail(); + if (StringUtils.isBlank(query.getInstanceId())) { + return rb.setMsg("参数错误:instanceId"); + } + if (StringUtils.isBlank(query.getUserSid())) { + return rb.setMsg("参数错误:userSid"); + } + if (StringUtils.isBlank(query.getComment())) { + return rb.setMsg("请填写意见"); + } + SmsPricestrategyBill smsPricestrategyBill = fetchBySid(query.getBusinessSid()); + String businessTaskId = smsPricestrategyBill.getTaskId(); + if (StringUtils.isNotBlank(businessTaskId)) { + if (query.getUserSid().equals(smsPricestrategyBill.getCreateBySid())) { + FlowTaskVo flowTaskVo = new FlowTaskVo(); + BeanUtil.copyProperties(query, flowTaskVo); + ResultBean resultBean = flowableFeign.breakProcess(flowTaskVo); + if (!resultBean.getSuccess()) { + return rb.setMsg(resultBean.getMsg()); + } + Map map = BeanUtil.beanToMap(resultBean.getData()); + updateFlowFiled(map); + return rb.success().setData(resultBean.getData()); + } else { + if (businessTaskId.equals(query.getTaskId())) { + FlowTaskVo flowTaskVo = new FlowTaskVo(); + BeanUtil.copyProperties(query, flowTaskVo); + ResultBean resultBean = flowableFeign.breakProcess(flowTaskVo); + if (!resultBean.getSuccess()) { + return rb.setMsg(resultBean.getMsg()); + } + Map map = BeanUtil.beanToMap(resultBean.getData()); + updateFlowFiled(map); + return rb.success().setData(resultBean.getData()); + } + } - } - return rb.setMsg("操作失败!提交的数据不一致!"); - } + } + return rb.setMsg("操作失败!提交的数据不一致!"); + } - public ResultBean delegate(SmsPricestrategyBillDelegateQuery query) { - ResultBean rb = ResultBean.fireFail(); - FlowDelegateQuery delegateQuery = new FlowDelegateQuery(); - BeanUtil.copyProperties(query, delegateQuery); - flowFeign.delegate(delegateQuery); - return rb.success(); - } + public ResultBean delegate(SmsPricestrategyBillDelegateQuery query) { + ResultBean rb = ResultBean.fireFail(); + FlowDelegateQuery delegateQuery = new FlowDelegateQuery(); + BeanUtil.copyProperties(query, delegateQuery); + flowFeign.delegate(delegateQuery); + return rb.success(); + } } \ No newline at end of file diff --git a/yxt-sms-biz/src/main/java/com/yxt/sms/biz/smspricestrategybilldetail/SmsPricestrategyBillDetailMapper.java b/yxt-sms-biz/src/main/java/com/yxt/sms/biz/smspricestrategybilldetail/SmsPricestrategyBillDetailMapper.java index 28083f5218..f35455d3ea 100644 --- a/yxt-sms-biz/src/main/java/com/yxt/sms/biz/smspricestrategybilldetail/SmsPricestrategyBillDetailMapper.java +++ b/yxt-sms-biz/src/main/java/com/yxt/sms/biz/smspricestrategybilldetail/SmsPricestrategyBillDetailMapper.java @@ -57,4 +57,6 @@ public interface SmsPricestrategyBillDetailMapper extends BaseMapper selByMainSid(String mainSid); + + String selSid(@Param("goodsTypeSid") String goodsTypeSid,@Param("deptSid") String deptSid); } \ No newline at end of file diff --git a/yxt-sms-biz/src/main/java/com/yxt/sms/biz/smspricestrategybilldetail/SmsPricestrategyBillDetailMapper.xml b/yxt-sms-biz/src/main/java/com/yxt/sms/biz/smspricestrategybilldetail/SmsPricestrategyBillDetailMapper.xml index f92a84a21b..d1e84539e6 100644 --- a/yxt-sms-biz/src/main/java/com/yxt/sms/biz/smspricestrategybilldetail/SmsPricestrategyBillDetailMapper.xml +++ b/yxt-sms-biz/src/main/java/com/yxt/sms/biz/smspricestrategybilldetail/SmsPricestrategyBillDetailMapper.xml @@ -3,4 +3,16 @@ + + \ No newline at end of file diff --git a/yxt-sms-biz/src/main/java/com/yxt/sms/biz/smspricestrategybilldetail/SmsPricestrategyBillDetailService.java b/yxt-sms-biz/src/main/java/com/yxt/sms/biz/smspricestrategybilldetail/SmsPricestrategyBillDetailService.java index eb4685185d..0bcb1dbc0e 100644 --- a/yxt-sms-biz/src/main/java/com/yxt/sms/biz/smspricestrategybilldetail/SmsPricestrategyBillDetailService.java +++ b/yxt-sms-biz/src/main/java/com/yxt/sms/biz/smspricestrategybilldetail/SmsPricestrategyBillDetailService.java @@ -28,6 +28,7 @@ package com.yxt.sms.biz.smspricestrategybilldetail; import cn.hutool.core.bean.BeanUtil; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; +import com.yxt.common.core.result.ResultBean; import org.apache.commons.lang3.StringUtils; import com.yxt.common.base.service.MybatisBaseService; import com.yxt.common.base.utils.PagerUtil; @@ -90,4 +91,10 @@ public class SmsPricestrategyBillDetailService extends MybatisBaseService selByMainSid(String mainSid) { return baseMapper.selByMainSid(mainSid); } + + public ResultBean selSid(String goodsTypeSid, String deptSid) { + ResultBean rb = ResultBean.fireFail(); + String sid = baseMapper.selSid(goodsTypeSid,deptSid); + return rb.success().setData(sid); + } } \ No newline at end of file diff --git a/yxt-sms-biz/src/main/java/com/yxt/sms/feign/wms/wmsinventory/WmsInventoryFeign.java b/yxt-sms-biz/src/main/java/com/yxt/sms/feign/wms/wmsinventory/WmsInventoryFeign.java index b797ab1389..1063738a86 100644 --- a/yxt-sms-biz/src/main/java/com/yxt/sms/feign/wms/wmsinventory/WmsInventoryFeign.java +++ b/yxt-sms-biz/src/main/java/com/yxt/sms/feign/wms/wmsinventory/WmsInventoryFeign.java @@ -10,6 +10,7 @@ import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestParam; +import java.math.BigDecimal; import java.util.List; /** @@ -39,4 +40,8 @@ public interface WmsInventoryFeign { @ApiOperation("根据goodsID获取数据") @GetMapping("/getListByGoodsID") public ResultBean> getListByGoodsID(@RequestParam("goodsID") String goodsID); + + @ApiOperation("根据商品skuSid计算平均入库价") + @GetMapping("/compute") + ResultBean compute(@RequestParam("skuSid") String skuSid); } diff --git a/yxt-sms-biz/src/main/java/com/yxt/sms/feign/wms/wmsinventory/WmsInventoryFeignFallback.java b/yxt-sms-biz/src/main/java/com/yxt/sms/feign/wms/wmsinventory/WmsInventoryFeignFallback.java index 50b23a75aa..991a015ed6 100644 --- a/yxt-sms-biz/src/main/java/com/yxt/sms/feign/wms/wmsinventory/WmsInventoryFeignFallback.java +++ b/yxt-sms-biz/src/main/java/com/yxt/sms/feign/wms/wmsinventory/WmsInventoryFeignFallback.java @@ -30,6 +30,7 @@ import com.yxt.common.core.result.ResultBean; import com.yxt.common.core.vo.PagerVo; import org.springframework.stereotype.Component; +import java.math.BigDecimal; import java.util.List; /** @@ -67,4 +68,9 @@ public class WmsInventoryFeignFallback implements WmsInventoryFeign { public ResultBean> getListByGoodsID(String goodsID) { return null; } + + @Override + public ResultBean compute(String skuSid) { + return null; + } } diff --git a/yxt-sms-biz/src/main/java/com/yxt/sms/feign/wms/wmsinventoryrecord/WmsInventoryRecordFeign.java b/yxt-sms-biz/src/main/java/com/yxt/sms/feign/wms/wmsinventoryrecord/WmsInventoryRecordFeign.java index 45e758582b..5bdcb4d4c8 100644 --- a/yxt-sms-biz/src/main/java/com/yxt/sms/feign/wms/wmsinventoryrecord/WmsInventoryRecordFeign.java +++ b/yxt-sms-biz/src/main/java/com/yxt/sms/feign/wms/wmsinventoryrecord/WmsInventoryRecordFeign.java @@ -11,6 +11,7 @@ import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestParam; +import java.math.BigDecimal; import java.util.List; /** @@ -29,4 +30,8 @@ public interface WmsInventoryRecordFeign { @ApiOperation("新增或修改") @PostMapping("/save") public ResultBean save(@RequestBody WmsInventoryRecordDto dto); + + @ApiOperation("查找出入库记录中最后一次销售出库的销售价") + @PostMapping("/selCost") + ResultBean selCost(@RequestParam("skuSid") String skuSid); } diff --git a/yxt-sms-biz/src/main/java/com/yxt/sms/feign/yxtbase/BaseGoodsSkuExtendFeign.java b/yxt-sms-biz/src/main/java/com/yxt/sms/feign/yxtbase/BaseGoodsSkuExtendFeign.java new file mode 100644 index 0000000000..c8af706bd8 --- /dev/null +++ b/yxt-sms-biz/src/main/java/com/yxt/sms/feign/yxtbase/BaseGoodsSkuExtendFeign.java @@ -0,0 +1,26 @@ +package com.yxt.sms.feign.yxtbase; + +import com.yxt.common.core.result.ResultBean; +import io.swagger.annotations.ApiOperation; +import org.springframework.cloud.openfeign.FeignClient; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestParam; + +import java.util.List; + +/** + * @description: 库存信息 + * @author: fzz + * @date: 2024/3/7 + **/ +@FeignClient( + contextId = "yxt-base-BaseGoodsSkuExtend", + name = "yxt-base", + path = "/apiadmin/base/basegoodsskuextend" +) +public interface BaseGoodsSkuExtendFeign { + + @ApiOperation("根据skuSid修改销售单价") + @PostMapping("/updateSalesPrice") + ResultBean updateSalesPrice(@RequestParam("skuSid") String skuSid,@RequestParam("salesPrice") String salesPrice); +} diff --git a/yxt-sms-biz/src/main/java/com/yxt/sms/feign/yxtbase/BaseGoodsSkuFeign.java b/yxt-sms-biz/src/main/java/com/yxt/sms/feign/yxtbase/BaseGoodsSkuFeign.java new file mode 100644 index 0000000000..f38a72b1ae --- /dev/null +++ b/yxt-sms-biz/src/main/java/com/yxt/sms/feign/yxtbase/BaseGoodsSkuFeign.java @@ -0,0 +1,31 @@ +package com.yxt.sms.feign.yxtbase; + +import com.yxt.common.core.query.PagerQuery; +import com.yxt.common.core.result.ResultBean; +import com.yxt.common.core.vo.PagerVo; +import com.yxt.sms.feign.wms.wmsinventory.*; +import io.swagger.annotations.ApiOperation; +import org.springframework.cloud.openfeign.FeignClient; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestParam; + +import java.util.List; + +/** + * @description: 库存信息 + * @author: fzz + * @date: 2024/3/7 + **/ +@FeignClient( + contextId = "yxt-base-BaseGoodsSku", + name = "yxt-base", + path = "/apiadmin/base/basegoodssku" +) +public interface BaseGoodsSkuFeign { + + @ApiOperation("根据商品类别sid查询对应的skusid") + @PostMapping("/fetchSkuSid") + ResultBean> fetchSkuSid(@RequestParam("goodTypeSid") String goodTypeSid); +} diff --git a/yxt-wms-biz/src/main/java/com/yxt/wms/apiadmin/inventroy/WmsInventoryRecordRest.java b/yxt-wms-biz/src/main/java/com/yxt/wms/apiadmin/inventroy/WmsInventoryRecordRest.java index 3d80031a5e..6087d0e681 100644 --- a/yxt-wms-biz/src/main/java/com/yxt/wms/apiadmin/inventroy/WmsInventoryRecordRest.java +++ b/yxt-wms-biz/src/main/java/com/yxt/wms/apiadmin/inventroy/WmsInventoryRecordRest.java @@ -174,7 +174,6 @@ public class WmsInventoryRecordRest { } - @ApiOperation("新增出入库记录") @PostMapping("/saveInventoryRecord") ResultBean saveInventoryRecord(@RequestBody InventoryRecordDto dto){ @@ -186,4 +185,10 @@ public class WmsInventoryRecordRest { ResultBean selNum(@RequestParam("sourceBillSid") String sourceBillSid, @RequestParam("goodsID") String goodsID){ return wmsInventoryRecordService.selNum(sourceBillSid,goodsID); } + + @ApiOperation("查找出入库记录中最后一次销售出库的销售价") + @PostMapping("/selCost") + ResultBean selCost(@RequestParam("skuSid") String skuSid){ + return wmsInventoryRecordService.selCost(skuSid); + } } diff --git a/yxt-wms-biz/src/main/java/com/yxt/wms/apiadmin/inventroy/WmsInventoryRest.java b/yxt-wms-biz/src/main/java/com/yxt/wms/apiadmin/inventroy/WmsInventoryRest.java index 1e0bcec063..844de60062 100644 --- a/yxt-wms-biz/src/main/java/com/yxt/wms/apiadmin/inventroy/WmsInventoryRest.java +++ b/yxt-wms-biz/src/main/java/com/yxt/wms/apiadmin/inventroy/WmsInventoryRest.java @@ -23,6 +23,7 @@ import org.springframework.web.bind.annotation.*; import javax.servlet.http.HttpServletResponse; import java.io.UnsupportedEncodingException; +import java.math.BigDecimal; import java.net.URLEncoder; import java.util.List; @@ -237,6 +238,14 @@ public class WmsInventoryRest { return rb.success().setData(pv); } + @ApiOperation("根据商品skuSid计算平均入库价") + @GetMapping("/compute") + ResultBean compute(@RequestParam("skuSid") String skuSid){ + ResultBean rb = ResultBean.fireFail(); + BigDecimal price = wmsInventoryService.compute(skuSid); + return rb.success().setData(price); + } + //-----------------------------app------------------------------------------- @ApiOperation("app配件库存查询") @PostMapping("/fittingsInventory2") diff --git a/yxt-wms-biz/src/main/java/com/yxt/wms/biz/inventory/wmsinventory/WmsInventoryMapper.java b/yxt-wms-biz/src/main/java/com/yxt/wms/biz/inventory/wmsinventory/WmsInventoryMapper.java index 7bb919c10a..7dc393044d 100644 --- a/yxt-wms-biz/src/main/java/com/yxt/wms/biz/inventory/wmsinventory/WmsInventoryMapper.java +++ b/yxt-wms-biz/src/main/java/com/yxt/wms/biz/inventory/wmsinventory/WmsInventoryMapper.java @@ -14,6 +14,7 @@ import com.yxt.wms.biz.inventory.wmsinventory.report.DeadStockVo; import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Param; +import java.math.BigDecimal; import java.util.List; /** @@ -93,4 +94,6 @@ public interface WmsInventoryMapper extends BaseMapper { IPage deadStockList(IPage page,@Param(Constants.WRAPPER) QueryWrapper qw); String selByGoodsIdAndRackSid(@Param("goodsID") String goodsID,@Param("warehouseRackSid") String warehouseRackSid); + + BigDecimal compute(String skuSid); } diff --git a/yxt-wms-biz/src/main/java/com/yxt/wms/biz/inventory/wmsinventory/WmsInventoryMapper.xml b/yxt-wms-biz/src/main/java/com/yxt/wms/biz/inventory/wmsinventory/WmsInventoryMapper.xml index 653e44cbcc..d3f65d276f 100644 --- a/yxt-wms-biz/src/main/java/com/yxt/wms/biz/inventory/wmsinventory/WmsInventoryMapper.xml +++ b/yxt-wms-biz/src/main/java/com/yxt/wms/biz/inventory/wmsinventory/WmsInventoryMapper.xml @@ -683,4 +683,13 @@ WHERE goodsID = #{goodsID} AND warehouseRackSid = #{warehouseRackSid} + + diff --git a/yxt-wms-biz/src/main/java/com/yxt/wms/biz/inventory/wmsinventory/WmsInventoryService.java b/yxt-wms-biz/src/main/java/com/yxt/wms/biz/inventory/wmsinventory/WmsInventoryService.java index dad03bdbc9..74559b8fa9 100644 --- a/yxt-wms-biz/src/main/java/com/yxt/wms/biz/inventory/wmsinventory/WmsInventoryService.java +++ b/yxt-wms-biz/src/main/java/com/yxt/wms/biz/inventory/wmsinventory/WmsInventoryService.java @@ -1077,4 +1077,8 @@ public class WmsInventoryService extends MybatisBaseService String selByGoodsID(String content); BigDecimal selNum(@Param("sourceBillSid") String sourceBillSid, @Param("goodsID") String goodsID); + + BigDecimal selCost(String skuSid); } diff --git a/yxt-wms-biz/src/main/java/com/yxt/wms/biz/inventory/wmsinventoryrecord/WmsInventoryRecordMapper.xml b/yxt-wms-biz/src/main/java/com/yxt/wms/biz/inventory/wmsinventoryrecord/WmsInventoryRecordMapper.xml index eacea6b0d8..6b291acdcf 100644 --- a/yxt-wms-biz/src/main/java/com/yxt/wms/biz/inventory/wmsinventoryrecord/WmsInventoryRecordMapper.xml +++ b/yxt-wms-biz/src/main/java/com/yxt/wms/biz/inventory/wmsinventoryrecord/WmsInventoryRecordMapper.xml @@ -190,4 +190,14 @@ AND sourceBillSid = #{sourceBillSid} AND billType = 1 + + diff --git a/yxt-wms-biz/src/main/java/com/yxt/wms/biz/inventory/wmsinventoryrecord/WmsInventoryRecordService.java b/yxt-wms-biz/src/main/java/com/yxt/wms/biz/inventory/wmsinventoryrecord/WmsInventoryRecordService.java index 1ad021eaa2..57d6c6d951 100644 --- a/yxt-wms-biz/src/main/java/com/yxt/wms/biz/inventory/wmsinventoryrecord/WmsInventoryRecordService.java +++ b/yxt-wms-biz/src/main/java/com/yxt/wms/biz/inventory/wmsinventoryrecord/WmsInventoryRecordService.java @@ -430,4 +430,10 @@ public class WmsInventoryRecordService extends MybatisBaseService selCost(String skuSid) { + ResultBean rb = ResultBean.fireFail(); + BigDecimal cost = baseMapper.selCost(skuSid); + return rb.success().setData(cost); + } } diff --git a/yxt-wms-biz/src/main/java/com/yxt/wms/biz/inventory/wmsshelfbill/WmsShelfBillService.java b/yxt-wms-biz/src/main/java/com/yxt/wms/biz/inventory/wmsshelfbill/WmsShelfBillService.java index 1acf0a1720..28c76146a8 100644 --- a/yxt-wms-biz/src/main/java/com/yxt/wms/biz/inventory/wmsshelfbill/WmsShelfBillService.java +++ b/yxt-wms-biz/src/main/java/com/yxt/wms/biz/inventory/wmsshelfbill/WmsShelfBillService.java @@ -46,12 +46,16 @@ import com.yxt.wms.feign.base.basegoodspu.BaseGoodsSpu; import com.yxt.wms.feign.base.basegoodspu.BaseGoodsSpuFeign; import com.yxt.wms.feign.base.basegoodssku.BaseGoodsSkuDetailsVo; import com.yxt.wms.feign.base.basegoodssku.BaseGoodsSkuFeign; +import com.yxt.wms.feign.base.basegoodsskuextend.BaseGoodsSkuExtendFeign; import com.yxt.wms.feign.portal.privilege.PrivilegeQuery; import com.yxt.wms.feign.portal.sysorganization.SysOrganizationFeign; import com.yxt.wms.feign.portal.sysorganization.SysOrganizationVo; import com.yxt.wms.feign.portal.sysstafforg.SysStaffOrgFeign; import com.yxt.wms.feign.portal.sysuser.SysUserFeign; import com.yxt.wms.feign.portal.sysuser.SysUserVo; +import com.yxt.wms.feign.sms.smspricestrategybilldetail.SmsPricesTrategyBillDetailFeign; +import com.yxt.wms.feign.sms.smsspricestrategybillgoodstypedetail.SmsPricesTrategyBillGoodsTypeDetailFeign; +import com.yxt.wms.feign.sms.smsspricestrategybillgoodstypedetail.SmsPricestrategyBillGoodstypedetailDetailsVo; import com.yxt.wms.utils.BillNo; import com.yxt.wms.utils.Rule; import org.springframework.beans.factory.annotation.Autowired; @@ -110,7 +114,11 @@ public class WmsShelfBillService extends MybatisBaseService listPage(PagerQuery pq) { WmsShelfBillQuery query = pq.getParams(); @@ -750,6 +758,23 @@ public class WmsShelfBillService extends MybatisBaseService data = smsPricesTrategyBillGoodsTypeDetailFeign.selByMainSid(tjmxSid).getData(); + for (SmsPricestrategyBillGoodstypedetailDetailsVo smsPricestrategyBillGoodstypedetailDetailsVo : data) { + BigDecimal cost = receiptBillDetail.getCost(); + if (cost.compareTo(smsPricestrategyBillGoodstypedetailDetailsVo.getRangeStart()) != -1 && cost.compareTo(smsPricestrategyBillGoodstypedetailDetailsVo.getRangeEnd()) != 1) { + BigDecimal markupRate = smsPricestrategyBillGoodstypedetailDetailsVo.getMarkupRate(); + cost = cost.add(cost.multiply(markupRate).divide(new BigDecimal("100"))); + baseGoodsSkuExtendFeign.updateSalesPrice(shelfBillGoods.getGoodsSkuSid(), cost.toString()); + } + } + } BigDecimal actualCount = BigDecimal.ZERO; if (null != shelfBillGoods.getActualCount()) { actualCount = shelfBillGoods.getActualCount(); @@ -784,7 +809,6 @@ public class WmsShelfBillService extends MybatisBaseService selSid(@RequestParam("goodsTypeSid") String goodsTypeSid,@RequestParam("deptSid") String deptSid); +} diff --git a/yxt-wms-biz/src/main/java/com/yxt/wms/feign/sms/smsspricestrategybillgoodstypedetail/SmsPricesTrategyBillGoodsTypeDetailFeign.java b/yxt-wms-biz/src/main/java/com/yxt/wms/feign/sms/smsspricestrategybillgoodstypedetail/SmsPricesTrategyBillGoodsTypeDetailFeign.java new file mode 100644 index 0000000000..76245f044f --- /dev/null +++ b/yxt-wms-biz/src/main/java/com/yxt/wms/feign/sms/smsspricestrategybillgoodstypedetail/SmsPricesTrategyBillGoodsTypeDetailFeign.java @@ -0,0 +1,26 @@ +package com.yxt.wms.feign.sms.smsspricestrategybillgoodstypedetail; + +import com.yxt.common.core.result.ResultBean; +import io.swagger.annotations.ApiOperation; +import org.springframework.cloud.openfeign.FeignClient; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.RequestParam; + +import java.util.List; + +/** + * @description: + * @author: dimengzhe + * @date: 2024/3/20 + **/ +@FeignClient( + contextId = "yxt-sms-SmsPricesTrategyBillGoodsTypeDetail", + name = "yxt-sms", + path = "v1/smspricestrategybillgoodstypedetail" + ) +public interface SmsPricesTrategyBillGoodsTypeDetailFeign { + + @ApiOperation("根据定调价明细sid查询") + @GetMapping("/selByMainSid") + public ResultBean> selByMainSid(@RequestParam("mainSid") String mainSid); +} diff --git a/yxt-wms-biz/src/main/java/com/yxt/wms/feign/sms/smsspricestrategybillgoodstypedetail/SmsPricestrategyBillGoodstypedetailDetailsVo.java b/yxt-wms-biz/src/main/java/com/yxt/wms/feign/sms/smsspricestrategybillgoodstypedetail/SmsPricestrategyBillGoodstypedetailDetailsVo.java new file mode 100644 index 0000000000..90ab723a6c --- /dev/null +++ b/yxt-wms-biz/src/main/java/com/yxt/wms/feign/sms/smsspricestrategybillgoodstypedetail/SmsPricestrategyBillGoodstypedetailDetailsVo.java @@ -0,0 +1,64 @@ +/********************************************************* + ********************************************************* + ******************** ******************* + ************* ************ + ******* _oo0oo_ ******* + *** o8888888o *** + * 88" . "88 * + * (| -_- |) * + * 0\ = /0 * + * ___/`---'\___ * + * .' \\| |// '. * + * / \\||| : |||// \ * + * / _||||| -:- |||||- \ * + * | | \\\ - /// | | * + * | \_| ''\---/'' |_/ | * + * \ .-\__ '-' ___/-. / * + * ___'. .' /--.--\ `. .'___ * + * ."" '< `.___\_<|>_/___.' >' "". * + * | | : `- \`.;`\ _ /`;.`/ - ` : | | * + * \ \ `_. \_ __\ /__ _/ .-` / / * + * =====`-.____`.___ \_____/___.-`___.-'===== * + * `=---=' * + * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ * + *********__佛祖保佑__永无BUG__验收通过__钞票多多__********* + *********************************************************/ +package com.yxt.wms.feign.sms.smsspricestrategybillgoodstypedetail; + + +import com.yxt.common.core.vo.Vo; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.math.BigDecimal; + +/** + * Project: yxt-sms(价格策略)
+ * File: SmsPricestrategyBillGoodstypedetailVo.java
+ * Class: com.yxt.sms.api.smspricestrategybillgoodstypedetail.SmsPricestrategyBillGoodstypedetailVo
+ * Description: 价格策略商品类别明细 视图数据对象.
+ * Copyright: Copyright (c) 2011
+ * Company: https://gitee.com/liuzp315
+ * Makedate: 2024-03-28 14:32:24
+ * + * @author liupopo + * @version 1.0 + * @since 1.0 + */ +@Data +@ApiModel(value = "价格策略商品类别明细 视图数据详情", description = "价格策略商品类别明细 视图数据详情") +public class SmsPricestrategyBillGoodstypedetailDetailsVo implements Vo { + + private String sid; // sid + + @ApiModelProperty("业务sid") + private String detailSid; // 业务sid + @ApiModelProperty("区间起始") + private BigDecimal rangeStart; // 区间起始 + @ApiModelProperty("区间截止") + private BigDecimal rangeEnd; // 区间截止 + @ApiModelProperty("加价比例") + private BigDecimal markupRate; // 加价比例 + +} \ No newline at end of file