yanyang #8

マージ済み
yanyang が 4 個のコミットを yanyang から master へマージ 2022-08-09 15:25:37 +08:00
21個のファイルの変更127行の追加413行の削除

ファイルの表示

@ -1,6 +1,9 @@
package com.cnbm.basic.controller;
import com.cnbm.admin.annotation.LogOperation;
import com.cnbm.admin.params.IdParam;
import com.cnbm.basic.dto.WorkingProcedureDTO;
import com.cnbm.basic.entity.ProductFeatures;
import com.cnbm.common.constant.Constant;
import com.cnbm.common.page.PageData;
import com.cnbm.common.utils.ExcelUtils;
@ -114,4 +117,11 @@ public class ProductFeaturesController {
ExcelUtils.exportExcelToTarget(response, null, list, ProductFeaturesExcel.class);
}
@PostMapping("getProductFeaturesByProductId")
@ApiOperation("查询产品特性 依据产品id")
public Result<List<ProductFeaturesDTO>> getProductFeaturesByProductId(@RequestBody IdParam id){
List<ProductFeaturesDTO> list = productFeaturesService.getProductFeaturesByProductId(id.getId());
return new Result<List<ProductFeaturesDTO>>().ok(list);
}
}

ファイルの表示

@ -29,9 +29,15 @@ public class ProductFeaturesDTO implements Serializable {
@ApiModelProperty(value = "量具id关联measure_tool表")
private Long measureToolId;
@ApiModelProperty(value = "量具名称关联measure_tool表")
private String measureToolName;
@ApiModelProperty(value = "单位 id关联unit表")
private Long unitId;
@ApiModelProperty(value = "单位名称关联unit表")
private String unitName;
@ApiModelProperty(value = "产品特性 名")
private String name;
@ -59,9 +65,18 @@ public class ProductFeaturesDTO implements Serializable {
@ApiModelProperty(value = "工序id关联 working_procedure 表id")
private Long workingProcedureId;
@ApiModelProperty(value = "工序编码,关联 working_procedure 表id")
private String workingProcedureCode;
@ApiModelProperty(value = "工序名称,关联 working_procedure 表id")
private String workingProcedureName;
@ApiModelProperty(value = "分析图形关联control_graph表id")
private Long controlGraphId;
@ApiModelProperty(value = "分析图形名关联control_graph表id")
private String controlGraphName;
@ApiModelProperty(value = "是否需要spc分析1 yes;0 no")
private Integer isSpc;

ファイルの表示

@ -1,9 +1,12 @@
package com.cnbm.basic.mapper;
import com.cnbm.basic.dto.ProductFeaturesDTO;
import com.cnbm.common.dao.BaseDao;
import com.cnbm.basic.entity.ProductFeatures;
import org.apache.ibatis.annotations.Mapper;
import java.util.List;
/**
* 产品特性
*
@ -12,5 +15,5 @@ import org.apache.ibatis.annotations.Mapper;
*/
@Mapper
public interface ProductFeaturesMapper extends BaseDao<ProductFeatures> {
List<ProductFeaturesDTO> getProductFeaturesByProductId(Long id);
}

ファイルの表示

@ -5,6 +5,7 @@ import com.cnbm.common.service.CrudService;
import com.cnbm.basic.dto.ProductFeaturesDTO;
import com.cnbm.basic.entity.ProductFeatures;
import java.util.List;
import java.util.Map;
/**
@ -23,4 +24,6 @@ public interface IProductFeaturesService extends CrudService<ProductFeatures, Pr
void update(ProductFeaturesDTO dto);
void delete(Long[] ids);
List<ProductFeaturesDTO> getProductFeaturesByProductId(Long id);
}

ファイルの表示

@ -22,6 +22,8 @@ public interface IProductService extends CrudService<Product, ProductDTO> {
void update(ProductDTO dto);
void delete(Long[] ids);
boolean changeStatus(Long id);
}

ファイルの表示

@ -26,5 +26,7 @@ public interface IUnitService extends CrudService<Unit, UnitDTO> {
List<UnitDTO> list();
void delete(Long[] ids);
boolean changeStatus(Long id);
}

ファイルの表示

@ -15,6 +15,7 @@ import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.math.BigDecimal;
import java.util.Arrays;
import java.util.Map;
/**
@ -78,4 +79,11 @@ public class MeasureToolServiceImpl extends CrudServiceImpl<MeasureToolMapper, M
return updateById(entity);
}
@Override
@Transactional(rollbackFor = Exception.class)
public void delete(Long[] ids) {
//删除
deleteBatchIds(Arrays.asList(ids));
}
}

ファイルの表示

@ -14,6 +14,7 @@ import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.math.BigDecimal;
import java.util.Arrays;
import java.util.Map;
/**
@ -64,4 +65,11 @@ public class ProductFeaturesHisServiceImpl extends CrudServiceImpl<ProductFeatur
updateById(entity);
}
@Override
@Transactional(rollbackFor = Exception.class)
public void delete(Long[] ids) {
//删除
deleteBatchIds(Arrays.asList(ids));
}
}

ファイルの表示

@ -2,8 +2,13 @@ package com.cnbm.basic.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.core.toolkit.ObjectUtils;
import com.cnbm.admin.params.IdParam;
import com.cnbm.basic.dto.ProductFeaturesHisDTO;
import com.cnbm.basic.dto.WorkingProcedureDTO;
import com.cnbm.basic.entity.ProductFeaturesHis;
import com.cnbm.basic.entity.ProductWorkingprocedureRelation;
import com.cnbm.basic.entity.WorkingProcedure;
import com.cnbm.common.page.PageData;
import com.cnbm.common.service.impl.CrudServiceImpl;
import com.cnbm.basic.dto.ProductFeaturesDTO;
@ -16,6 +21,9 @@ import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import java.util.Map;
/**
@ -77,4 +85,41 @@ public class ProductFeaturesServiceImpl extends CrudServiceImpl<ProductFeaturesM
}
@Autowired
private ProductFeaturesMapper mapper;
// @Autowired
// private WorkingProcedureServiceImpl workingProcedureServiceImpl;
@Override
public List<ProductFeaturesDTO> getProductFeaturesByProductId(Long id){
List<ProductFeaturesDTO> list = mapper.getProductFeaturesByProductId(id);
return list;
/*
QueryWrapper<ProductFeatures> wrapper = new QueryWrapper<>();
wrapper.eq(ObjectUtils.isNotNull(productId), "product_id", productId);
List<ProductFeatures> productFeaturesList = mapper.selectList(wrapper);
List<ProductFeaturesDTO> productFeaturesDTOList = ConvertUtils.sourceToTarget(productFeaturesList,ProductFeaturesDTO.class);
for(ProductFeaturesDTO dto:productFeaturesDTOList) {
WorkingProcedure workingProcedure = workingProcedureServiceImpl.selectById(dto.getWorkingProcedureId());
if (workingProcedure != null) {
String workingProcedureCode = workingProcedure.getCode();
String workingProcedureName = workingProcedure.getName();
dto.setWorkingProcedureCode(workingProcedureCode);
dto.setWorkingProcedureName(workingProcedureName);
}
}
return productFeaturesDTOList;
*/
}
@Override
@Transactional(rollbackFor = Exception.class)
public void delete(Long[] ids) {
//删除
deleteBatchIds(Arrays.asList(ids));
}
}

