From d1512a8e582b0d7eaa7efabd05ee2ce0cd035c43 Mon Sep 17 00:00:00 2001 From: zjf <1799650030@qq.com> Date: Mon, 17 Mar 2025 12:32:32 +0800 Subject: [PATCH] =?UTF-8?q?=E5=AE=89=E5=8D=93=E6=9C=BA=E8=B6=85=E5=B8=82?= =?UTF-8?q?=E5=95=86=E5=93=81=E5=88=97=E8=A1=A8=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../supermarket/entity/SmErpCgDdEntity.java | 5 + .../bsd/pjcloud/supermarket/vo/ad/SpuVo.java | 95 +++++++++++++++++++ .../controller/SmErpCgDdController.java | 23 +++++ .../controller/SmErpSpuController.java | 4 +- .../supermarket/mapper/SmErpSpuMapper.java | 5 +- .../supermarket/service/SmErpSpuService.java | 3 +- .../service/impl/SmErpCgDdServiceImpl.java | 21 +++- .../service/impl/SmErpSpuServiceImpl.java | 9 +- .../main/resources/mapper/SmErpCgDdMapper.xml | 2 + .../main/resources/mapper/SmErpSpuMapper.xml | 87 ++++++----------- 10 files changed, 183 insertions(+), 71 deletions(-) create mode 100644 pjcloud-supermarket/pjcloud-supermarket-api/src/main/java/com/bsd/pjcloud/supermarket/vo/ad/SpuVo.java diff --git a/pjcloud-supermarket/pjcloud-supermarket-api/src/main/java/com/bsd/pjcloud/supermarket/entity/SmErpCgDdEntity.java b/pjcloud-supermarket/pjcloud-supermarket-api/src/main/java/com/bsd/pjcloud/supermarket/entity/SmErpCgDdEntity.java index 312282781..52b8fd41a 100644 --- a/pjcloud-supermarket/pjcloud-supermarket-api/src/main/java/com/bsd/pjcloud/supermarket/entity/SmErpCgDdEntity.java +++ b/pjcloud-supermarket/pjcloud-supermarket-api/src/main/java/com/bsd/pjcloud/supermarket/entity/SmErpCgDdEntity.java @@ -162,6 +162,11 @@ public class SmErpCgDdEntity extends Model { @Schema(description="关联编码") private String linkCode; + @Schema(description="流程实例id") + private String processInstanceId; + + @Schema(description="审核原因") + private String checkReason; @Schema(description="商品名称") @TableField(exist = false) diff --git a/pjcloud-supermarket/pjcloud-supermarket-api/src/main/java/com/bsd/pjcloud/supermarket/vo/ad/SpuVo.java b/pjcloud-supermarket/pjcloud-supermarket-api/src/main/java/com/bsd/pjcloud/supermarket/vo/ad/SpuVo.java new file mode 100644 index 000000000..624f6ccb5 --- /dev/null +++ b/pjcloud-supermarket/pjcloud-supermarket-api/src/main/java/com/bsd/pjcloud/supermarket/vo/ad/SpuVo.java @@ -0,0 +1,95 @@ +package com.bsd.pjcloud.supermarket.vo.ad; + +import com.baomidou.mybatisplus.annotation.FieldFill; +import com.baomidou.mybatisplus.annotation.TableField; +import com.bsd.pjcloud.supermarket.vo.erp.SmErpAuxiliaryCodeVo; +import com.bsd.pjcloud.supermarket.vo.erp.SmErpUnitVo; +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; + +import java.time.LocalDateTime; +import java.util.List; + +@Data +public class SpuVo { + /** + * 商品 SPU 编号,自增 + */ + @Schema(description="商品 SPU 编号,自增") + private Long id; + + /** + * 货号 + */ + @Schema(description="货号") + private String productCode; + + /** + * 商品名称 + */ + @Schema(description="商品名称") + private String productName; + + /** + * 单位 + */ + @Schema(description="单位") + private String unit; + + /** + * 单位 + */ + @Schema(description="规格") + private String spec; + + + /** + * 商品分类编号 + */ + @Schema(description="商品分类编号") + private Long categoryId; + + /** + * 商品封面图 + */ + @Schema(description="商品封面图") + private String picUrl; + + + /** + * 库存 + */ + @Schema(description="剩余库存") + private Double stock; + + + /** + * 商品性质(字典) + */ + @Schema(description="商品性质(字典)") + private String productNature; + + + /** + * 零售价和促销价取基础单位的价格 + */ + @Schema(description="零售价") + private Integer retailPrice; + + @Schema(description="促销价") + private Integer promotionPrice; + + + @Schema(description = "销量") + private Integer salesCount; + + /** + * 创建时间 + */ + @TableField(fill = FieldFill.INSERT) + @Schema(description="创建时间") + private LocalDateTime createTime; + + + +} diff --git a/pjcloud-supermarket/pjcloud-supermarket-biz/src/main/java/com/bsd/pjcloud/supermarket/controller/SmErpCgDdController.java b/pjcloud-supermarket/pjcloud-supermarket-biz/src/main/java/com/bsd/pjcloud/supermarket/controller/SmErpCgDdController.java index 53d8867cc..32536b3f6 100644 --- a/pjcloud-supermarket/pjcloud-supermarket-biz/src/main/java/com/bsd/pjcloud/supermarket/controller/SmErpCgDdController.java +++ b/pjcloud-supermarket/pjcloud-supermarket-biz/src/main/java/com/bsd/pjcloud/supermarket/controller/SmErpCgDdController.java @@ -4,11 +4,16 @@ import cn.hutool.core.util.ArrayUtil; import cn.hutool.core.collection.CollUtil; import cn.hutool.core.util.StrUtil; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.bsd.pjcloud.common.core.util.BeanUtils; import com.bsd.pjcloud.common.core.util.R; import com.bsd.pjcloud.common.log.annotation.SysLog; +import com.bsd.pjcloud.common.security.annotation.Inner; +import com.bsd.pjcloud.flow.task.dto.ProcessNodeRecordParamDto; +import com.bsd.pjcloud.flow.task.utils.GetCheckReasonUtils; +import com.bsd.pjcloud.flow.task.vo.CheckStatusAndReasonVo; import com.bsd.pjcloud.supermarket.dto.cgdd.CGPlanLinkQueryDTO; import com.bsd.pjcloud.supermarket.dto.cgdd.ErpCgDDEditDTO; import com.bsd.pjcloud.supermarket.dto.cgdd.ErpCgDDSaveDTO; @@ -28,6 +33,7 @@ import org.springframework.http.HttpHeaders; import io.swagger.v3.oas.annotations.tags.Tag; import io.swagger.v3.oas.annotations.Operation; import lombok.RequiredArgsConstructor; +import org.springframework.transaction.annotation.Transactional; import org.springframework.web.bind.annotation.*; import java.util.List; @@ -122,6 +128,23 @@ public class SmErpCgDdController { return R.ok(smErpCgDdService.saveCGDD(erpCgDDSaveDTO)); } + + @Operation(summary = "回调" , description = "回调" ) + @SysLog("采购订单回调" ) + @PostMapping("/flow-callback") + @Inner(value = false) + @Transactional + public R supermarketFlowCallback(@RequestBody ProcessNodeRecordParamDto processNodeRecordParamDto) { + String processInstanceId = processNodeRecordParamDto.getProcessInstanceId(); + CheckStatusAndReasonVo checkReason = GetCheckReasonUtils.getCheckReason(processNodeRecordParamDto); + smErpCgDdService.update( + new LambdaUpdateWrapper() + .eq(SmErpCgDdEntity::getProcessInstanceId, processInstanceId) + .set(SmErpCgDdEntity::getCheckStatus, checkReason.getCheckStatus()) + .set(SmErpCgDdEntity::getCheckReason, checkReason.getCheckReason()) + ); + return R.ok(); + } /** * 修改采购订单 * @return R diff --git a/pjcloud-supermarket/pjcloud-supermarket-biz/src/main/java/com/bsd/pjcloud/supermarket/controller/SmErpSpuController.java b/pjcloud-supermarket/pjcloud-supermarket-biz/src/main/java/com/bsd/pjcloud/supermarket/controller/SmErpSpuController.java index 2f4961682..a8694513c 100644 --- a/pjcloud-supermarket/pjcloud-supermarket-biz/src/main/java/com/bsd/pjcloud/supermarket/controller/SmErpSpuController.java +++ b/pjcloud-supermarket/pjcloud-supermarket-biz/src/main/java/com/bsd/pjcloud/supermarket/controller/SmErpSpuController.java @@ -251,8 +251,8 @@ public class SmErpSpuController { @Operation(summary = "安卓机条件查询所有" , description = "安卓机条件查询所有" ) @PostMapping("/ad/selectListAll" ) @PreAuthorize("@pms.hasPermission('supermarket_supermarketSpu_view')" ) - public R getSupermarketSpuByScope(@RequestBody SupermarketSpuQueryDTO supermarketSpuQueryDTO) { - return R.ok(smErpSpuService.selectListAllScope(supermarketSpuQueryDTO)); + public R getSupermarketSpuByScope(@ParameterObject Page page,@RequestBody SupermarketSpuQueryDTO supermarketSpuQueryDTO) { + return R.ok(smErpSpuService.selectListAllScope(page,supermarketSpuQueryDTO)); } diff --git a/pjcloud-supermarket/pjcloud-supermarket-biz/src/main/java/com/bsd/pjcloud/supermarket/mapper/SmErpSpuMapper.java b/pjcloud-supermarket/pjcloud-supermarket-biz/src/main/java/com/bsd/pjcloud/supermarket/mapper/SmErpSpuMapper.java index 4d27c3626..7848bc318 100644 --- a/pjcloud-supermarket/pjcloud-supermarket-biz/src/main/java/com/bsd/pjcloud/supermarket/mapper/SmErpSpuMapper.java +++ b/pjcloud-supermarket/pjcloud-supermarket-biz/src/main/java/com/bsd/pjcloud/supermarket/mapper/SmErpSpuMapper.java @@ -1,12 +1,15 @@ package com.bsd.pjcloud.supermarket.mapper; import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.bsd.pjcloud.common.data.datascope.DataScope; import com.bsd.pjcloud.common.data.datascope.PjcloudBaseMapper; import com.bsd.pjcloud.supermarket.dto.SupermarketSpuQueryDTO; import com.bsd.pjcloud.supermarket.entity.SmErpSpuEntity; +import com.bsd.pjcloud.supermarket.vo.ad.SpuVo; import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Param; +import org.springdoc.core.annotations.ParameterObject; import java.util.List; @@ -38,6 +41,6 @@ public interface SmErpSpuMapper extends PjcloudBaseMapper { return update(null, updateWrapper); } - List selectListAllScope(@Param("supermarketSpuQueryDTO") SupermarketSpuQueryDTO supermarketSpuQueryDTO + Page selectListAllScope(@ParameterObject Page page, @Param("supermarketSpuQueryDTO") SupermarketSpuQueryDTO supermarketSpuQueryDTO , DataScope dataScope); } \ No newline at end of file diff --git a/pjcloud-supermarket/pjcloud-supermarket-biz/src/main/java/com/bsd/pjcloud/supermarket/service/SmErpSpuService.java b/pjcloud-supermarket/pjcloud-supermarket-biz/src/main/java/com/bsd/pjcloud/supermarket/service/SmErpSpuService.java index fc1a83c5f..b9c6e07ad 100644 --- a/pjcloud-supermarket/pjcloud-supermarket-biz/src/main/java/com/bsd/pjcloud/supermarket/service/SmErpSpuService.java +++ b/pjcloud-supermarket/pjcloud-supermarket-biz/src/main/java/com/bsd/pjcloud/supermarket/service/SmErpSpuService.java @@ -11,6 +11,7 @@ import com.bsd.pjcloud.supermarket.dto.erpspu.SmErpSpuImportDto; import com.bsd.pjcloud.supermarket.entity.SmErpSpuEntity; import com.bsd.pjcloud.supermarket.vo.cgplan.ErpSpuWithUnitPageVo; import com.bsd.pjcloud.supermarket.vo.sm.smspu.SmErpPageScopeVo; +import org.springdoc.core.annotations.ParameterObject; import org.springframework.validation.BindingResult; import java.util.ArrayList; @@ -49,7 +50,7 @@ public interface SmErpSpuService extends IService { * @param * @return */ - Object selectListAllScope(SupermarketSpuQueryDTO supermarketSpuQueryDTO); + Object selectListAllScope(@ParameterObject Page page,SupermarketSpuQueryDTO supermarketSpuQueryDTO); /** diff --git a/pjcloud-supermarket/pjcloud-supermarket-biz/src/main/java/com/bsd/pjcloud/supermarket/service/impl/SmErpCgDdServiceImpl.java b/pjcloud-supermarket/pjcloud-supermarket-biz/src/main/java/com/bsd/pjcloud/supermarket/service/impl/SmErpCgDdServiceImpl.java index d1e00f821..2d75c4e69 100644 --- a/pjcloud-supermarket/pjcloud-supermarket-biz/src/main/java/com/bsd/pjcloud/supermarket/service/impl/SmErpCgDdServiceImpl.java +++ b/pjcloud-supermarket/pjcloud-supermarket-biz/src/main/java/com/bsd/pjcloud/supermarket/service/impl/SmErpCgDdServiceImpl.java @@ -9,6 +9,11 @@ import com.bsd.pjcloud.common.core.util.BeanUtils; import com.bsd.pjcloud.common.core.util.R; import com.bsd.pjcloud.common.data.datascope.DataScope; import com.bsd.pjcloud.common.security.util.SecurityUtils; +import com.bsd.pjcloud.flow.task.api.feign.RemoteFlowApiFlowService; +import com.bsd.pjcloud.flow.task.constant.TaskCheckStatusEnum; +import com.bsd.pjcloud.flow.task.dto.ProcessInstanceParamDto; +import com.bsd.pjcloud.flow.task.entity.Process; +import com.bsd.pjcloud.supermarket.constant.SupermarketFlowConstant; import com.bsd.pjcloud.supermarket.dto.cgdd.ErpCgDDEditDTO; import com.bsd.pjcloud.supermarket.dto.cgdd.ErpCgDDSaveDTO; import com.bsd.pjcloud.supermarket.dto.cgdd.SmCgDDEditItemDTO; @@ -48,8 +53,7 @@ public class SmErpCgDdServiceImpl extends ServiceImpl items = erpCgDDSaveDTO.getItems(); List cgPlanItemEntities = BeanUtils.toBean(items, SmErpCgDdItemEntity.class); + + R processR = remoteFlowApiFlowService.getProcessByBusinessKey(SupermarketFlowConstant.SUPERMARKET_CGDD_FLOW); + String flowId = processR.getData().getFlowId(); + ProcessInstanceParamDto processInstanceParamDto = new ProcessInstanceParamDto(); + processInstanceParamDto.setFlowId(flowId); + R stringR = remoteFlowApiFlowService.startProcessInstance(processInstanceParamDto); + String processInstanceId = stringR.getData(); + smErpCgDdEntity.setProcessInstanceId(processInstanceId); + smErpCgDdEntity.setCheckStatus(TaskCheckStatusEnum.PADDING.getCode()); + int insert = baseMapper.insert(smErpCgDdEntity); + + for (SmErpCgDdItemEntity cgPlanItemEntity : cgPlanItemEntities) { cgPlanItemEntity.setHId(smErpCgDdEntity.getId()); cgPlanItemEntity.setDeptId(deptId); diff --git a/pjcloud-supermarket/pjcloud-supermarket-biz/src/main/java/com/bsd/pjcloud/supermarket/service/impl/SmErpSpuServiceImpl.java b/pjcloud-supermarket/pjcloud-supermarket-biz/src/main/java/com/bsd/pjcloud/supermarket/service/impl/SmErpSpuServiceImpl.java index 0f61f336b..ce9cff787 100644 --- a/pjcloud-supermarket/pjcloud-supermarket-biz/src/main/java/com/bsd/pjcloud/supermarket/service/impl/SmErpSpuServiceImpl.java +++ b/pjcloud-supermarket/pjcloud-supermarket-biz/src/main/java/com/bsd/pjcloud/supermarket/service/impl/SmErpSpuServiceImpl.java @@ -23,6 +23,7 @@ import com.bsd.pjcloud.supermarket.service.*; import com.bsd.pjcloud.supermarket.task.TaskStoreService; import com.bsd.pjcloud.supermarket.validarot.ErpSpuValidator; import com.bsd.pjcloud.supermarket.validarot.SupplierValidator; +import com.bsd.pjcloud.supermarket.vo.ad.SpuVo; import com.bsd.pjcloud.supermarket.vo.app.SupermarketAppSpuDetailsVo; import com.bsd.pjcloud.supermarket.vo.app.SupermarketAppUnitVo; import com.bsd.pjcloud.supermarket.vo.erp.SmErpAuxiliaryCodeVo; @@ -36,6 +37,7 @@ import com.bsd.pjcloud.wallet.api.vo.MchManageVo; import lombok.AllArgsConstructor; import org.apache.commons.collections4.CollectionUtils; import org.apache.commons.lang3.StringUtils; +import org.springdoc.core.annotations.ParameterObject; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Qualifier; import org.springframework.dao.DuplicateKeyException; @@ -378,11 +380,10 @@ public class SmErpSpuServiceImpl extends ServiceImpl list = baseMapper.selectListAllScope(supermarketSpuQueryDTO, DataScope.of()); - List bean = BeanUtils.toBean(list, SmErpSpuVo.class); - return bean; + Page list = baseMapper.selectListAllScope(page,supermarketSpuQueryDTO, DataScope.of()); + return list; } diff --git a/pjcloud-supermarket/pjcloud-supermarket-biz/src/main/resources/mapper/SmErpCgDdMapper.xml b/pjcloud-supermarket/pjcloud-supermarket-biz/src/main/resources/mapper/SmErpCgDdMapper.xml index 85d10bdf5..9cbf5659a 100644 --- a/pjcloud-supermarket/pjcloud-supermarket-biz/src/main/resources/mapper/SmErpCgDdMapper.xml +++ b/pjcloud-supermarket/pjcloud-supermarket-biz/src/main/resources/mapper/SmErpCgDdMapper.xml @@ -27,5 +27,7 @@ + + \ No newline at end of file diff --git a/pjcloud-supermarket/pjcloud-supermarket-biz/src/main/resources/mapper/SmErpSpuMapper.xml b/pjcloud-supermarket/pjcloud-supermarket-biz/src/main/resources/mapper/SmErpSpuMapper.xml index 1c2101632..0f91f0412 100644 --- a/pjcloud-supermarket/pjcloud-supermarket-biz/src/main/resources/mapper/SmErpSpuMapper.xml +++ b/pjcloud-supermarket/pjcloud-supermarket-biz/src/main/resources/mapper/SmErpSpuMapper.xml @@ -52,81 +52,48 @@ - - - id, - product_code, - barcode, - product_name, - unit, - introduction, - description, - category_id, - pic_url, - slider_pic_urls, - sort, - status, - cost_price, - stock, - give_integral, - merchant_id, - dept_id, - specification, - origin, - packing_quantity, - purchase_price, - retail_price, - member_price1, - member_price2, - member_price3, - wholesale_price1, - wholesale_price2, - wholesale_price3, - promotion_price, - product_nature, - archiver_signature, - inventory_area, - commission_rate, - joint_deduction_rate, - inventory_upper_limit, - inventory_lower_limit, - gross_margin, - auxiliary_barcode_id, - brand_id, - supplier_id, - create_by, - create_time, - update_by, - update_time, - del_flag, - tenant_id, - sales_count - - SELECT - - FROM supermarket_spu + es.id, + es.product_code, + es.product_name, + es.category_id, + es.pic_url, + es.product_nature, + es.create_time, + es.sales_count, + u.unit, + u.spec, + u.retail_price, + u.promotion_price, + st.current_stock as stock + FROM sm_erp_spu es + left join sm_erp_unit u + on es.id = u.spu_id and u.is_base=1 + left join sm_erp_stock st + on es.id = st.erp_spu_id + u.status = 0 and es.status = 0 - AND id = #{supermarketSpuQueryDTO.id} + AND es.id = #{supermarketSpuQueryDTO.id} - AND product_code = #{supermarketSpuQueryDTO.productCode} + AND es.product_code = #{supermarketSpuQueryDTO.productCode} - AND barcode = #{supermarketSpuQueryDTO.barcode} + AND es.barcode = #{supermarketSpuQueryDTO.barcode} - AND product_name LIKE CONCAT('%', #{supermarketSpuQueryDTO.productName}, '%') + AND es.product_name LIKE CONCAT('%', #{supermarketSpuQueryDTO.productName}, '%') - AND category_id = #{supermarketSpuQueryDTO.categoryId} + AND es.category_id = #{supermarketSpuQueryDTO.categoryId} - AND product_nature = #{supermarketSpuQueryDTO.productNature} + AND es.product_nature = #{supermarketSpuQueryDTO.productNature} - ORDER BY create_time DESC + ORDER BY es.sort DESC \ No newline at end of file