工人热更新(js),初版详情页
This commit is contained in:
@@ -0,0 +1,72 @@
|
||||
package com.gear.mat.controller;
|
||||
|
||||
import com.gear.common.core.domain.R;
|
||||
import com.gear.common.core.page.TableDataInfo;
|
||||
import com.gear.common.enums.BusinessType;
|
||||
import com.gear.common.annotation.Log;
|
||||
import com.gear.common.core.controller.BaseController;
|
||||
import com.gear.mat.domain.bo.MatProductAdditionBo;
|
||||
import com.gear.mat.domain.vo.MatProductAdditionVo;
|
||||
import com.gear.mat.service.IMatProductAdditionService;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 产品属性附加表Controller
|
||||
*
|
||||
* @author gear
|
||||
* @date 2026-04-22
|
||||
*/
|
||||
@RestController
|
||||
@RequestMapping("/api/mat/productAddition")
|
||||
public class MatProductAdditionController extends BaseController {
|
||||
|
||||
@Autowired
|
||||
private IMatProductAdditionService productAdditionService;
|
||||
|
||||
/**
|
||||
* 查询产品属性附加表列表
|
||||
*
|
||||
* @param productAdditionBo 产品属性附加表业务对象
|
||||
* @return 产品属性附加表列表
|
||||
*/
|
||||
@GetMapping("/list")
|
||||
public TableDataInfo list(MatProductAdditionBo productAdditionBo) {
|
||||
List<MatProductAdditionVo> list = productAdditionService.listProductAddition(productAdditionBo);
|
||||
return TableDataInfo.build(list);
|
||||
}
|
||||
|
||||
/**
|
||||
* 新增产品属性附加表
|
||||
*/
|
||||
@Log(title = "产品属性附加表", businessType = BusinessType.INSERT)
|
||||
@PostMapping
|
||||
public R<Boolean> add(@RequestBody MatProductAdditionBo productAdditionBo) {
|
||||
boolean result = productAdditionService.addProductAddition(productAdditionBo);
|
||||
return R.ok(result);
|
||||
}
|
||||
|
||||
/**
|
||||
* 修改产品属性附加表
|
||||
*/
|
||||
@Log(title = "产品属性附加表", businessType = BusinessType.UPDATE)
|
||||
@PutMapping
|
||||
public R<Boolean> update(@RequestBody MatProductAdditionBo productAdditionBo) {
|
||||
boolean result = productAdditionService.updateProductAddition(productAdditionBo);
|
||||
return R.ok(result);
|
||||
}
|
||||
|
||||
/**
|
||||
* 删除产品属性附加表
|
||||
*
|
||||
* @param addId 主键ID
|
||||
* @return 删除结果
|
||||
*/
|
||||
@Log(title = "产品属性附加表", businessType = BusinessType.DELETE)
|
||||
@DeleteMapping("/{addId}")
|
||||
public R<Boolean> del(@PathVariable Long addId) {
|
||||
boolean result = productAdditionService.delProductAddition(addId);
|
||||
return R.ok(result);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,49 @@
|
||||
package com.gear.mat.controller;
|
||||
|
||||
import com.gear.common.annotation.Log;
|
||||
import com.gear.common.core.controller.BaseController;
|
||||
import com.gear.common.core.domain.R;
|
||||
import com.gear.common.core.page.TableDataInfo;
|
||||
import com.gear.common.enums.BusinessType;
|
||||
import com.gear.mat.domain.bo.MatProductLaborBo;
|
||||
import com.gear.mat.domain.vo.MatProductLaborVo;
|
||||
import com.gear.mat.service.IMatProductLaborService;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
@RestController
|
||||
@RequestMapping("/api/mat/productLabor")
|
||||
public class MatProductLaborController extends BaseController {
|
||||
|
||||
@Autowired
|
||||
private IMatProductLaborService productLaborService;
|
||||
|
||||
@GetMapping("/list")
|
||||
public TableDataInfo list(MatProductLaborBo productLaborBo) {
|
||||
List<MatProductLaborVo> list = productLaborService.listProductLabor(productLaborBo);
|
||||
return TableDataInfo.build(list);
|
||||
}
|
||||
|
||||
@Log(title = "产品手动工价", businessType = BusinessType.INSERT)
|
||||
@PostMapping
|
||||
public R<Boolean> add(@RequestBody MatProductLaborBo productLaborBo) {
|
||||
boolean result = productLaborService.addProductLabor(productLaborBo);
|
||||
return R.ok(result);
|
||||
}
|
||||
|
||||
@Log(title = "产品手动工价", businessType = BusinessType.UPDATE)
|
||||
@PutMapping
|
||||
public R<Boolean> update(@RequestBody MatProductLaborBo productLaborBo) {
|
||||
boolean result = productLaborService.updateProductLabor(productLaborBo);
|
||||
return R.ok(result);
|
||||
}
|
||||
|
||||
@Log(title = "产品手动工价", businessType = BusinessType.DELETE)
|
||||
@DeleteMapping("/{laborId}")
|
||||
public R<Boolean> del(@PathVariable Long laborId) {
|
||||
boolean result = productLaborService.delProductLabor(laborId);
|
||||
return R.ok(result);
|
||||
}
|
||||
}
|
||||
@@ -59,4 +59,9 @@ public class MatProduct extends BaseEntity {
|
||||
*/
|
||||
private String productImages;
|
||||
|
||||
/**
|
||||
* 产品说明书,多个PDF以逗号分隔
|
||||
*/
|
||||
private String productPdfs;
|
||||
|
||||
}
|
||||
|
||||
@@ -0,0 +1,35 @@
|
||||
package com.gear.mat.domain;
|
||||
|
||||
import com.baomidou.mybatisplus.annotation.*;
|
||||
import com.gear.common.core.domain.BaseEntity;
|
||||
import lombok.Data;
|
||||
|
||||
/**
|
||||
* 产品属性附加表
|
||||
*
|
||||
* @author gear
|
||||
* @date 2026-04-22
|
||||
*/
|
||||
@Data
|
||||
@TableName("gear_product_addition")
|
||||
public class MatProductAddition extends BaseEntity {
|
||||
/** 主键ID */
|
||||
@TableId(type = IdType.AUTO)
|
||||
private Long addId;
|
||||
|
||||
/** 属性名 */
|
||||
private String attrName;
|
||||
|
||||
/** 属性值 */
|
||||
private String attrValue;
|
||||
|
||||
/** 产品ID */
|
||||
private Long productId;
|
||||
|
||||
/** 备注 */
|
||||
private String remark;
|
||||
|
||||
/** 删除标识 0-未删除 1-已删除 */
|
||||
@TableLogic
|
||||
private Integer delFlag;
|
||||
}
|
||||
@@ -0,0 +1,27 @@
|
||||
package com.gear.mat.domain;
|
||||
|
||||
import com.baomidou.mybatisplus.annotation.IdType;
|
||||
import com.baomidou.mybatisplus.annotation.TableId;
|
||||
import com.baomidou.mybatisplus.annotation.TableLogic;
|
||||
import com.baomidou.mybatisplus.annotation.TableName;
|
||||
import com.gear.common.core.domain.BaseEntity;
|
||||
import lombok.Data;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
|
||||
@Data
|
||||
@TableName("gear_product_labor")
|
||||
public class MatProductLabor extends BaseEntity {
|
||||
|
||||
@TableId(type = IdType.AUTO)
|
||||
private Long laborId;
|
||||
|
||||
private Long productId;
|
||||
|
||||
private String laborName;
|
||||
|
||||
private BigDecimal laborPrice;
|
||||
|
||||
@TableLogic
|
||||
private Integer delFlag;
|
||||
}
|
||||
@@ -0,0 +1,31 @@
|
||||
package com.gear.mat.domain.bo;
|
||||
|
||||
import com.baomidou.mybatisplus.annotation.IdType;
|
||||
import com.baomidou.mybatisplus.annotation.TableId;
|
||||
import com.baomidou.mybatisplus.annotation.TableName;
|
||||
import lombok.Data;
|
||||
import java.util.Date;
|
||||
|
||||
/**
|
||||
* 产品属性附加表业务对象
|
||||
*
|
||||
* @author gear
|
||||
* @date 2026-04-22
|
||||
*/
|
||||
@Data
|
||||
public class MatProductAdditionBo {
|
||||
/** 主键ID */
|
||||
private Long addId;
|
||||
|
||||
/** 属性名 */
|
||||
private String attrName;
|
||||
|
||||
/** 属性值 */
|
||||
private String attrValue;
|
||||
|
||||
/** 产品ID */
|
||||
private Long productId;
|
||||
|
||||
/** 备注 */
|
||||
private String remark;
|
||||
}
|
||||
@@ -57,5 +57,9 @@ public class MatProductBo extends BaseEntity {
|
||||
*/
|
||||
private String productImages;
|
||||
|
||||
/**
|
||||
* 产品说明书,多个PDF以逗号分隔
|
||||
*/
|
||||
private String productPdfs;
|
||||
|
||||
}
|
||||
|
||||
@@ -0,0 +1,19 @@
|
||||
package com.gear.mat.domain.bo;
|
||||
|
||||
import lombok.Data;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
|
||||
@Data
|
||||
public class MatProductLaborBo {
|
||||
|
||||
private Long laborId;
|
||||
|
||||
private Long productId;
|
||||
|
||||
private String laborName;
|
||||
|
||||
private BigDecimal laborPrice;
|
||||
|
||||
private String remark;
|
||||
}
|
||||
@@ -0,0 +1,40 @@
|
||||
package com.gear.mat.domain.vo;
|
||||
|
||||
import lombok.Data;
|
||||
import java.util.Date;
|
||||
|
||||
/**
|
||||
* 产品属性附加表视图对象
|
||||
*
|
||||
* @author gear
|
||||
* @date 2026-04-22
|
||||
*/
|
||||
@Data
|
||||
public class MatProductAdditionVo {
|
||||
/** 主键ID */
|
||||
private Long addId;
|
||||
|
||||
/** 属性名 */
|
||||
private String attrName;
|
||||
|
||||
/** 属性值 */
|
||||
private String attrValue;
|
||||
|
||||
/** 产品ID */
|
||||
private Long productId;
|
||||
|
||||
/** 创建时间 */
|
||||
private Date createTime;
|
||||
|
||||
/** 创建人 */
|
||||
private String createBy;
|
||||
|
||||
/** 更新时间 */
|
||||
private Date updateTime;
|
||||
|
||||
/** 更新人 */
|
||||
private String updateBy;
|
||||
|
||||
/** 备注 */
|
||||
private String remark;
|
||||
}
|
||||
@@ -0,0 +1,28 @@
|
||||
package com.gear.mat.domain.vo;
|
||||
|
||||
import lombok.Data;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
import java.util.Date;
|
||||
|
||||
@Data
|
||||
public class MatProductLaborVo {
|
||||
|
||||
private Long laborId;
|
||||
|
||||
private Long productId;
|
||||
|
||||
private String laborName;
|
||||
|
||||
private BigDecimal laborPrice;
|
||||
|
||||
private Date createTime;
|
||||
|
||||
private String createBy;
|
||||
|
||||
private Date updateTime;
|
||||
|
||||
private String updateBy;
|
||||
|
||||
private String remark;
|
||||
}
|
||||
@@ -64,5 +64,11 @@ public class MatProductVo {
|
||||
@ExcelProperty(value = "产品图片")
|
||||
private String productImages;
|
||||
|
||||
/**
|
||||
* 产品说明书,多个PDF以逗号分隔
|
||||
*/
|
||||
@ExcelProperty(value = "产品说明书")
|
||||
private String productPdfs;
|
||||
|
||||
|
||||
}
|
||||
|
||||
@@ -63,6 +63,12 @@ public class MatProductWithMaterialsVo {
|
||||
@ExcelProperty(value = "产品图片")
|
||||
private String productImages;
|
||||
|
||||
/**
|
||||
* 产品PDF文件,多个PDF以逗号分隔
|
||||
*/
|
||||
@ExcelProperty(value = "产品PDF文件")
|
||||
private String productPdfs;
|
||||
|
||||
/**
|
||||
* 关联的配料信息列表
|
||||
*/
|
||||
|
||||
@@ -0,0 +1,15 @@
|
||||
package com.gear.mat.mapper;
|
||||
|
||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||
import com.gear.mat.domain.MatProductAddition;
|
||||
import org.apache.ibatis.annotations.Mapper;
|
||||
|
||||
/**
|
||||
* 产品属性附加表Mapper接口
|
||||
*
|
||||
* @author gear
|
||||
* @date 2026-04-22
|
||||
*/
|
||||
@Mapper
|
||||
public interface MatProductAdditionMapper extends BaseMapper<MatProductAddition> {
|
||||
}
|
||||
@@ -0,0 +1,9 @@
|
||||
package com.gear.mat.mapper;
|
||||
|
||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||
import com.gear.mat.domain.MatProductLabor;
|
||||
import org.apache.ibatis.annotations.Mapper;
|
||||
|
||||
@Mapper
|
||||
public interface MatProductLaborMapper extends BaseMapper<MatProductLabor> {
|
||||
}
|
||||
@@ -0,0 +1,47 @@
|
||||
package com.gear.mat.service;
|
||||
|
||||
import com.baomidou.mybatisplus.extension.service.IService;
|
||||
import com.gear.mat.domain.MatProductAddition;
|
||||
import com.gear.mat.domain.bo.MatProductAdditionBo;
|
||||
import com.gear.mat.domain.vo.MatProductAdditionVo;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 产品属性附加表Service接口
|
||||
*
|
||||
* @author gear
|
||||
* @date 2026-04-22
|
||||
*/
|
||||
public interface IMatProductAdditionService extends IService<MatProductAddition> {
|
||||
/**
|
||||
* 查询产品属性附加表列表
|
||||
*
|
||||
* @param productAdditionBo 产品属性附加表业务对象
|
||||
* @return 产品属性附加表列表
|
||||
*/
|
||||
List<MatProductAdditionVo> listProductAddition(MatProductAdditionBo productAdditionBo);
|
||||
|
||||
/**
|
||||
* 新增产品属性附加表
|
||||
*
|
||||
* @param productAdditionBo 产品属性附加表业务对象
|
||||
* @return 新增结果
|
||||
*/
|
||||
boolean addProductAddition(MatProductAdditionBo productAdditionBo);
|
||||
|
||||
/**
|
||||
* 修改产品属性附加表
|
||||
*
|
||||
* @param productAdditionBo 产品属性附加表业务对象
|
||||
* @return 修改结果
|
||||
*/
|
||||
boolean updateProductAddition(MatProductAdditionBo productAdditionBo);
|
||||
|
||||
/**
|
||||
* 删除产品属性附加表
|
||||
*
|
||||
* @param addId 主键ID
|
||||
* @return 删除结果
|
||||
*/
|
||||
boolean delProductAddition(Long addId);
|
||||
}
|
||||
@@ -0,0 +1,19 @@
|
||||
package com.gear.mat.service;
|
||||
|
||||
import com.baomidou.mybatisplus.extension.service.IService;
|
||||
import com.gear.mat.domain.MatProductLabor;
|
||||
import com.gear.mat.domain.bo.MatProductLaborBo;
|
||||
import com.gear.mat.domain.vo.MatProductLaborVo;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
public interface IMatProductLaborService extends IService<MatProductLabor> {
|
||||
|
||||
List<MatProductLaborVo> listProductLabor(MatProductLaborBo productLaborBo);
|
||||
|
||||
boolean addProductLabor(MatProductLaborBo productLaborBo);
|
||||
|
||||
boolean updateProductLabor(MatProductLaborBo productLaborBo);
|
||||
|
||||
boolean delProductLabor(Long laborId);
|
||||
}
|
||||
@@ -0,0 +1,54 @@
|
||||
package com.gear.mat.service.impl;
|
||||
|
||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||
import com.gear.mat.domain.MatProductAddition;
|
||||
import com.gear.mat.domain.bo.MatProductAdditionBo;
|
||||
import com.gear.mat.domain.vo.MatProductAdditionVo;
|
||||
import com.gear.mat.mapper.MatProductAdditionMapper;
|
||||
import com.gear.mat.service.IMatProductAdditionService;
|
||||
import com.gear.common.utils.BeanCopyUtils;
|
||||
import org.springframework.stereotype.Service;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 产品属性附加表Service实现类
|
||||
*
|
||||
* @author gear
|
||||
* @date 2026-04-22
|
||||
*/
|
||||
@Service
|
||||
public class MatProductAdditionServiceImpl extends ServiceImpl<MatProductAdditionMapper, MatProductAddition> implements IMatProductAdditionService {
|
||||
|
||||
@Override
|
||||
public List<MatProductAdditionVo> listProductAddition(MatProductAdditionBo productAdditionBo) {
|
||||
LambdaQueryWrapper<MatProductAddition> queryWrapper = new LambdaQueryWrapper<>();
|
||||
if (productAdditionBo.getProductId() != null) {
|
||||
queryWrapper.eq(MatProductAddition::getProductId, productAdditionBo.getProductId());
|
||||
}
|
||||
if (productAdditionBo.getAttrName() != null) {
|
||||
queryWrapper.eq(MatProductAddition::getAttrName, productAdditionBo.getAttrName());
|
||||
}
|
||||
queryWrapper.eq(MatProductAddition::getDelFlag, 0);
|
||||
|
||||
List<MatProductAddition> list = baseMapper.selectList(queryWrapper);
|
||||
return BeanCopyUtils.copyList(list, MatProductAdditionVo.class);
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean addProductAddition(MatProductAdditionBo productAdditionBo) {
|
||||
MatProductAddition productAddition = BeanCopyUtils.copy(productAdditionBo, MatProductAddition.class);
|
||||
return save(productAddition);
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean updateProductAddition(MatProductAdditionBo productAdditionBo) {
|
||||
MatProductAddition productAddition = BeanCopyUtils.copy(productAdditionBo, MatProductAddition.class);
|
||||
return updateById(productAddition);
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean delProductAddition(Long addId) {
|
||||
return removeById(addId);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,45 @@
|
||||
package com.gear.mat.service.impl;
|
||||
|
||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||
import com.gear.common.utils.BeanCopyUtils;
|
||||
import com.gear.mat.domain.MatProductLabor;
|
||||
import com.gear.mat.domain.bo.MatProductLaborBo;
|
||||
import com.gear.mat.domain.vo.MatProductLaborVo;
|
||||
import com.gear.mat.mapper.MatProductLaborMapper;
|
||||
import com.gear.mat.service.IMatProductLaborService;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
@Service
|
||||
public class MatProductLaborServiceImpl extends ServiceImpl<MatProductLaborMapper, MatProductLabor> implements IMatProductLaborService {
|
||||
|
||||
@Override
|
||||
public List<MatProductLaborVo> listProductLabor(MatProductLaborBo productLaborBo) {
|
||||
LambdaQueryWrapper<MatProductLabor> queryWrapper = new LambdaQueryWrapper<>();
|
||||
if (productLaborBo.getProductId() != null) {
|
||||
queryWrapper.eq(MatProductLabor::getProductId, productLaborBo.getProductId());
|
||||
}
|
||||
queryWrapper.eq(MatProductLabor::getDelFlag, 0);
|
||||
List<MatProductLabor> list = baseMapper.selectList(queryWrapper);
|
||||
return BeanCopyUtils.copyList(list, MatProductLaborVo.class);
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean addProductLabor(MatProductLaborBo productLaborBo) {
|
||||
MatProductLabor labor = BeanCopyUtils.copy(productLaborBo, MatProductLabor.class);
|
||||
return save(labor);
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean updateProductLabor(MatProductLaborBo productLaborBo) {
|
||||
MatProductLabor labor = BeanCopyUtils.copy(productLaborBo, MatProductLabor.class);
|
||||
return updateById(labor);
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean delProductLabor(Long laborId) {
|
||||
return removeById(laborId);
|
||||
}
|
||||
}
|
||||
@@ -112,7 +112,8 @@ public class MatProductServiceImpl implements IMatProductService {
|
||||
productWithMaterialsVo.setModel(productVo.getModel());
|
||||
productWithMaterialsVo.setUnitPrice(productVo.getUnitPrice());
|
||||
productWithMaterialsVo.setRemark(productVo.getRemark());
|
||||
// productWithMaterialsVo.setProductImages(productVo.getProductImages());
|
||||
productWithMaterialsVo.setProductImages(productVo.getProductImages());
|
||||
productWithMaterialsVo.setProductPdfs(productVo.getProductPdfs());
|
||||
|
||||
// 查询并设置关联的配料信息
|
||||
List<MatProductMaterialRelationVo> relations = productMaterialRelationService.queryList(
|
||||
@@ -169,7 +170,9 @@ public class MatProductServiceImpl implements IMatProductService {
|
||||
*/
|
||||
@Override
|
||||
public Boolean insertByBo(MatProductBo bo) {
|
||||
System.out.println("插入产品,productPdfs: " + bo.getProductPdfs());
|
||||
MatProduct add = BeanUtil.toBean(bo, MatProduct.class);
|
||||
System.out.println("转换后,productPdfs: " + add.getProductPdfs());
|
||||
validEntityBeforeSave(add);
|
||||
boolean flag = baseMapper.insert(add) > 0;
|
||||
if (flag) {
|
||||
@@ -183,7 +186,9 @@ public class MatProductServiceImpl implements IMatProductService {
|
||||
*/
|
||||
@Override
|
||||
public Boolean updateByBo(MatProductBo bo) {
|
||||
System.out.println("修改产品,productPdfs: " + bo.getProductPdfs());
|
||||
MatProduct update = BeanUtil.toBean(bo, MatProduct.class);
|
||||
System.out.println("转换后,productPdfs: " + update.getProductPdfs());
|
||||
validEntityBeforeSave(update);
|
||||
return baseMapper.updateById(update) > 0;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user