ファイルの表示

@ -18,6 +18,7 @@ import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.math.BigDecimal;
import java.util.Arrays;
import java.util.Map;
/**
@ -104,4 +105,11 @@ public class ProductServiceImpl extends CrudServiceImpl<ProductMapper, Product,
return updateById(entity);
}
@Override
@Transactional(rollbackFor = Exception.class)
public void delete(Long[] ids) {
//删除
deleteBatchIds(Arrays.asList(ids));
}
}

ファイルの表示

@ -16,6 +16,7 @@ import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.math.BigDecimal;
import java.util.Arrays;
import java.util.List;
import java.util.Map;
@ -85,4 +86,11 @@ public class UnitServiceImpl extends CrudServiceImpl<UnitMapper, Unit, UnitDTO>
return list;
}
@Override
@Transactional(rollbackFor = Exception.class)
public void delete(Long[] ids) {
//删除
deleteBatchIds(Arrays.asList(ids));
}
}

ファイルの表示

@ -2,4 +2,17 @@
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.cnbm.basic.mapper.ProductFeaturesMapper">
<select id="getProductFeaturesByProductId" resultType="com.cnbm.basic.dto.ProductFeaturesDTO">
select p.*,w.code as workingProcedureCode,w.name as workingProcedureName,m.name as measureToolName,u.name as unitName,c.name as controlGraphName
from product_features p
LEFT JOIN working_procedure w ON p.working_procedure_id=w.id
LEFT JOIN measure_tool m ON p.measure_tool_id=m.id
LEFT JOIN unit u ON p.unit_id=u.id
LEFT JOIN control_graph c ON p.control_graph_id=c.id
<where>
p.valid = 1 AND p.product_id = #{id}
</where>
order by p.id asc
</select>
</mapper>

ファイルの表示

@ -27,7 +27,7 @@ public class CodeGenerator {
@Test
public void test(){
mybatisPlusGenerator(new String[]{"product_features"});
mybatisPlusGenerator(new String[]{"working_procedure"});
}
public static void mybatisPlusGenerator(String[] include){

ファイルの表示

@ -1,116 +0,0 @@
package com.cnbm.generator.code.controller;
import com.cnbm.admin.annotation.LogOperation;
import com.cnbm.common.constant.Constant;
import com.cnbm.common.page.PageData;
import com.cnbm.common.utils.ExcelUtils;
import com.cnbm.common.utils.Result;
import com.cnbm.common.validator.AssertUtils;
import com.cnbm.common.validator.ValidatorUtils;
import com.cnbm.common.validator.group.AddGroup;
import com.cnbm.common.validator.group.DefaultGroup;
import com.cnbm.common.validator.group.UpdateGroup;
import com.cnbm.generator.code.dto.ProductDTO;
import com.cnbm.generator.code.excel.ProductExcel;
import com.cnbm.generator.code.service.IProductService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiImplicitParam;
import io.swagger.annotations.ApiImplicitParams;
import io.swagger.annotations.ApiOperation;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import springfox.documentation.annotations.ApiIgnore;
import javax.servlet.http.HttpServletResponse;
import java.util.List;
import java.util.Map;
/**
* 产品 前端控制器
*
* @author why
* @since 2022-08-01
*/
@RestController
@RequestMapping("/code/product")
@Api(tags="产品 表")
public class ProductController {
@Autowired
private IProductService productService;
@GetMapping("page")
@ApiOperation("分页")
@ApiImplicitParams({
@ApiImplicitParam(name = Constant.PAGE, value = "当前页码从1开始", paramType = "query", required = true, dataTypeClass=Integer.class) ,
@ApiImplicitParam(name = Constant.LIMIT, value = "每页显示记录数", paramType = "query",required = true, dataTypeClass=Integer.class) ,
@ApiImplicitParam(name = Constant.ORDER_FIELD, value = "排序字段", paramType = "query", dataTypeClass=String.class) ,
@ApiImplicitParam(name = Constant.ORDER, value = "排序方式,可选值(asc、desc)", paramType = "query", dataTypeClass=String.class)
})
@PreAuthorize("@ex.hasAuthority('code:product:page')")
public Result<PageData<ProductDTO>> page(@ApiIgnore @RequestParam Map<String, Object> params){
PageData<ProductDTO> page = productService.page(params);
return new Result<PageData<ProductDTO>>().ok(page);
}
@GetMapping("{id}")
@ApiOperation("信息")
@PreAuthorize("@ex.hasAuthority('code:product:info')")
public Result<ProductDTO> get(@PathVariable("id") Long id){
ProductDTO data = productService.get(id);
return new Result<ProductDTO>().ok(data);
}
@PostMapping
@ApiOperation("保存")
@LogOperation("保存")
@PreAuthorize("@ex.hasAuthority('code:product:save')")
public Result save(@RequestBody ProductDTO dto){
//效验数据
ValidatorUtils.validateEntity(dto, AddGroup.class, DefaultGroup.class);
productService.save(dto);
return new Result();
}
@PutMapping
@ApiOperation("修改")
@LogOperation("修改")
@PreAuthorize("@ex.hasAuthority('code:product:update')")
public Result update(@RequestBody ProductDTO dto){
//效验数据
ValidatorUtils.validateEntity(dto, UpdateGroup.class, DefaultGroup.class);
productService.update(dto);
return new Result();
}
@DeleteMapping
@ApiOperation("删除")
@LogOperation("删除")
@PreAuthorize("@ex.hasAuthority('code:product:delete')")
public Result delete(@RequestBody Long[] ids){
//效验数据
AssertUtils.isArrayEmpty(ids, "id");
productService.delete(ids);
return new Result();
}
@GetMapping("export")
@ApiOperation("导出")
@LogOperation("导出")
@PreAuthorize("@ex.hasAuthority('code:product:export')")
public void export(@ApiIgnore @RequestParam Map<String, Object> params, HttpServletResponse response) throws Exception {
List<ProductDTO> list = productService.list(params);
ExcelUtils.exportExcelToTarget(response, null, list, ProductExcel.class);
}
}

