diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/xkt/StoreProductProcessController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/xkt/StoreProductProcessController.java index 715c1aa95..db0e614df 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/xkt/StoreProductProcessController.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/xkt/StoreProductProcessController.java @@ -1,8 +1,22 @@ package com.ruoyi.web.controller.xkt; +import cn.hutool.core.bean.BeanUtil; +import com.ruoyi.common.annotation.Log; import com.ruoyi.common.core.controller.XktBaseController; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RestController; +import com.ruoyi.common.core.domain.R; +import com.ruoyi.common.enums.BusinessType; +import com.ruoyi.web.controller.xkt.vo.storeProdProcess.StoreProdProcessResVO; +import com.ruoyi.web.controller.xkt.vo.storeProdProcess.StoreProdProcessUpdateVO; +import com.ruoyi.xkt.dto.storeProdProcess.StoreProdProcessUpdateDTO; +import com.ruoyi.xkt.service.IStoreProductProcessService; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import lombok.RequiredArgsConstructor; +import org.springframework.security.access.prepost.PreAuthorize; +import org.springframework.validation.annotation.Validated; +import org.springframework.web.bind.annotation.*; + +import java.io.IOException; /** * 档口商品工艺信息Controller @@ -12,6 +26,26 @@ import org.springframework.web.bind.annotation.RestController; */ @RestController @RequestMapping("/rest/v1/prod-processes") +@RequiredArgsConstructor +@Api(tags = "档口商品工艺") public class StoreProductProcessController extends XktBaseController { + final IStoreProductProcessService prodProcessService; + + @PreAuthorize("@ss.hasAnyRoles('admin,general_admin,store')||@ss.hasSupplierSubRole()") + @ApiOperation(value = "获取档口商品工艺详细信息", httpMethod = "GET", response = R.class) + @GetMapping(value = "/{storeProdId}") + public R getProcess(@PathVariable("storeProdId") Long storeProdId) { + return R.ok(BeanUtil.toBean(prodProcessService.getProcess(storeProdId), StoreProdProcessResVO.class)); + } + + @PreAuthorize("@ss.hasAnyRoles('admin,general_admin,store')||@ss.hasSupplierSubRole()") + @ApiOperation(value = "更新商品工艺信息", httpMethod = "PUT", response = R.class) + @Log(title = "更新商品工艺信息", businessType = BusinessType.UPDATE) + @PutMapping("/{storeProdId}") + public R update(@PathVariable Long storeProdId, @Validated @RequestBody StoreProdProcessUpdateVO processUpdateVO) throws IOException { + return R.ok(prodProcessService.update(storeProdId, BeanUtil.toBean(processUpdateVO, StoreProdProcessUpdateDTO.class))); + } + + } diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/xkt/vo/storeProd/StoreProdCreateVO.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/xkt/vo/storeProd/StoreProdCreateVO.java index eebb490b5..be0134f53 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/xkt/vo/storeProd/StoreProdCreateVO.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/xkt/vo/storeProd/StoreProdCreateVO.java @@ -196,7 +196,7 @@ public class StoreProdCreateVO { @ApiModelProperty(value = "颜色名称", required = true) private String colorName; @NotBlank(message = "内里材质不可为空!") - @ApiModelProperty(value = "内里材质" , required = true) + @ApiModelProperty(value = "内里材质", required = true) private String shoeUpperLiningMaterial; @ApiModelProperty(value = "商品尺码", required = true) @NotNull(message = "档口商品定价不能为空!") @@ -226,6 +226,10 @@ public class StoreProdCreateVO { @Data @ApiModel public static class StoreProdProcessVO { + @ApiModelProperty(value = "客户") + private String partnerName; + @ApiModelProperty(value = "商标") + private String trademark; @ApiModelProperty(value = "鞋型") private String shoeType; @ApiModelProperty(value = "楦号") diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/xkt/vo/storeProd/StoreProdResVO.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/xkt/vo/storeProd/StoreProdResVO.java index d060f32df..1e8c2c164 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/xkt/vo/storeProd/StoreProdResVO.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/xkt/vo/storeProd/StoreProdResVO.java @@ -166,6 +166,10 @@ public class StoreProdResVO { @Data public static class StoreProdProcessVO { + @ApiModelProperty(value = "客户") + private String partnerName; + @ApiModelProperty(value = "商标") + private String trademark; @ApiModelProperty(value = "鞋型") private String shoeType; @ApiModelProperty(value = "楦号") diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/xkt/vo/storeProdProcess/StoreProdProcessResVO.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/xkt/vo/storeProdProcess/StoreProdProcessResVO.java new file mode 100644 index 000000000..ec3acb8dd --- /dev/null +++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/xkt/vo/storeProdProcess/StoreProdProcessResVO.java @@ -0,0 +1,63 @@ +package com.ruoyi.web.controller.xkt.vo.storeProdProcess; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +/** + * @author liujiang + * @version v1.0 + * @date 2025/3/27 15:12 + */ +@Data +@ApiModel +public class StoreProdProcessResVO { + + @ApiModelProperty(value = "客户") + private String partnerName; + @ApiModelProperty(value = "商标") + private String trademark; + @ApiModelProperty(value = "鞋型") + private String shoeType; + @ApiModelProperty(value = "楦号") + private String shoeSize; + @ApiModelProperty(value = "主皮") + private String mainSkin; + @ApiModelProperty(value = "主皮用量") + private String mainSkinUsage; + @ApiModelProperty(value = "配皮") + private String matchSkin; + @ApiModelProperty(value = "配皮用量") + private String matchSkinUsage; + @ApiModelProperty(value = "领口") + private String neckline; + @ApiModelProperty(value = "膛底") + private String insole; + @ApiModelProperty(value = "扣件/拉头") + private String fastener; + @ApiModelProperty(value = "辅料") + private String shoeAccessories; + @ApiModelProperty(value = "包头") + private String toeCap; + @ApiModelProperty(value = "包边") + private String edgeBinding; + @ApiModelProperty(value = "中大底") + private String midOutsole; + @ApiModelProperty(value = "防水台") + private String platformSole; + @ApiModelProperty(value = "中底厂家编码") + private String midsoleFactoryCode; + @ApiModelProperty(value = "外底厂家编码") + private String outsoleFactoryCode; + @ApiModelProperty(value = "跟厂编码") + private String heelFactoryCode; + @ApiModelProperty(value = "配料") + private String components; + @ApiModelProperty(value = "第二底料") + private String secondSoleMaterial; + @ApiModelProperty(value = "第二配料") + private String secondUpperMaterial; + @ApiModelProperty(value = "自定义") + private String customAttr; + +} diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/xkt/vo/storeProdProcess/StoreProdProcessUpdateVO.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/xkt/vo/storeProdProcess/StoreProdProcessUpdateVO.java new file mode 100644 index 000000000..05ab3a72a --- /dev/null +++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/xkt/vo/storeProdProcess/StoreProdProcessUpdateVO.java @@ -0,0 +1,65 @@ +package com.ruoyi.web.controller.xkt.vo.storeProdProcess; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import javax.validation.constraints.NotNull; + +/** + * @author liujiang + * @version v1.0 + * @date 2025/3/27 15:12 + */ +@Data +@ApiModel +public class StoreProdProcessUpdateVO { + + @ApiModelProperty(value = "客户") + private String partnerName; + @ApiModelProperty(value = "商标") + private String trademark; + @ApiModelProperty(value = "鞋型") + private String shoeType; + @ApiModelProperty(value = "楦号") + private String shoeSize; + @ApiModelProperty(value = "主皮") + private String mainSkin; + @ApiModelProperty(value = "主皮用量") + private String mainSkinUsage; + @ApiModelProperty(value = "配皮") + private String matchSkin; + @ApiModelProperty(value = "配皮用量") + private String matchSkinUsage; + @ApiModelProperty(value = "领口") + private String neckline; + @ApiModelProperty(value = "膛底") + private String insole; + @ApiModelProperty(value = "扣件/拉头") + private String fastener; + @ApiModelProperty(value = "辅料") + private String shoeAccessories; + @ApiModelProperty(value = "包头") + private String toeCap; + @ApiModelProperty(value = "包边") + private String edgeBinding; + @ApiModelProperty(value = "中大底") + private String midOutsole; + @ApiModelProperty(value = "防水台") + private String platformSole; + @ApiModelProperty(value = "中底厂家编码") + private String midsoleFactoryCode; + @ApiModelProperty(value = "外底厂家编码") + private String outsoleFactoryCode; + @ApiModelProperty(value = "跟厂编码") + private String heelFactoryCode; + @ApiModelProperty(value = "配料") + private String components; + @ApiModelProperty(value = "第二底料") + private String secondSoleMaterial; + @ApiModelProperty(value = "第二配料") + private String secondUpperMaterial; + @ApiModelProperty(value = "自定义") + private String customAttr; + +} diff --git a/xkt/src/main/java/com/ruoyi/xkt/dto/storeProdProcess/StoreProdProcessDTO.java b/xkt/src/main/java/com/ruoyi/xkt/dto/storeProdProcess/StoreProdProcessDTO.java index ec849ccd3..a2c179a27 100644 --- a/xkt/src/main/java/com/ruoyi/xkt/dto/storeProdProcess/StoreProdProcessDTO.java +++ b/xkt/src/main/java/com/ruoyi/xkt/dto/storeProdProcess/StoreProdProcessDTO.java @@ -13,6 +13,10 @@ public class StoreProdProcessDTO { @ApiModelProperty(value = "档口商品ID") private Long storeProdId; + @ApiModelProperty(value = "客户") + private String partnerName; + @ApiModelProperty(value = "商标") + private String trademark; @ApiModelProperty(value = "鞋型") private String shoeType; @ApiModelProperty(value = "楦号") diff --git a/xkt/src/main/java/com/ruoyi/xkt/dto/storeProdProcess/StoreProdProcessUpdateDTO.java b/xkt/src/main/java/com/ruoyi/xkt/dto/storeProdProcess/StoreProdProcessUpdateDTO.java new file mode 100644 index 000000000..87fb9b8ec --- /dev/null +++ b/xkt/src/main/java/com/ruoyi/xkt/dto/storeProdProcess/StoreProdProcessUpdateDTO.java @@ -0,0 +1,63 @@ +package com.ruoyi.xkt.dto.storeProdProcess; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +/** + * @author liujiang + * @version v1.0 + * @date 2025/3/27 15:12 + */ +@Data +@ApiModel +public class StoreProdProcessUpdateDTO { + + @ApiModelProperty(value = "客户") + private String partnerName; + @ApiModelProperty(value = "商标") + private String trademark; + @ApiModelProperty(value = "鞋型") + private String shoeType; + @ApiModelProperty(value = "楦号") + private String shoeSize; + @ApiModelProperty(value = "主皮") + private String mainSkin; + @ApiModelProperty(value = "主皮用量") + private String mainSkinUsage; + @ApiModelProperty(value = "配皮") + private String matchSkin; + @ApiModelProperty(value = "配皮用量") + private String matchSkinUsage; + @ApiModelProperty(value = "领口") + private String neckline; + @ApiModelProperty(value = "膛底") + private String insole; + @ApiModelProperty(value = "扣件/拉头") + private String fastener; + @ApiModelProperty(value = "辅料") + private String shoeAccessories; + @ApiModelProperty(value = "包头") + private String toeCap; + @ApiModelProperty(value = "包边") + private String edgeBinding; + @ApiModelProperty(value = "中大底") + private String midOutsole; + @ApiModelProperty(value = "防水台") + private String platformSole; + @ApiModelProperty(value = "中底厂家编码") + private String midsoleFactoryCode; + @ApiModelProperty(value = "外底厂家编码") + private String outsoleFactoryCode; + @ApiModelProperty(value = "跟厂编码") + private String heelFactoryCode; + @ApiModelProperty(value = "配料") + private String components; + @ApiModelProperty(value = "第二底料") + private String secondSoleMaterial; + @ApiModelProperty(value = "第二配料") + private String secondUpperMaterial; + @ApiModelProperty(value = "自定义") + private String customAttr; + +} diff --git a/xkt/src/main/java/com/ruoyi/xkt/service/IStoreProductProcessService.java b/xkt/src/main/java/com/ruoyi/xkt/service/IStoreProductProcessService.java index 7d31f817f..4bdf28584 100644 --- a/xkt/src/main/java/com/ruoyi/xkt/service/IStoreProductProcessService.java +++ b/xkt/src/main/java/com/ruoyi/xkt/service/IStoreProductProcessService.java @@ -1,5 +1,8 @@ package com.ruoyi.xkt.service; +import com.ruoyi.xkt.dto.storeProdProcess.StoreProdProcessDTO; +import com.ruoyi.xkt.dto.storeProdProcess.StoreProdProcessUpdateDTO; + /** * 档口商品工艺信息Service接口 * @@ -8,4 +11,21 @@ package com.ruoyi.xkt.service; */ public interface IStoreProductProcessService { + /** + * 获取档口商品工艺信息 + * + * @param storeProdId 档口商品ID + * @return 档口商品工艺信息 + */ + StoreProdProcessDTO getProcess(Long storeProdId); + + /** + * 更新档口工艺 信息 + * + * @param storeProdId 档口商品ID + * @param updateDTO 更新入参 + * @return Integer + */ + Integer update(Long storeProdId, StoreProdProcessUpdateDTO updateDTO); + } diff --git a/xkt/src/main/java/com/ruoyi/xkt/service/impl/StoreProductProcessServiceImpl.java b/xkt/src/main/java/com/ruoyi/xkt/service/impl/StoreProductProcessServiceImpl.java index a7ab07e2a..bbd9de9db 100644 --- a/xkt/src/main/java/com/ruoyi/xkt/service/impl/StoreProductProcessServiceImpl.java +++ b/xkt/src/main/java/com/ruoyi/xkt/service/impl/StoreProductProcessServiceImpl.java @@ -1,7 +1,21 @@ package com.ruoyi.xkt.service.impl; +import cn.hutool.core.bean.BeanUtil; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.ruoyi.common.constant.Constants; +import com.ruoyi.common.constant.HttpStatus; +import com.ruoyi.common.exception.ServiceException; +import com.ruoyi.xkt.domain.StoreProductProcess; +import com.ruoyi.xkt.dto.storeProdProcess.StoreProdProcessDTO; +import com.ruoyi.xkt.dto.storeProdProcess.StoreProdProcessUpdateDTO; +import com.ruoyi.xkt.mapper.StoreProductProcessMapper; import com.ruoyi.xkt.service.IStoreProductProcessService; +import lombok.RequiredArgsConstructor; +import lombok.extern.slf4j.Slf4j; import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import java.util.Optional; /** * 档口商品工艺信息Service业务层处理 @@ -9,7 +23,44 @@ import org.springframework.stereotype.Service; * @author ruoyi * @date 2025-03-26 */ +@Slf4j @Service +@RequiredArgsConstructor public class StoreProductProcessServiceImpl implements IStoreProductProcessService { + final StoreProductProcessMapper prodProcessMapper; + + /** + * 获取档口商品工艺信息 + * + * @param storeProdId 档口商品ID + * @return 档口商品工艺信息 + */ + @Override + @Transactional(readOnly = true) + public StoreProdProcessDTO getProcess(Long storeProdId) { + StoreProductProcess process = Optional.ofNullable(this.prodProcessMapper.selectOne(new LambdaQueryWrapper() + .eq(StoreProductProcess::getStoreProdId, storeProdId).eq(StoreProductProcess::getDelFlag, Constants.UNDELETED))) + .orElseThrow(() -> new ServiceException("档口商品工艺不存在!", HttpStatus.ERROR)); + return BeanUtil.toBean(process, StoreProdProcessDTO.class); + } + + /** + * 更新档口工艺 信息 + * + * @param storeProdId 档口商品ID + * @param updateDTO 更新入参 + * @return Integer + */ + @Override + @Transactional + public Integer update(Long storeProdId, StoreProdProcessUpdateDTO updateDTO) { + StoreProductProcess process = Optional.ofNullable(this.prodProcessMapper.selectOne(new LambdaQueryWrapper() + .eq(StoreProductProcess::getStoreProdId, storeProdId).eq(StoreProductProcess::getDelFlag, Constants.UNDELETED))) + .orElseThrow(() -> new ServiceException("档口商品工艺不存在!", HttpStatus.ERROR)); + BeanUtil.copyProperties(updateDTO, process); + return this.prodProcessMapper.updateById(process); + } + + }