parent
4600e717c4
commit
b5ba452cf9
@ -0,0 +1,104 @@ |
||||
package com.jianshui.web.controller.platform; |
||||
|
||||
import java.util.List; |
||||
import javax.servlet.http.HttpServletResponse; |
||||
import org.springframework.security.access.prepost.PreAuthorize; |
||||
import org.springframework.beans.factory.annotation.Autowired; |
||||
import org.springframework.web.bind.annotation.GetMapping; |
||||
import org.springframework.web.bind.annotation.PostMapping; |
||||
import org.springframework.web.bind.annotation.PutMapping; |
||||
import org.springframework.web.bind.annotation.DeleteMapping; |
||||
import org.springframework.web.bind.annotation.PathVariable; |
||||
import org.springframework.web.bind.annotation.RequestBody; |
||||
import org.springframework.web.bind.annotation.RequestMapping; |
||||
import org.springframework.web.bind.annotation.RestController; |
||||
import com.jianshui.common.annotation.Log; |
||||
import com.jianshui.common.core.controller.BaseController; |
||||
import com.jianshui.common.core.domain.AjaxResult; |
||||
import com.jianshui.common.enums.BusinessType; |
||||
import com.jianshui.platform.domain.ProductInfo; |
||||
import com.jianshui.platform.service.IProductInfoService; |
||||
import com.jianshui.common.utils.poi.ExcelUtil; |
||||
import com.jianshui.common.core.page.TableDataInfo; |
||||
|
||||
/** |
||||
* 商品信息Controller |
||||
* |
||||
* @author kk |
||||
* @date 2023-06-27 |
||||
*/ |
||||
@RestController |
||||
@RequestMapping("/platform/product_info") |
||||
public class ProductInfoController extends BaseController |
||||
{ |
||||
@Autowired |
||||
private IProductInfoService productInfoService; |
||||
|
||||
/** |
||||
* 查询商品信息列表 |
||||
*/ |
||||
@PreAuthorize("@ss.hasPermi('platform:product_info:list')") |
||||
@GetMapping("/list") |
||||
public TableDataInfo list(ProductInfo productInfo) |
||||
{ |
||||
startPage(); |
||||
List<ProductInfo> list = productInfoService.selectProductInfoList(productInfo); |
||||
return getDataTable(list); |
||||
} |
||||
|
||||
/** |
||||
* 导出商品信息列表 |
||||
*/ |
||||
@PreAuthorize("@ss.hasPermi('platform:product_info:export')") |
||||
@Log(title = "商品信息", businessType = BusinessType.EXPORT) |
||||
@PostMapping("/export") |
||||
public void export(HttpServletResponse response, ProductInfo productInfo) |
||||
{ |
||||
List<ProductInfo> list = productInfoService.selectProductInfoList(productInfo); |
||||
ExcelUtil<ProductInfo> util = new ExcelUtil<ProductInfo>(ProductInfo.class); |
||||
util.exportExcel(response, list, "商品信息数据"); |
||||
} |
||||
|
||||
/** |
||||
* 获取商品信息详细信息 |
||||
*/ |
||||
@PreAuthorize("@ss.hasPermi('platform:product_info:query')") |
||||
@GetMapping(value = "/{id}") |
||||
public AjaxResult getInfo(@PathVariable("id") Long id) |
||||
{ |
||||
return AjaxResult.success(productInfoService.selectProductInfoById(id)); |
||||
} |
||||
|
||||
/** |
||||
* 新增商品信息 |
||||
*/ |
||||
@PreAuthorize("@ss.hasPermi('platform:product_info:add')") |
||||
@Log(title = "商品信息", businessType = BusinessType.INSERT) |
||||
@PostMapping |
||||
public AjaxResult add(@RequestBody ProductInfo productInfo) |
||||
{ |
||||
return toAjax(productInfoService.insertProductInfo(productInfo)); |
||||
} |
||||
|
||||
/** |
||||
* 修改商品信息 |
||||
*/ |
||||
@PreAuthorize("@ss.hasPermi('platform:product_info:edit')") |
||||
@Log(title = "商品信息", businessType = BusinessType.UPDATE) |
||||
@PutMapping |
||||
public AjaxResult edit(@RequestBody ProductInfo productInfo) |
||||
{ |
||||
return toAjax(productInfoService.updateProductInfo(productInfo)); |
||||
} |
||||
|
||||
/** |
||||
* 删除商品信息 |
||||
*/ |
||||
@PreAuthorize("@ss.hasPermi('platform:product_info:remove')") |
||||
@Log(title = "商品信息", businessType = BusinessType.DELETE) |
||||
@DeleteMapping("/{ids}") |
||||
public AjaxResult remove(@PathVariable Long[] ids) |
||||
{ |
||||
return toAjax(productInfoService.deleteProductInfoByIds(ids)); |
||||
} |
||||
} |
@ -0,0 +1,225 @@ |
||||
package com.jianshui.platform.domain; |
||||
|
||||
import java.math.BigDecimal; |
||||
import com.jianshui.common.annotation.Excel; |
||||
import com.jianshui.common.core.domain.BaseEntity; |
||||
import net.logstash.logback.encoder.org.apache.commons.lang3.builder.ToStringBuilder; |
||||
import net.logstash.logback.encoder.org.apache.commons.lang3.builder.ToStringStyle; |
||||
|
||||
/** |
||||
* 商品信息对象 product_info |
||||
* |
||||
* @author kk |
||||
* @date 2023-06-27 |
||||
*/ |
||||
public class ProductInfo extends BaseEntity |
||||
{ |
||||
private static final long serialVersionUID = 1L; |
||||
|
||||
/** 主键 */ |
||||
private Long id; |
||||
|
||||
/** 商品编码 */ |
||||
@Excel(name = "商品编码") |
||||
private String productCode; |
||||
|
||||
/** 商品名称 */ |
||||
@Excel(name = "商品名称") |
||||
private String productName; |
||||
|
||||
/** 税率 */ |
||||
@Excel(name = "税率") |
||||
private BigDecimal taxRate; |
||||
|
||||
/** 单价 */ |
||||
@Excel(name = "单价") |
||||
private BigDecimal unitPrice; |
||||
|
||||
/** 规格型号 */ |
||||
@Excel(name = "规格型号") |
||||
private String specification; |
||||
|
||||
/** 计量单位 */ |
||||
@Excel(name = "计量单位") |
||||
private String unitOfMeasurement; |
||||
|
||||
/** 税收分类编码 */ |
||||
@Excel(name = "税收分类编码") |
||||
private String taxCategoryCode; |
||||
|
||||
/** 税收分类编码Id */ |
||||
@Excel(name = "税收分类编码Id") |
||||
private Long taxCategoryCodeId; |
||||
|
||||
/** 税收分类编码简称 */ |
||||
@Excel(name = "税收分类编码简称") |
||||
private String taxCategoryAbbreviation; |
||||
|
||||
/** 是否享受优惠政策 */ |
||||
@Excel(name = "是否享受优惠政策") |
||||
private String isQualifiedForDiscount; |
||||
|
||||
/** 优惠政策类型 */ |
||||
@Excel(name = "优惠政策类型") |
||||
private String discountPolicyType; |
||||
|
||||
/** 零税率标识 */ |
||||
@Excel(name = "零税率标识") |
||||
private String zeroTaxRateIndicator; |
||||
|
||||
/** 状态 */ |
||||
@Excel(name = "状态") |
||||
private String status; |
||||
|
||||
public void setId(Long id) |
||||
{ |
||||
this.id = id; |
||||
} |
||||
|
||||
public Long getId() |
||||
{ |
||||
return id; |
||||
} |
||||
public void setProductCode(String productCode) |
||||
{ |
||||
this.productCode = productCode; |
||||
} |
||||
|
||||
public String getProductCode() |
||||
{ |
||||
return productCode; |
||||
} |
||||
public void setProductName(String productName) |
||||
{ |
||||
this.productName = productName; |
||||
} |
||||
|
||||
public String getProductName() |
||||
{ |
||||
return productName; |
||||
} |
||||
public void setTaxRate(BigDecimal taxRate) |
||||
{ |
||||
this.taxRate = taxRate; |
||||
} |
||||
|
||||
public BigDecimal getTaxRate() |
||||
{ |
||||
return taxRate; |
||||
} |
||||
public void setUnitPrice(BigDecimal unitPrice) |
||||
{ |
||||
this.unitPrice = unitPrice; |
||||
} |
||||
|
||||
public BigDecimal getUnitPrice() |
||||
{ |
||||
return unitPrice; |
||||
} |
||||
public void setSpecification(String specification) |
||||
{ |
||||
this.specification = specification; |
||||
} |
||||
|
||||
public String getSpecification() |
||||
{ |
||||
return specification; |
||||
} |
||||
public void setUnitOfMeasurement(String unitOfMeasurement) |
||||
{ |
||||
this.unitOfMeasurement = unitOfMeasurement; |
||||
} |
||||
|
||||
public String getUnitOfMeasurement() |
||||
{ |
||||
return unitOfMeasurement; |
||||
} |
||||
public void setTaxCategoryCode(String taxCategoryCode) |
||||
{ |
||||
this.taxCategoryCode = taxCategoryCode; |
||||
} |
||||
|
||||
public String getTaxCategoryCode() |
||||
{ |
||||
return taxCategoryCode; |
||||
} |
||||
public void setTaxCategoryCodeId(Long taxCategoryCodeId) |
||||
{ |
||||
this.taxCategoryCodeId = taxCategoryCodeId; |
||||
} |
||||
|
||||
public Long getTaxCategoryCodeId() |
||||
{ |
||||
return taxCategoryCodeId; |
||||
} |
||||
public void setTaxCategoryAbbreviation(String taxCategoryAbbreviation) |
||||
{ |
||||
this.taxCategoryAbbreviation = taxCategoryAbbreviation; |
||||
} |
||||
|
||||
public String getTaxCategoryAbbreviation() |
||||
{ |
||||
return taxCategoryAbbreviation; |
||||
} |
||||
public void setIsQualifiedForDiscount(String isQualifiedForDiscount) |
||||
{ |
||||
this.isQualifiedForDiscount = isQualifiedForDiscount; |
||||
} |
||||
|
||||
public String getIsQualifiedForDiscount() |
||||
{ |
||||
return isQualifiedForDiscount; |
||||
} |
||||
public void setDiscountPolicyType(String discountPolicyType) |
||||
{ |
||||
this.discountPolicyType = discountPolicyType; |
||||
} |
||||
|
||||
public String getDiscountPolicyType() |
||||
{ |
||||
return discountPolicyType; |
||||
} |
||||
public void setZeroTaxRateIndicator(String zeroTaxRateIndicator) |
||||
{ |
||||
this.zeroTaxRateIndicator = zeroTaxRateIndicator; |
||||
} |
||||
|
||||
public String getZeroTaxRateIndicator() |
||||
{ |
||||
return zeroTaxRateIndicator; |
||||
} |
||||
public void setStatus(String status) |
||||
{ |
||||
this.status = status; |
||||
} |
||||
|
||||
public String getStatus() |
||||
{ |
||||
return status; |
||||
} |
||||
|
||||
@Override |
||||
public String toString() { |
||||
return new ToStringBuilder(this, ToStringStyle.MULTI_LINE_STYLE) |
||||
.append("id", getId()) |
||||
.append("productCode", getProductCode()) |
||||
.append("productName", getProductName()) |
||||
.append("taxRate", getTaxRate()) |
||||
.append("unitPrice", getUnitPrice()) |
||||
.append("specification", getSpecification()) |
||||
.append("unitOfMeasurement", getUnitOfMeasurement()) |
||||
.append("taxCategoryCode", getTaxCategoryCode()) |
||||
.append("taxCategoryCodeId", getTaxCategoryCodeId()) |
||||
.append("taxCategoryAbbreviation", getTaxCategoryAbbreviation()) |
||||
.append("isQualifiedForDiscount", getIsQualifiedForDiscount()) |
||||
.append("discountPolicyType", getDiscountPolicyType()) |
||||
.append("zeroTaxRateIndicator", getZeroTaxRateIndicator()) |
||||
.append("status", getStatus()) |
||||
.append("createBy", getCreateBy()) |
||||
.append("createTime", getCreateTime()) |
||||
.append("updateBy", getUpdateBy()) |
||||
.append("updateTime", getUpdateTime()) |
||||
.append("remark", getRemark()) |
||||
.toString(); |
||||
} |
||||
} |
@ -0,0 +1,61 @@ |
||||
package com.jianshui.platform.mapper; |
||||
|
||||
import java.util.List; |
||||
import com.jianshui.platform.domain.ProductInfo; |
||||
|
||||
/** |
||||
* 商品信息Mapper接口 |
||||
* |
||||
* @author kk |
||||
* @date 2023-06-27 |
||||
*/ |
||||
public interface ProductInfoMapper |
||||
{ |
||||
/** |
||||
* 查询商品信息 |
||||
* |
||||
* @param id 商品信息主键 |
||||
* @return 商品信息 |
||||
*/ |
||||
public ProductInfo selectProductInfoById(Long id); |
||||
|
||||
/** |
||||
* 查询商品信息列表 |
||||
* |
||||
* @param productInfo 商品信息 |
||||
* @return 商品信息集合 |
||||
*/ |
||||
public List<ProductInfo> selectProductInfoList(ProductInfo productInfo); |
||||
|
||||
/** |
||||
* 新增商品信息 |
||||
* |
||||
* @param productInfo 商品信息 |
||||
* @return 结果 |
||||
*/ |
||||
public int insertProductInfo(ProductInfo productInfo); |
||||
|
||||
/** |
||||
* 修改商品信息 |
||||
* |
||||
* @param productInfo 商品信息 |
||||
* @return 结果 |
||||
*/ |
||||
public int updateProductInfo(ProductInfo productInfo); |
||||
|
||||
/** |
||||
* 删除商品信息 |
||||
* |
||||
* @param id 商品信息主键 |
||||
* @return 结果 |
||||
*/ |
||||
public int deleteProductInfoById(Long id); |
||||
|
||||
/** |
||||
* 批量删除商品信息 |
||||
* |
||||
* @param ids 需要删除的数据主键集合 |
||||
* @return 结果 |
||||
*/ |
||||
public int deleteProductInfoByIds(Long[] ids); |
||||
} |
@ -0,0 +1,61 @@ |
||||
package com.jianshui.platform.service; |
||||
|
||||
import java.util.List; |
||||
import com.jianshui.platform.domain.ProductInfo; |
||||
|
||||
/** |
||||
* 商品信息Service接口 |
||||
* |
||||
* @author kk |
||||
* @date 2023-06-27 |
||||
*/ |
||||
public interface IProductInfoService |
||||
{ |
||||
/** |
||||
* 查询商品信息 |
||||
* |
||||
* @param id 商品信息主键 |
||||
* @return 商品信息 |
||||
*/ |
||||
public ProductInfo selectProductInfoById(Long id); |
||||
|
||||
/** |
||||
* 查询商品信息列表 |
||||
* |
||||
* @param productInfo 商品信息 |
||||
* @return 商品信息集合 |
||||
*/ |
||||
public List<ProductInfo> selectProductInfoList(ProductInfo productInfo); |
||||
|
||||
/** |
||||
* 新增商品信息 |
||||
* |
||||
* @param productInfo 商品信息 |
||||
* @return 结果 |
||||
*/ |
||||
public int insertProductInfo(ProductInfo productInfo); |
||||
|
||||
/** |
||||
* 修改商品信息 |
||||
* |
||||
* @param productInfo 商品信息 |
||||
* @return 结果 |
||||
*/ |
||||
public int updateProductInfo(ProductInfo productInfo); |
||||
|
||||
/** |
||||
* 批量删除商品信息 |
||||
* |
||||
* @param ids 需要删除的商品信息主键集合 |
||||
* @return 结果 |
||||
*/ |
||||
public int deleteProductInfoByIds(Long[] ids); |
||||
|
||||
/** |
||||
* 删除商品信息信息 |
||||
* |
||||
* @param id 商品信息主键 |
||||
* @return 结果 |
||||
*/ |
||||
public int deleteProductInfoById(Long id); |
||||
} |
@ -0,0 +1,96 @@ |
||||
package com.jianshui.platform.service.impl; |
||||
|
||||
import java.util.List; |
||||
import com.jianshui.common.utils.DateUtils; |
||||
import org.springframework.beans.factory.annotation.Autowired; |
||||
import org.springframework.stereotype.Service; |
||||
import com.jianshui.platform.mapper.ProductInfoMapper; |
||||
import com.jianshui.platform.domain.ProductInfo; |
||||
import com.jianshui.platform.service.IProductInfoService; |
||||
|
||||
/** |
||||
* 商品信息Service业务层处理 |
||||
* |
||||
* @author kk |
||||
* @date 2023-06-27 |
||||
*/ |
||||
@Service |
||||
public class ProductInfoServiceImpl implements IProductInfoService |
||||
{ |
||||
@Autowired |
||||
private ProductInfoMapper productInfoMapper; |
||||
|
||||
/** |
||||
* 查询商品信息 |
||||
* |
||||
* @param id 商品信息主键 |
||||
* @return 商品信息 |
||||
*/ |
||||
@Override |
||||
public ProductInfo selectProductInfoById(Long id) |
||||
{ |
||||
return productInfoMapper.selectProductInfoById(id); |
||||
} |
||||
|
||||
/** |
||||
* 查询商品信息列表 |
||||
* |
||||
* @param productInfo 商品信息 |
||||
* @return 商品信息 |
||||
*/ |
||||
@Override |
||||
public List<ProductInfo> selectProductInfoList(ProductInfo productInfo) |
||||
{ |
||||
return productInfoMapper.selectProductInfoList(productInfo); |
||||
} |
||||
|
||||
/** |
||||
* 新增商品信息 |
||||
* |
||||
* @param productInfo 商品信息 |
||||
* @return 结果 |
||||
*/ |
||||
@Override |
||||
public int insertProductInfo(ProductInfo productInfo) |
||||
{ |
||||
productInfo.setCreateTime(DateUtils.getNowDate()); |
||||
return productInfoMapper.insertProductInfo(productInfo); |
||||
} |
||||
|
||||
/** |
||||
* 修改商品信息 |
||||
* |
||||
* @param productInfo 商品信息 |
||||
* @return 结果 |
||||
*/ |
||||
@Override |
||||
public int updateProductInfo(ProductInfo productInfo) |
||||
{ |
||||
productInfo.setUpdateTime(DateUtils.getNowDate()); |
||||
return productInfoMapper.updateProductInfo(productInfo); |
||||
} |
||||
|
||||
/** |
||||
* 批量删除商品信息 |
||||
* |
||||
* @param ids 需要删除的商品信息主键 |
||||
* @return 结果 |
||||
*/ |
||||
@Override |
||||
public int deleteProductInfoByIds(Long[] ids) |
||||
{ |
||||
return productInfoMapper.deleteProductInfoByIds(ids); |
||||
} |
||||
|
||||
/** |
||||
* 删除商品信息信息 |
||||
* |
||||
* @param id 商品信息主键 |
||||
* @return 结果 |
||||
*/ |
||||
@Override |
||||
public int deleteProductInfoById(Long id) |
||||
{ |
||||
return productInfoMapper.deleteProductInfoById(id); |
||||
} |
||||
} |
@ -0,0 +1,136 @@ |
||||
<?xml version="1.0" encoding="UTF-8" ?> |
||||
<!DOCTYPE mapper |
||||
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" |
||||
"http://mybatis.org/dtd/mybatis-3-mapper.dtd"> |
||||
<mapper namespace="com.jianshui.platform.mapper.ProductInfoMapper"> |
||||
|
||||
<resultMap type="ProductInfo" id="ProductInfoResult"> |
||||
<result property="id" column="id" /> |
||||
<result property="productCode" column="product_code" /> |
||||
<result property="productName" column="product_name" /> |
||||
<result property="taxRate" column="tax_rate" /> |
||||
<result property="unitPrice" column="unit_price" /> |
||||
<result property="specification" column="specification" /> |
||||
<result property="unitOfMeasurement" column="unit_of_measurement" /> |
||||
<result property="taxCategoryCode" column="tax_category_code" /> |
||||
<result property="taxCategoryCodeId" column="tax_category_code_id" /> |
||||
<result property="taxCategoryAbbreviation" column="tax_category_abbreviation" /> |
||||
<result property="isQualifiedForDiscount" column="is_qualified_for_discount" /> |
||||
<result property="discountPolicyType" column="discount_policy_type" /> |
||||
<result property="zeroTaxRateIndicator" column="zero_tax_rate_indicator" /> |
||||
<result property="status" column="status" /> |
||||
<result property="createBy" column="create_by" /> |
||||
<result property="createTime" column="create_time" /> |
||||
<result property="updateBy" column="update_by" /> |
||||
<result property="updateTime" column="update_time" /> |
||||
<result property="remark" column="remark" /> |
||||
</resultMap> |
||||
|
||||
<sql id="selectProductInfoVo"> |
||||
select id, product_code, product_name, tax_rate, unit_price, specification, unit_of_measurement, tax_category_code, tax_category_code_id, tax_category_abbreviation, is_qualified_for_discount, discount_policy_type, zero_tax_rate_indicator, status, create_by, create_time, update_by, update_time, remark from product_info |
||||
</sql> |
||||
|
||||
<select id="selectProductInfoList" parameterType="ProductInfo" resultMap="ProductInfoResult"> |
||||
<include refid="selectProductInfoVo"/> |
||||
<where> |
||||
<if test="productCode != null and productCode != ''"> and product_code = #{productCode}</if> |
||||
<if test="productName != null and productName != ''"> and product_name like concat('%', #{productName}, '%')</if> |
||||
<if test="taxRate != null "> and tax_rate = #{taxRate}</if> |
||||
<if test="unitPrice != null "> and unit_price = #{unitPrice}</if> |
||||
<if test="specification != null and specification != ''"> and specification = #{specification}</if> |
||||
<if test="unitOfMeasurement != null and unitOfMeasurement != ''"> and unit_of_measurement = #{unitOfMeasurement}</if> |
||||
<if test="taxCategoryCode != null and taxCategoryCode != ''"> and tax_category_code = #{taxCategoryCode}</if> |
||||
<if test="taxCategoryCodeId != null "> and tax_category_code_id = #{taxCategoryCodeId}</if> |
||||
<if test="taxCategoryAbbreviation != null and taxCategoryAbbreviation != ''"> and tax_category_abbreviation = #{taxCategoryAbbreviation}</if> |
||||
<if test="isQualifiedForDiscount != null and isQualifiedForDiscount != ''"> and is_qualified_for_discount = #{isQualifiedForDiscount}</if> |
||||
<if test="discountPolicyType != null and discountPolicyType != ''"> and discount_policy_type = #{discountPolicyType}</if> |
||||
<if test="zeroTaxRateIndicator != null and zeroTaxRateIndicator != ''"> and zero_tax_rate_indicator = #{zeroTaxRateIndicator}</if> |
||||
<if test="status != null and status != ''"> and status = #{status}</if> |
||||
</where> |
||||
</select> |
||||
|
||||
<select id="selectProductInfoById" parameterType="Long" resultMap="ProductInfoResult"> |
||||
<include refid="selectProductInfoVo"/> |
||||
where id = #{id} |
||||
</select> |
||||
|
||||
<insert id="insertProductInfo" parameterType="ProductInfo" useGeneratedKeys="true" keyProperty="id"> |
||||
insert into product_info |
||||
<trim prefix="(" suffix=")" suffixOverrides=","> |
||||
<if test="productCode != null">product_code,</if> |
||||
<if test="productName != null">product_name,</if> |
||||
<if test="taxRate != null">tax_rate,</if> |
||||
<if test="unitPrice != null">unit_price,</if> |
||||
<if test="specification != null">specification,</if> |
||||
<if test="unitOfMeasurement != null">unit_of_measurement,</if> |
||||
<if test="taxCategoryCode != null">tax_category_code,</if> |
||||
<if test="taxCategoryCodeId != null">tax_category_code_id,</if> |
||||
<if test="taxCategoryAbbreviation != null">tax_category_abbreviation,</if> |
||||
<if test="isQualifiedForDiscount != null">is_qualified_for_discount,</if> |
||||
<if test="discountPolicyType != null">discount_policy_type,</if> |
||||
<if test="zeroTaxRateIndicator != null">zero_tax_rate_indicator,</if> |
||||
<if test="status != null">status,</if> |
||||
<if test="createBy != null">create_by,</if> |
||||
<if test="createTime != null">create_time,</if> |
||||
<if test="updateBy != null">update_by,</if> |
||||
<if test="updateTime != null">update_time,</if> |
||||
<if test="remark != null">remark,</if> |
||||
</trim> |
||||
<trim prefix="values (" suffix=")" suffixOverrides=","> |
||||
<if test="productCode != null">#{productCode},</if> |
||||
<if test="productName != null">#{productName},</if> |
||||
<if test="taxRate != null">#{taxRate},</if> |
||||
<if test="unitPrice != null">#{unitPrice},</if> |
||||
<if test="specification != null">#{specification},</if> |
||||
<if test="unitOfMeasurement != null">#{unitOfMeasurement},</if> |
||||
<if test="taxCategoryCode != null">#{taxCategoryCode},</if> |
||||
<if test="taxCategoryCodeId != null">#{taxCategoryCodeId},</if> |
||||
<if test="taxCategoryAbbreviation != null">#{taxCategoryAbbreviation},</if> |
||||
<if test="isQualifiedForDiscount != null">#{isQualifiedForDiscount},</if> |
||||
<if test="discountPolicyType != null">#{discountPolicyType},</if> |
||||
<if test="zeroTaxRateIndicator != null">#{zeroTaxRateIndicator},</if> |
||||
<if test="status != null">#{status},</if> |
||||
<if test="createBy != null">#{createBy},</if> |
||||
<if test="createTime != null">#{createTime},</if> |
||||
<if test="updateBy != null">#{updateBy},</if> |
||||
<if test="updateTime != null">#{updateTime},</if> |
||||
<if test="remark != null">#{remark},</if> |
||||
</trim> |
||||
</insert> |
||||
|
||||
<update id="updateProductInfo" parameterType="ProductInfo"> |
||||
update product_info |
||||
<trim prefix="SET" suffixOverrides=","> |
||||
<if test="productCode != null">product_code = #{productCode},</if> |
||||
<if test="productName != null">product_name = #{productName},</if> |
||||
<if test="taxRate != null">tax_rate = #{taxRate},</if> |
||||
<if test="unitPrice != null">unit_price = #{unitPrice},</if> |
||||
<if test="specification != null">specification = #{specification},</if> |
||||
<if test="unitOfMeasurement != null">unit_of_measurement = #{unitOfMeasurement},</if> |
||||
<if test="taxCategoryCode != null">tax_category_code = #{taxCategoryCode},</if> |
||||
<if test="taxCategoryCodeId != null">tax_category_code_id = #{taxCategoryCodeId},</if> |
||||
<if test="taxCategoryAbbreviation != null">tax_category_abbreviation = #{taxCategoryAbbreviation},</if> |
||||
<if test="isQualifiedForDiscount != null">is_qualified_for_discount = #{isQualifiedForDiscount},</if> |
||||
<if test="discountPolicyType != null">discount_policy_type = #{discountPolicyType},</if> |
||||
<if test="zeroTaxRateIndicator != null">zero_tax_rate_indicator = #{zeroTaxRateIndicator},</if> |
||||
<if test="status != null">status = #{status},</if> |
||||
<if test="createBy != null">create_by = #{createBy},</if> |
||||
<if test="createTime != null">create_time = #{createTime},</if> |
||||
<if test="updateBy != null">update_by = #{updateBy},</if> |
||||
<if test="updateTime != null">update_time = #{updateTime},</if> |
||||
<if test="remark != null">remark = #{remark},</if> |
||||
</trim> |
||||
where id = #{id} |
||||
</update> |
||||
|
||||
<delete id="deleteProductInfoById" parameterType="Long"> |
||||
delete from product_info where id = #{id} |
||||
</delete> |
||||
|
||||
<delete id="deleteProductInfoByIds" parameterType="String"> |
||||
delete from product_info where id in |
||||
<foreach item="id" collection="array" open="(" separator="," close=")"> |
||||
#{id} |
||||
</foreach> |
||||
</delete> |
||||
</mapper> |
@ -0,0 +1,44 @@ |
||||
import request from '@/utils/request' |
||||
|
||||
// 查询商品信息列表
|
||||
export function listProduct_info(query) { |
||||
return request({ |
||||
url: '/platform/product_info/list', |
||||
method: 'get', |
||||
params: query |
||||
}) |
||||
} |
||||
|
||||
// 查询商品信息详细
|
||||
export function getProduct_info(id) { |
||||
return request({ |
||||
url: '/platform/product_info/' + id, |
||||
method: 'get' |
||||
}) |
||||
} |
||||
|
||||
// 新增商品信息
|
||||
export function addProduct_info(data) { |
||||
return request({ |
||||
url: '/platform/product_info', |
||||
method: 'post', |
||||
data: data |
||||
}) |
||||
} |
||||
|
||||
// 修改商品信息
|
||||
export function updateProduct_info(data) { |
||||
return request({ |
||||
url: '/platform/product_info', |
||||
method: 'put', |
||||
data: data |
||||
}) |
||||
} |
||||
|
||||
// 删除商品信息
|
||||
export function delProduct_info(id) { |
||||
return request({ |
||||
url: '/platform/product_info/' + id, |
||||
method: 'delete' |
||||
}) |
||||
} |
@ -0,0 +1,411 @@ |
||||
<template> |
||||
<div class="app-container"> |
||||
<el-form :model="queryParams" ref="queryForm" :inline="true" v-show="showSearch" label-width="68px"> |
||||
<el-form-item label="商品编码" prop="productCode"> |
||||
<el-input |
||||
v-model="queryParams.productCode" |
||||
placeholder="请输入商品编码" |
||||
clearable |
||||
size="small" |
||||
@keyup.enter.native="handleQuery" |
||||
/> |
||||
</el-form-item> |
||||
<el-form-item label="商品名称" prop="productName"> |
||||
<el-input |
||||
v-model="queryParams.productName" |
||||
placeholder="请输入商品名称" |
||||
clearable |
||||
size="small" |
||||
@keyup.enter.native="handleQuery" |
||||
/> |
||||
</el-form-item> |
||||
<el-form-item label="税率" prop="taxRate"> |
||||
<el-input |
||||
v-model="queryParams.taxRate" |
||||
placeholder="请输入税率" |
||||
clearable |
||||
size="small" |
||||
@keyup.enter.native="handleQuery" |
||||
/> |
||||
</el-form-item> |
||||
<el-form-item label="单价" prop="unitPrice"> |
||||
<el-input |
||||
v-model="queryParams.unitPrice" |
||||
placeholder="请输入单价" |
||||
clearable |
||||
size="small" |
||||
@keyup.enter.native="handleQuery" |
||||
/> |
||||
</el-form-item> |
||||
<el-form-item label="规格型号" prop="specification"> |
||||
<el-input |
||||
v-model="queryParams.specification" |
||||
placeholder="请输入规格型号" |
||||
clearable |
||||
size="small" |
||||
@keyup.enter.native="handleQuery" |
||||
/> |
||||
</el-form-item> |
||||
<el-form-item label="计量单位" prop="unitOfMeasurement"> |
||||
<el-input |
||||
v-model="queryParams.unitOfMeasurement" |
||||
placeholder="请输入计量单位" |
||||
clearable |
||||
size="small" |
||||
@keyup.enter.native="handleQuery" |
||||
/> |
||||
</el-form-item> |
||||
<el-form-item label="税收分类编码" prop="taxCategoryCode"> |
||||
<el-input |
||||
v-model="queryParams.taxCategoryCode" |
||||
placeholder="请输入税收分类编码" |
||||
clearable |
||||
size="small" |
||||
@keyup.enter.native="handleQuery" |
||||
/> |
||||
</el-form-item> |
||||
<el-form-item label="税收分类编码Id" prop="taxCategoryCodeId"> |
||||
<el-input |
||||
v-model="queryParams.taxCategoryCodeId" |
||||
placeholder="请输入税收分类编码Id" |
||||
clearable |
||||
size="small" |
||||
@keyup.enter.native="handleQuery" |
||||
/> |
||||
</el-form-item> |
||||
<el-form-item label="税收分类编码简称" prop="taxCategoryAbbreviation"> |
||||
<el-input |
||||
v-model="queryParams.taxCategoryAbbreviation" |
||||
placeholder="请输入税收分类编码简称" |
||||
clearable |
||||
size="small" |
||||
@keyup.enter.native="handleQuery" |
||||
/> |
||||
</el-form-item> |
||||
<el-form-item label="是否享受优惠政策" prop="isQualifiedForDiscount"> |
||||
<el-input |
||||
v-model="queryParams.isQualifiedForDiscount" |
||||
placeholder="请输入是否享受优惠政策" |
||||
clearable |
||||
size="small" |
||||
@keyup.enter.native="handleQuery" |
||||
/> |
||||
</el-form-item> |
||||
<el-form-item label="零税率标识" prop="zeroTaxRateIndicator"> |
||||
<el-input |
||||
v-model="queryParams.zeroTaxRateIndicator" |
||||
placeholder="请输入零税率标识" |
||||
clearable |
||||
size="small" |
||||
@keyup.enter.native="handleQuery" |
||||
/> |
||||
</el-form-item> |
||||
<el-form-item> |
||||
<el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button> |
||||
<el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button> |
||||
</el-form-item> |
||||
</el-form> |
||||
|
||||
<el-row :gutter="10" class="mb8"> |
||||
<el-col :span="1.5"> |
||||
<el-button |
||||
type="primary" |
||||
plain |
||||
icon="el-icon-plus" |
||||
size="mini" |
||||
@click="handleAdd" |
||||
v-hasPermi="['platform:product_info:add']" |
||||
>新增</el-button> |
||||
</el-col> |
||||
<el-col :span="1.5"> |
||||
<el-button |
||||
type="success" |
||||
plain |
||||
icon="el-icon-edit" |
||||
size="mini" |
||||
:disabled="single" |
||||
@click="handleUpdate" |
||||
v-hasPermi="['platform:product_info:edit']" |
||||
>修改</el-button> |
||||
</el-col> |
||||
<el-col :span="1.5"> |
||||
<el-button |
||||
type="danger" |
||||
plain |
||||
icon="el-icon-delete" |
||||
size="mini" |
||||
:disabled="multiple" |
||||
@click="handleDelete" |
||||
v-hasPermi="['platform:product_info:remove']" |
||||
>删除</el-button> |
||||
</el-col> |
||||
<el-col :span="1.5"> |
||||
<el-button |
||||
type="warning" |
||||
plain |
||||
icon="el-icon-download" |
||||
size="mini" |
||||
@click="handleExport" |
||||
v-hasPermi="['platform:product_info:export']" |
||||
>导出</el-button> |
||||
</el-col> |
||||
<right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar> |
||||
</el-row> |
||||
|
||||
<el-table v-loading="loading" :data="product_infoList" @selection-change="handleSelectionChange"> |
||||
<el-table-column type="selection" width="55" align="center" /> |
||||
<el-table-column label="主键" align="center" prop="id" /> |
||||
<el-table-column label="商品编码" align="center" prop="productCode" /> |
||||
<el-table-column label="商品名称" align="center" prop="productName" /> |
||||
<el-table-column label="税率" align="center" prop="taxRate" /> |
||||
<el-table-column label="单价" align="center" prop="unitPrice" /> |
||||
<el-table-column label="规格型号" align="center" prop="specification" /> |
||||
<el-table-column label="计量单位" align="center" prop="unitOfMeasurement" /> |
||||
<el-table-column label="税收分类编码" align="center" prop="taxCategoryCode" /> |
||||
<el-table-column label="税收分类编码Id" align="center" prop="taxCategoryCodeId" /> |
||||
<el-table-column label="税收分类编码简称" align="center" prop="taxCategoryAbbreviation" /> |
||||
<el-table-column label="是否享受优惠政策" align="center" prop="isQualifiedForDiscount" /> |
||||
<el-table-column label="优惠政策类型" align="center" prop="discountPolicyType" /> |
||||
<el-table-column label="零税率标识" align="center" prop="zeroTaxRateIndicator" /> |
||||
<el-table-column label="状态" align="center" prop="status" /> |
||||
<el-table-column label="备注" align="center" prop="remark" /> |
||||
<el-table-column label="操作" align="center" class-name="small-padding fixed-width"> |
||||
<template slot-scope="scope"> |
||||
<el-button |
||||
size="mini" |
||||
type="text" |
||||
icon="el-icon-edit" |
||||
@click="handleUpdate(scope.row)" |
||||
v-hasPermi="['platform:product_info:edit']" |
||||
>修改</el-button> |
||||
<el-button |
||||
size="mini" |
||||
type="text" |
||||
icon="el-icon-delete" |
||||
@click="handleDelete(scope.row)" |
||||
v-hasPermi="['platform:product_info:remove']" |
||||
>删除</el-button> |
||||
</template> |
||||
</el-table-column> |
||||
</el-table> |
||||
|
||||
<pagination |
||||
v-show="total>0" |
||||
:total="total" |
||||
:page.sync="queryParams.pageNum" |
||||
:limit.sync="queryParams.pageSize" |
||||
@pagination="getList" |
||||
/> |
||||
|
||||
<!-- 添加或修改商品信息对话框 --> |
||||
<el-dialog :title="title" :visible.sync="open" width="500px" append-to-body> |
||||
<el-form ref="form" :model="form" :rules="rules" label-width="80px"> |
||||
<el-form-item label="商品编码" prop="productCode"> |
||||
<el-input v-model="form.productCode" placeholder="请输入商品编码" /> |
||||
</el-form-item> |
||||
<el-form-item label="商品名称" prop="productName"> |
||||
<el-input v-model="form.productName" placeholder="请输入商品名称" /> |
||||
</el-form-item> |
||||
<el-form-item label="税率" prop="taxRate"> |
||||
<el-input v-model="form.taxRate" placeholder="请输入税率" /> |
||||
</el-form-item> |
||||
<el-form-item label="单价" prop="unitPrice"> |
||||
<el-input v-model="form.unitPrice" placeholder="请输入单价" /> |
||||
</el-form-item> |
||||
<el-form-item label="规格型号" prop="specification"> |
||||
<el-input v-model="form.specification" placeholder="请输入规格型号" /> |
||||
</el-form-item> |
||||
<el-form-item label="计量单位" prop="unitOfMeasurement"> |
||||
<el-input v-model="form.unitOfMeasurement" placeholder="请输入计量单位" /> |
||||
</el-form-item> |
||||
<el-form-item label="税收分类编码" prop="taxCategoryCode"> |
||||
<el-input v-model="form.taxCategoryCode" placeholder="请输入税收分类编码" /> |
||||
</el-form-item> |
||||
<el-form-item label="税收分类编码Id" prop="taxCategoryCodeId"> |
||||
<el-input v-model="form.taxCategoryCodeId" placeholder="请输入税收分类编码Id" /> |
||||
</el-form-item> |
||||
<el-form-item label="税收分类编码简称" prop="taxCategoryAbbreviation"> |
||||
<el-input v-model="form.taxCategoryAbbreviation" placeholder="请输入税收分类编码简称" /> |
||||
</el-form-item> |
||||
<el-form-item label="是否享受优惠政策" prop="isQualifiedForDiscount"> |
||||
<el-input v-model="form.isQualifiedForDiscount" placeholder="请输入是否享受优惠政策" /> |
||||
</el-form-item> |
||||
<el-form-item label="零税率标识" prop="zeroTaxRateIndicator"> |
||||
<el-input v-model="form.zeroTaxRateIndicator" placeholder="请输入零税率标识" /> |
||||
</el-form-item> |
||||
<el-form-item label="备注" prop="remark"> |
||||
<el-input v-model="form.remark" type="textarea" placeholder="请输入内容" /> |
||||
</el-form-item> |
||||
</el-form> |
||||
<div slot="footer" class="dialog-footer"> |
||||
<el-button type="primary" @click="submitForm">确 定</el-button> |
||||
<el-button @click="cancel">取 消</el-button> |
||||
</div> |
||||
</el-dialog> |
||||
</div> |
||||
</template> |
||||
|
||||
<script> |
||||
import { listProduct_info, getProduct_info, delProduct_info, addProduct_info, updateProduct_info } from "@/api/platform/product_info"; |
||||
|
||||
export default { |
||||
name: "Product_info", |
||||
data() { |
||||
return { |
||||
// 遮罩层 |
||||
loading: true, |
||||
// 选中数组 |
||||
ids: [], |
||||
// 非单个禁用 |
||||
single: true, |
||||
// 非多个禁用 |
||||
multiple: true, |
||||
// 显示搜索条件 |
||||
showSearch: true, |
||||
// 总条数 |
||||
total: 0, |
||||
// 商品信息表格数据 |
||||
product_infoList: [], |
||||
// 弹出层标题 |
||||
title: "", |
||||
// 是否显示弹出层 |
||||
open: false, |
||||
// 查询参数 |
||||
queryParams: { |
||||
pageNum: 1, |
||||
pageSize: 10, |
||||
productCode: null, |
||||
productName: null, |
||||
taxRate: null, |
||||
unitPrice: null, |
||||
specification: null, |
||||
unitOfMeasurement: null, |
||||
taxCategoryCode: null, |
||||
taxCategoryCodeId: null, |
||||
taxCategoryAbbreviation: null, |
||||
isQualifiedForDiscount: null, |
||||
discountPolicyType: null, |
||||
zeroTaxRateIndicator: null, |
||||
status: null, |
||||
}, |
||||
// 表单参数 |
||||
form: {}, |
||||
// 表单校验 |
||||
rules: { |
||||
} |
||||
}; |
||||
}, |
||||
created() { |
||||
this.getList(); |
||||
}, |
||||
methods: { |
||||
/** 查询商品信息列表 */ |
||||
getList() { |
||||
this.loading = true; |
||||
listProduct_info(this.queryParams).then(response => { |
||||
this.product_infoList = response.rows; |
||||
this.total = response.total; |
||||
this.loading = false; |
||||
}); |
||||
}, |
||||
// 取消按钮 |
||||
cancel() { |
||||
this.open = false; |
||||
this.reset(); |
||||
}, |
||||
// 表单重置 |
||||
reset() { |
||||
this.form = { |
||||
id: null, |
||||
productCode: null, |
||||
productName: null, |
||||
taxRate: null, |
||||
unitPrice: null, |
||||
specification: null, |
||||
unitOfMeasurement: null, |
||||
taxCategoryCode: null, |
||||
taxCategoryCodeId: null, |
||||
taxCategoryAbbreviation: null, |
||||
isQualifiedForDiscount: null, |
||||
discountPolicyType: null, |
||||
zeroTaxRateIndicator: null, |
||||
status: "0", |
||||
createBy: null, |
||||
createTime: null, |
||||
updateBy: null, |
||||
updateTime: null, |
||||
remark: null |
||||
}; |
||||
this.resetForm("form"); |
||||
}, |
||||
/** 搜索按钮操作 */ |
||||
handleQuery() { |
||||
this.queryParams.pageNum = 1; |
||||
this.getList(); |
||||
}, |
||||
/** 重置按钮操作 */ |
||||
resetQuery() { |
||||
this.resetForm("queryForm"); |
||||
this.handleQuery(); |
||||
}, |
||||
// 多选框选中数据 |
||||
handleSelectionChange(selection) { |
||||
this.ids = selection.map(item => item.id) |
||||
this.single = selection.length!==1 |
||||
this.multiple = !selection.length |
||||
}, |
||||
/** 新增按钮操作 */ |
||||
handleAdd() { |
||||
this.reset(); |
||||
this.open = true; |
||||
this.title = "添加商品信息"; |
||||
}, |
||||
/** 修改按钮操作 */ |
||||
handleUpdate(row) { |
||||
this.reset(); |
||||
const id = row.id || this.ids |
||||
getProduct_info(id).then(response => { |
||||
this.form = response.data; |
||||
this.open = true; |
||||
this.title = "修改商品信息"; |
||||
}); |
||||
}, |
||||
/** 提交按钮 */ |
||||
submitForm() { |
||||
this.$refs["form"].validate(valid => { |
||||
if (valid) { |
||||
if (this.form.id != null) { |
||||
updateProduct_info(this.form).then(response => { |
||||
this.$modal.msgSuccess("修改成功"); |
||||
this.open = false; |
||||
this.getList(); |
||||
}); |
||||
} else { |
||||
addProduct_info(this.form).then(response => { |
||||
this.$modal.msgSuccess("新增成功"); |
||||
this.open = false; |
||||
this.getList(); |
||||
}); |
||||
} |
||||
} |
||||
}); |
||||
}, |
||||
/** 删除按钮操作 */ |
||||
handleDelete(row) { |
||||
const ids = row.id || this.ids; |
||||
this.$modal.confirm('是否确认删除商品信息编号为"' + ids + '"的数据项?').then(function() { |
||||
return delProduct_info(ids); |
||||
}).then(() => { |
||||
this.getList(); |
||||
this.$modal.msgSuccess("删除成功"); |
||||
}).catch(() => {}); |
||||
}, |
||||
/** 导出按钮操作 */ |
||||
handleExport() { |
||||
this.download('platform/product_info/export', { |
||||
...this.queryParams |
||||
}, `product_info_${new Date().getTime()}.xlsx`) |
||||
} |
||||
} |
||||
}; |
||||
</script> |
Loading…
Reference in new issue