ファイルの表示

@ -1,86 +0,0 @@
package com.cnbm.generator.code.dto;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.io.Serializable;
import java.time.LocalDateTime;
import java.math.BigDecimal;
/**
* 产品
*
* @author why
* @since 2022-08-01
*/
@Data
@ApiModel(value = "产品 表DTO对象")
public class ProductDTO implements Serializable {
private static final long serialVersionUID = 1L;
@ApiModelProperty(value = "")
private Long id;
@ApiModelProperty(value = "产品 名")
private String name;
@ApiModelProperty(value = "产品 编码")
private String code;
@ApiModelProperty(value = "产品 规格")
private String specifications;
@ApiModelProperty(value = "产品 图纸")
private String drawing;
@ApiModelProperty(value = "描述")
private String descs;
@ApiModelProperty(value = "")
private Long productTypeId;
@ApiModelProperty(value = "")
private Long unitId;
@ApiModelProperty(value = "检验阶段1 进货检验、 2 过程检验、 3 成品检验、 4 出货检验;; 如果有多个用逗号隔开,比如 1,4 就代表选中了进货检验和出货检验")
private String inspectionStage;
@ApiModelProperty(value = "检验标准")
private String inspectionStandard;
@ApiModelProperty(value = "1 可用0 不可用")
private Integer status;
@ApiModelProperty(value = "备注")
private String remark;
@ApiModelProperty(value = "删除标志,是否有效:1 可用 0不可用")
private Integer valid;
@ApiModelProperty(value = "")
private Long creatorId;
@ApiModelProperty(value = "创建人姓名")
private String creatorName;
@ApiModelProperty(value = "创建时间")
private LocalDateTime createTime;
@ApiModelProperty(value = "")
private Long updaterId;
@ApiModelProperty(value = "更新人姓名")
private String updaterName;
@ApiModelProperty(value = "更新时间")
private LocalDateTime updateTime;
@ApiModelProperty(value = "版本号")
private Integer version;
}

ファイルの表示

@ -1,79 +0,0 @@
package com.cnbm.generator.code.entity;
import java.io.Serializable;
import java.time.LocalDateTime;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
* <p>
* 产品
* </p>
*
* @author why
* @since 2022-08-01
*/
@Data
@ApiModel(value = "Product对象", description = "产品 表")
public class Product implements Serializable {
private static final long serialVersionUID = 1L;
private Long id;
@ApiModelProperty("产品 名")
private String name;
@ApiModelProperty("产品 编码")
private String code;
@ApiModelProperty("产品 规格")
private String specifications;
@ApiModelProperty("产品 图纸")
private String drawing;
@ApiModelProperty("描述")
private String descs;
private Long productTypeId;
private Long unitId;
@ApiModelProperty("检验阶段1 进货检验、 2 过程检验、 3 成品检验、 4 出货检验;; 如果有多个用逗号隔开,比如 1,4 就代表选中了进货检验和出货检验")
private String inspectionStage;
@ApiModelProperty("检验标准")
private String inspectionStandard;
@ApiModelProperty("1 可用0 不可用")
private Integer status;
@ApiModelProperty("备注")
private String remark;
@ApiModelProperty("删除标志,是否有效:1 可用 0不可用")
private Integer valid;
private Long creatorId;
@ApiModelProperty("创建人姓名")
private String creatorName;
@ApiModelProperty("创建时间")
private LocalDateTime createTime;
private Long updaterId;
@ApiModelProperty("更新人姓名")
private String updaterName;
@ApiModelProperty("更新时间")
private LocalDateTime updateTime;
@ApiModelProperty("版本号")
private Integer version;
}

ファイルの表示

@ -1,60 +0,0 @@
package com.cnbm.generator.code.excel;
import cn.afterturn.easypoi.excel.annotation.Excel;
import lombok.Data;
import java.time.LocalDateTime;
import java.math.BigDecimal;
import java.util.Date;
/**
* 产品
*
* @author why
* @since 2022-08-01
*/
@Data
public class ProductExcel {
@Excel(name = "")
private Long id;
@Excel(name = "产品 名")
private String name;
@Excel(name = "产品 编码")
private String code;
@Excel(name = "产品 规格")
private String specifications;
@Excel(name = "产品 图纸")
private String drawing;
@Excel(name = "描述")
private String descs;
@Excel(name = "")
private Long productTypeId;
@Excel(name = "")
private Long unitId;
@Excel(name = "检验阶段1 进货检验、 2 过程检验、 3 成品检验、 4 出货检验;; 如果有多个用逗号隔开,比如 1,4 就代表选中了进货检验和出货检验")
private String inspectionStage;
@Excel(name = "检验标准")
private String inspectionStandard;
@Excel(name = "1 可用0 不可用")
private Integer status;
@Excel(name = "备注")
private String remark;
@Excel(name = "删除标志,是否有效:1 可用 0不可用")
private Integer valid;
@Excel(name = "")
private Long creatorId;
@Excel(name = "创建人姓名")
private String creatorName;
@Excel(name = "创建时间")
private LocalDateTime createTime;
@Excel(name = "")
private Long updaterId;
@Excel(name = "更新人姓名")
private String updaterName;
@Excel(name = "更新时间")
private LocalDateTime updateTime;
@Excel(name = "版本号")
private Integer version;
}

ファイルの表示

@ -1,16 +0,0 @@
package com.cnbm.generator.code.mapper;
import com.cnbm.common.dao.BaseDao;
import com.cnbm.generator.code.entity.Product;
import org.apache.ibatis.annotations.Mapper;
/**
* 产品
*
* @author why
* @since 2022-08-01
*/
@Mapper
public interface ProductMapper extends BaseDao<Product> {
}

ファイルの表示

@ -1,5 +0,0 @@
<?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.cnbm.generator.code.mapper.ProductMapper">
</mapper>

ファイルの表示

@ -1,15 +0,0 @@
package com.cnbm.generator.code.service;
import com.cnbm.common.service.CrudService;
import com.cnbm.generator.code.dto.ProductDTO;
import com.cnbm.generator.code.entity.Product;
/**
* 产品
*
* @author why
* @since 2022-08-01
*/
public interface IProductService extends CrudService<Product, ProductDTO> {
}

ファイルの表示

@ -1,34 +0,0 @@
package com.cnbm.generator.code.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.cnbm.common.service.impl.CrudServiceImpl;
import com.cnbm.generator.code.dto.ProductDTO;
import com.cnbm.generator.code.mapper.ProductMapper;
import com.cnbm.generator.code.entity.Product;
import com.cnbm.generator.code.service.IProductService;
import org.apache.commons.lang3.StringUtils;
import org.springframework.stereotype.Service;
import java.util.Map;
/**
* 产品
*
* @author why
* @since 2022-08-01
*/
@Service
public class ProductServiceImpl extends CrudServiceImpl<ProductMapper, Product, ProductDTO> implements IProductService {
@Override
public QueryWrapper<Product> getWrapper(Map<String, Object> params){
String id = (String)params.get("id");
QueryWrapper<Product> wrapper = new QueryWrapper<>();
wrapper.eq(StringUtils.isNotBlank(id), "id", id);
return wrapper;
}
}