parent
19f36ef0f3
commit
32955adf13
@ -0,0 +1,102 @@
|
||||
package com.yunxi.scm.module.xxjj.controller.admin.enterprise;
|
||||
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
import javax.annotation.Resource;
|
||||
import org.springframework.validation.annotation.Validated;
|
||||
import org.springframework.security.access.prepost.PreAuthorize;
|
||||
import io.swagger.v3.oas.annotations.tags.Tag;
|
||||
import io.swagger.v3.oas.annotations.Parameter;
|
||||
import io.swagger.v3.oas.annotations.Operation;
|
||||
|
||||
import javax.validation.constraints.*;
|
||||
import javax.validation.*;
|
||||
import javax.servlet.http.*;
|
||||
import java.util.*;
|
||||
import java.io.IOException;
|
||||
|
||||
import com.yunxi.scm.framework.common.pojo.PageResult;
|
||||
import com.yunxi.scm.framework.common.pojo.CommonResult;
|
||||
import static com.yunxi.scm.framework.common.pojo.CommonResult.success;
|
||||
|
||||
import com.yunxi.scm.framework.excel.core.util.ExcelUtils;
|
||||
|
||||
import com.yunxi.scm.framework.operatelog.core.annotations.OperateLog;
|
||||
import static com.yunxi.scm.framework.operatelog.core.enums.OperateTypeEnum.*;
|
||||
|
||||
import com.yunxi.scm.module.xxjj.controller.admin.enterprise.vo.*;
|
||||
import com.yunxi.scm.module.xxjj.dal.dataobject.enterprise.EnterpriseDO;
|
||||
import com.yunxi.scm.module.xxjj.convert.enterprise.EnterpriseConvert;
|
||||
import com.yunxi.scm.module.xxjj.service.enterprise.EnterpriseService;
|
||||
|
||||
@Tag(name = "管理后台 - 企业信息")
|
||||
@RestController
|
||||
@RequestMapping("/xxjj/enterprise")
|
||||
@Validated
|
||||
public class EnterpriseController {
|
||||
|
||||
@Resource
|
||||
private EnterpriseService enterpriseService;
|
||||
|
||||
@PostMapping("/create")
|
||||
@Operation(summary = "创建企业信息")
|
||||
@PreAuthorize("@ss.hasPermission('xxjj:enterprise:create')")
|
||||
public CommonResult<Long> createEnterprise(@Valid @RequestBody EnterpriseCreateReqVO createReqVO) {
|
||||
return success(enterpriseService.createEnterprise(createReqVO));
|
||||
}
|
||||
|
||||
@PutMapping("/update")
|
||||
@Operation(summary = "更新企业信息")
|
||||
@PreAuthorize("@ss.hasPermission('xxjj:enterprise:update')")
|
||||
public CommonResult<Boolean> updateEnterprise(@Valid @RequestBody EnterpriseUpdateReqVO updateReqVO) {
|
||||
enterpriseService.updateEnterprise(updateReqVO);
|
||||
return success(true);
|
||||
}
|
||||
|
||||
@DeleteMapping("/delete")
|
||||
@Operation(summary = "删除企业信息")
|
||||
@Parameter(name = "id", description = "编号", required = true)
|
||||
@PreAuthorize("@ss.hasPermission('xxjj:enterprise:delete')")
|
||||
public CommonResult<Boolean> deleteEnterprise(@RequestParam("id") Long id) {
|
||||
enterpriseService.deleteEnterprise(id);
|
||||
return success(true);
|
||||
}
|
||||
|
||||
@GetMapping("/get")
|
||||
@Operation(summary = "获得企业信息")
|
||||
@Parameter(name = "id", description = "编号", required = true, example = "1024")
|
||||
@PreAuthorize("@ss.hasPermission('xxjj:enterprise:query')")
|
||||
public CommonResult<EnterpriseRespVO> getEnterprise(@RequestParam("id") Long id) {
|
||||
EnterpriseDO enterprise = enterpriseService.getEnterprise(id);
|
||||
return success(EnterpriseConvert.INSTANCE.convert(enterprise));
|
||||
}
|
||||
|
||||
@GetMapping("/list")
|
||||
@Operation(summary = "获得企业信息列表")
|
||||
@Parameter(name = "ids", description = "编号列表", required = true, example = "1024,2048")
|
||||
@PreAuthorize("@ss.hasPermission('xxjj:enterprise:query')")
|
||||
public CommonResult<List<EnterpriseRespVO>> getEnterpriseList(@RequestParam("ids") Collection<Long> ids) {
|
||||
List<EnterpriseDO> list = enterpriseService.getEnterpriseList(ids);
|
||||
return success(EnterpriseConvert.INSTANCE.convertList(list));
|
||||
}
|
||||
|
||||
@GetMapping("/page")
|
||||
@Operation(summary = "获得企业信息分页")
|
||||
@PreAuthorize("@ss.hasPermission('xxjj:enterprise:query')")
|
||||
public CommonResult<PageResult<EnterpriseRespVO>> getEnterprisePage(@Valid EnterprisePageReqVO pageVO) {
|
||||
PageResult<EnterpriseDO> pageResult = enterpriseService.getEnterprisePage(pageVO);
|
||||
return success(EnterpriseConvert.INSTANCE.convertPage(pageResult));
|
||||
}
|
||||
|
||||
@GetMapping("/export-excel")
|
||||
@Operation(summary = "导出企业信息 Excel")
|
||||
@PreAuthorize("@ss.hasPermission('xxjj:enterprise:export')")
|
||||
@OperateLog(type = EXPORT)
|
||||
public void exportEnterpriseExcel(@Valid EnterpriseExportReqVO exportReqVO,
|
||||
HttpServletResponse response) throws IOException {
|
||||
List<EnterpriseDO> list = enterpriseService.getEnterpriseList(exportReqVO);
|
||||
// 导出 Excel
|
||||
List<EnterpriseExcelVO> datas = EnterpriseConvert.INSTANCE.convertList02(list);
|
||||
ExcelUtils.write(response, "企业信息.xls", "数据", EnterpriseExcelVO.class, datas);
|
||||
}
|
||||
|
||||
}
|
@ -0,0 +1,49 @@
|
||||
package com.yunxi.scm.module.xxjj.controller.admin.enterprise.vo;
|
||||
|
||||
import io.swagger.v3.oas.annotations.media.Schema;
|
||||
import lombok.*;
|
||||
import java.util.*;
|
||||
import java.time.LocalDateTime;
|
||||
import java.time.LocalDateTime;
|
||||
import java.time.LocalDateTime;
|
||||
import java.time.LocalDateTime;
|
||||
import java.time.LocalDateTime;
|
||||
import java.time.LocalDateTime;
|
||||
import java.time.LocalDateTime;
|
||||
import java.time.LocalDateTime;
|
||||
import java.time.LocalDateTime;
|
||||
import java.time.LocalDateTime;
|
||||
|
||||
import com.alibaba.excel.annotation.ExcelProperty;
|
||||
import com.yunxi.scm.framework.excel.core.annotations.DictFormat;
|
||||
import com.yunxi.scm.framework.excel.core.convert.DictConvert;
|
||||
|
||||
|
||||
/**
|
||||
* 企业信息 Excel VO
|
||||
*
|
||||
* @author 长江云息
|
||||
*/
|
||||
@Data
|
||||
public class EnterpriseExcelVO {
|
||||
|
||||
@ExcelProperty("编号")
|
||||
private Long id;
|
||||
|
||||
@ExcelProperty("企业代码")
|
||||
private String code;
|
||||
|
||||
@ExcelProperty("企业名称")
|
||||
private String name;
|
||||
|
||||
@ExcelProperty("企业简称")
|
||||
private String shortName;
|
||||
|
||||
@ExcelProperty(value = "主体类型", converter = DictConvert.class)
|
||||
@DictFormat("main_type") // TODO 代码优化:建议设置到对应的 XXXDictTypeConstants 枚举类中
|
||||
private String mainType;
|
||||
|
||||
@ExcelProperty("创建时间")
|
||||
private LocalDateTime createTime;
|
||||
|
||||
}
|
@ -0,0 +1,31 @@
|
||||
package com.yunxi.scm.module.xxjj.controller.admin.enterprise.vo;
|
||||
|
||||
import lombok.*;
|
||||
import java.util.*;
|
||||
import io.swagger.v3.oas.annotations.media.Schema;
|
||||
import com.yunxi.scm.framework.common.pojo.PageParam;
|
||||
import org.springframework.format.annotation.DateTimeFormat;
|
||||
import java.time.LocalDateTime;
|
||||
|
||||
import static com.yunxi.scm.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND;
|
||||
|
||||
@Schema(description = "管理后台 - 企业信息分页 Request VO")
|
||||
@Data
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
@ToString(callSuper = true)
|
||||
public class EnterprisePageReqVO extends PageParam {
|
||||
|
||||
@Schema(description = "企业代码")
|
||||
private String code;
|
||||
|
||||
@Schema(description = "企业名称", example = "赵六")
|
||||
private String name;
|
||||
|
||||
@Schema(description = "主体类型", example = "2")
|
||||
private String mainType;
|
||||
|
||||
@Schema(description = "创建时间")
|
||||
@DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
|
||||
private LocalDateTime[] createTime;
|
||||
|
||||
}
|
@ -0,0 +1,19 @@
|
||||
package com.yunxi.scm.module.xxjj.controller.admin.enterprise.vo;
|
||||
|
||||
import io.swagger.v3.oas.annotations.media.Schema;
|
||||
import lombok.*;
|
||||
import java.time.LocalDateTime;
|
||||
|
||||
@Schema(description = "管理后台 - 企业信息 Response VO")
|
||||
@Data
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
@ToString(callSuper = true)
|
||||
public class EnterpriseRespVO extends EnterpriseBaseVO {
|
||||
|
||||
@Schema(description = "编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "7480")
|
||||
private Long id;
|
||||
|
||||
@Schema(description = "创建时间")
|
||||
private LocalDateTime createTime;
|
||||
|
||||
}
|
@ -0,0 +1,102 @@
|
||||
package com.yunxi.scm.module.xxjj.controller.admin.enterprisecontract;
|
||||
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
import javax.annotation.Resource;
|
||||
import org.springframework.validation.annotation.Validated;
|
||||
import org.springframework.security.access.prepost.PreAuthorize;
|
||||
import io.swagger.v3.oas.annotations.tags.Tag;
|
||||
import io.swagger.v3.oas.annotations.Parameter;
|
||||
import io.swagger.v3.oas.annotations.Operation;
|
||||
|
||||
import javax.validation.constraints.*;
|
||||
import javax.validation.*;
|
||||
import javax.servlet.http.*;
|
||||
import java.util.*;
|
||||
import java.io.IOException;
|
||||
|
||||
import com.yunxi.scm.framework.common.pojo.PageResult;
|
||||
import com.yunxi.scm.framework.common.pojo.CommonResult;
|
||||
import static com.yunxi.scm.framework.common.pojo.CommonResult.success;
|
||||
|
||||
import com.yunxi.scm.framework.excel.core.util.ExcelUtils;
|
||||
|
||||
import com.yunxi.scm.framework.operatelog.core.annotations.OperateLog;
|
||||
import static com.yunxi.scm.framework.operatelog.core.enums.OperateTypeEnum.*;
|
||||
|
||||
import com.yunxi.scm.module.xxjj.controller.admin.enterprisecontract.vo.*;
|
||||
import com.yunxi.scm.module.xxjj.dal.dataobject.enterprisecontract.EnterpriseContractDO;
|
||||
import com.yunxi.scm.module.xxjj.convert.enterprisecontract.EnterpriseContractConvert;
|
||||
import com.yunxi.scm.module.xxjj.service.enterprisecontract.EnterpriseContractService;
|
||||
|
||||
@Tag(name = "管理后台 - 企业合约")
|
||||
@RestController
|
||||
@RequestMapping("/xxjj/enterprise-contract")
|
||||
@Validated
|
||||
public class EnterpriseContractController {
|
||||
|
||||
@Resource
|
||||
private EnterpriseContractService enterpriseContractService;
|
||||
|
||||
@PostMapping("/create")
|
||||
@Operation(summary = "创建企业合约")
|
||||
@PreAuthorize("@ss.hasPermission('xxjj:enterprise-contract:create')")
|
||||
public CommonResult<Long> createEnterpriseContract(@Valid @RequestBody EnterpriseContractCreateReqVO createReqVO) {
|
||||
return success(enterpriseContractService.createEnterpriseContract(createReqVO));
|
||||
}
|
||||
|
||||
@PutMapping("/update")
|
||||
@Operation(summary = "更新企业合约")
|
||||
@PreAuthorize("@ss.hasPermission('xxjj:enterprise-contract:update')")
|
||||
public CommonResult<Boolean> updateEnterpriseContract(@Valid @RequestBody EnterpriseContractUpdateReqVO updateReqVO) {
|
||||
enterpriseContractService.updateEnterpriseContract(updateReqVO);
|
||||
return success(true);
|
||||
}
|
||||
|
||||
@DeleteMapping("/delete")
|
||||
@Operation(summary = "删除企业合约")
|
||||
@Parameter(name = "id", description = "编号", required = true)
|
||||
@PreAuthorize("@ss.hasPermission('xxjj:enterprise-contract:delete')")
|
||||
public CommonResult<Boolean> deleteEnterpriseContract(@RequestParam("id") Long id) {
|
||||
enterpriseContractService.deleteEnterpriseContract(id);
|
||||
return success(true);
|
||||
}
|
||||
|
||||
@GetMapping("/get")
|
||||
@Operation(summary = "获得企业合约")
|
||||
@Parameter(name = "id", description = "编号", required = true, example = "1024")
|
||||
@PreAuthorize("@ss.hasPermission('xxjj:enterprise-contract:query')")
|
||||
public CommonResult<EnterpriseContractRespVO> getEnterpriseContract(@RequestParam("id") Long id) {
|
||||
EnterpriseContractDO enterpriseContract = enterpriseContractService.getEnterpriseContract(id);
|
||||
return success(EnterpriseContractConvert.INSTANCE.convert(enterpriseContract));
|
||||
}
|
||||
|
||||
@GetMapping("/list")
|
||||
@Operation(summary = "获得企业合约列表")
|
||||
@Parameter(name = "ids", description = "编号列表", required = true, example = "1024,2048")
|
||||
@PreAuthorize("@ss.hasPermission('xxjj:enterprise-contract:query')")
|
||||
public CommonResult<List<EnterpriseContractRespVO>> getEnterpriseContractList(@RequestParam("ids") Collection<Long> ids) {
|
||||
List<EnterpriseContractDO> list = enterpriseContractService.getEnterpriseContractList(ids);
|
||||
return success(EnterpriseContractConvert.INSTANCE.convertList(list));
|
||||
}
|
||||
|
||||
@GetMapping("/page")
|
||||
@Operation(summary = "获得企业合约分页")
|
||||
@PreAuthorize("@ss.hasPermission('xxjj:enterprise-contract:query')")
|
||||
public CommonResult<PageResult<EnterpriseContractRespVO>> getEnterpriseContractPage(@Valid EnterpriseContractPageReqVO pageVO) {
|
||||
PageResult<EnterpriseContractDO> pageResult = enterpriseContractService.getEnterpriseContractPage(pageVO);
|
||||
return success(EnterpriseContractConvert.INSTANCE.convertPage(pageResult));
|
||||
}
|
||||
|
||||
@GetMapping("/export-excel")
|
||||
@Operation(summary = "导出企业合约 Excel")
|
||||
@PreAuthorize("@ss.hasPermission('xxjj:enterprise-contract:export')")
|
||||
@OperateLog(type = EXPORT)
|
||||
public void exportEnterpriseContractExcel(@Valid EnterpriseContractExportReqVO exportReqVO,
|
||||
HttpServletResponse response) throws IOException {
|
||||
List<EnterpriseContractDO> list = enterpriseContractService.getEnterpriseContractList(exportReqVO);
|
||||
// 导出 Excel
|
||||
List<EnterpriseContractExcelVO> datas = EnterpriseContractConvert.INSTANCE.convertList02(list);
|
||||
ExcelUtils.write(response, "企业合约.xls", "数据", EnterpriseContractExcelVO.class, datas);
|
||||
}
|
||||
|
||||
}
|
@ -0,0 +1,14 @@
|
||||
package com.yunxi.scm.module.xxjj.controller.admin.enterprisecontract.vo;
|
||||
|
||||
import lombok.*;
|
||||
import java.util.*;
|
||||
import io.swagger.v3.oas.annotations.media.Schema;
|
||||
import javax.validation.constraints.*;
|
||||
|
||||
@Schema(description = "管理后台 - 企业合约创建 Request VO")
|
||||
@Data
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
@ToString(callSuper = true)
|
||||
public class EnterpriseContractCreateReqVO extends EnterpriseContractBaseVO {
|
||||
|
||||
}
|
@ -0,0 +1,88 @@
|
||||
package com.yunxi.scm.module.xxjj.controller.admin.enterprisecontract.vo;
|
||||
|
||||
import io.swagger.v3.oas.annotations.media.Schema;
|
||||
import lombok.*;
|
||||
import java.util.*;
|
||||
import java.time.LocalDateTime;
|
||||
import java.time.LocalDateTime;
|
||||
import java.math.BigDecimal;
|
||||
import java.math.BigDecimal;
|
||||
import java.math.BigDecimal;
|
||||
import java.time.LocalDateTime;
|
||||
import java.time.LocalDateTime;
|
||||
|
||||
import com.alibaba.excel.annotation.ExcelProperty;
|
||||
import com.yunxi.scm.framework.excel.core.annotations.DictFormat;
|
||||
import com.yunxi.scm.framework.excel.core.convert.DictConvert;
|
||||
|
||||
|
||||
/**
|
||||
* 企业合约 Excel VO
|
||||
*
|
||||
* @author 长江云息
|
||||
*/
|
||||
@Data
|
||||
public class EnterpriseContractExcelVO {
|
||||
|
||||
@ExcelProperty("编号")
|
||||
private Long id;
|
||||
|
||||
@ExcelProperty("企业编号")
|
||||
private Long enterpriseId;
|
||||
|
||||
@ExcelProperty("合约编号")
|
||||
private String contractCode;
|
||||
|
||||
@ExcelProperty("产品编号")
|
||||
private String productCode;
|
||||
|
||||
@ExcelProperty("产品名称")
|
||||
private String productName;
|
||||
|
||||
@ExcelProperty("订单编号")
|
||||
private String orderCode;
|
||||
|
||||
@ExcelProperty(value = "合约状态", converter = DictConvert.class)
|
||||
@DictFormat("contract_state") // TODO 代码优化:建议设置到对应的 XXXDictTypeConstants 枚举类中
|
||||
private String contractState;
|
||||
|
||||
@ExcelProperty("合约开始时间")
|
||||
private LocalDateTime contractStart;
|
||||
|
||||
@ExcelProperty("合约结束时间")
|
||||
private LocalDateTime contractEnd;
|
||||
|
||||
@ExcelProperty("订单金额")
|
||||
private BigDecimal orderAmount;
|
||||
|
||||
@ExcelProperty("折扣金额")
|
||||
private BigDecimal discountAmount;
|
||||
|
||||
@ExcelProperty("应付金额")
|
||||
private BigDecimal payableAmount;
|
||||
|
||||
@ExcelProperty(value = "支付方式", converter = DictConvert.class)
|
||||
@DictFormat("pay_type") // TODO 代码优化:建议设置到对应的 XXXDictTypeConstants 枚举类中
|
||||
private String payType;
|
||||
|
||||
@ExcelProperty(value = "订单状态", converter = DictConvert.class)
|
||||
@DictFormat("order_state") // TODO 代码优化:建议设置到对应的 XXXDictTypeConstants 枚举类中
|
||||
private String orderState;
|
||||
|
||||
@ExcelProperty(value = "订单来源", converter = DictConvert.class)
|
||||
@DictFormat("order_source") // TODO 代码优化:建议设置到对应的 XXXDictTypeConstants 枚举类中
|
||||
private String orderSource;
|
||||
|
||||
@ExcelProperty("销售人员编号")
|
||||
private Long salesPersonId;
|
||||
|
||||
@ExcelProperty("销售人员姓名")
|
||||
private String salesPersonName;
|
||||
|
||||
@ExcelProperty("描述")
|
||||
private String description;
|
||||
|
||||
@ExcelProperty("创建时间")
|
||||
private LocalDateTime createTime;
|
||||
|
||||
}
|
@ -0,0 +1,63 @@
|
||||
package com.yunxi.scm.module.xxjj.controller.admin.enterprisecontract.vo;
|
||||
|
||||
import lombok.*;
|
||||
import java.util.*;
|
||||
import io.swagger.v3.oas.annotations.media.Schema;
|
||||
import com.yunxi.scm.framework.common.pojo.PageParam;
|
||||
import org.springframework.format.annotation.DateTimeFormat;
|
||||
import java.time.LocalDateTime;
|
||||
|
||||
import static com.yunxi.scm.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND;
|
||||
|
||||
@Schema(description = "管理后台 - 企业合约分页 Request VO")
|
||||
@Data
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
@ToString(callSuper = true)
|
||||
public class EnterpriseContractPageReqVO extends PageParam {
|
||||
|
||||
@Schema(description = "企业编号", example = "13563")
|
||||
private Long enterpriseId;
|
||||
|
||||
@Schema(description = "合约编号")
|
||||
private String contractCode;
|
||||
|
||||
@Schema(description = "产品编号")
|
||||
private String productCode;
|
||||
|
||||
@Schema(description = "产品名称", example = "张三")
|
||||
private String productName;
|
||||
|
||||
@Schema(description = "订单编号")
|
||||
private String orderCode;
|
||||
|
||||
@Schema(description = "合约状态")
|
||||
private String contractState;
|
||||
|
||||
@Schema(description = "合约开始时间")
|
||||
@DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
|
||||
private LocalDateTime[] contractStart;
|
||||
|
||||
@Schema(description = "合约结束时间")
|
||||
@DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
|
||||
private LocalDateTime[] contractEnd;
|
||||
|
||||
@Schema(description = "支付方式", example = "1")
|
||||
private String payType;
|
||||
|
||||
@Schema(description = "订单状态")
|
||||
private String orderState;
|
||||
|
||||
@Schema(description = "订单来源")
|
||||
private String orderSource;
|
||||
|
||||
@Schema(description = "销售人员编号", example = "4551")
|
||||
private Long salesPersonId;
|
||||
|
||||
@Schema(description = "销售人员姓名", example = "张三")
|
||||
private String salesPersonName;
|
||||
|
||||
@Schema(description = "创建时间")
|
||||
@DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
|
||||
private LocalDateTime[] createTime;
|
||||
|
||||
}
|
@ -0,0 +1,19 @@
|
||||
package com.yunxi.scm.module.xxjj.controller.admin.enterprisecontract.vo;
|
||||
|
||||
import io.swagger.v3.oas.annotations.media.Schema;
|
||||
import lombok.*;
|
||||
import java.time.LocalDateTime;
|
||||
|
||||
@Schema(description = "管理后台 - 企业合约 Response VO")
|
||||
@Data
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
@ToString(callSuper = true)
|
||||
public class EnterpriseContractRespVO extends EnterpriseContractBaseVO {
|
||||
|
||||
@Schema(description = "编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "8017")
|
||||
private Long id;
|
||||
|
||||
@Schema(description = "创建时间", requiredMode = Schema.RequiredMode.REQUIRED)
|
||||
private LocalDateTime createTime;
|
||||
|
||||
}
|
@ -0,0 +1,18 @@
|
||||
package com.yunxi.scm.module.xxjj.controller.admin.enterprisecontract.vo;
|
||||
|
||||
import io.swagger.v3.oas.annotations.media.Schema;
|
||||
import lombok.*;
|
||||
import java.util.*;
|
||||
import javax.validation.constraints.*;
|
||||
|
||||
@Schema(description = "管理后台 - 企业合约更新 Request VO")
|
||||
@Data
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
@ToString(callSuper = true)
|
||||
public class EnterpriseContractUpdateReqVO extends EnterpriseContractBaseVO {
|
||||
|
||||
@Schema(description = "编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "8017")
|
||||
@NotNull(message = "编号不能为空")
|
||||
private Long id;
|
||||
|
||||
}
|
@ -0,0 +1,102 @@
|
||||
package com.yunxi.scm.module.xxjj.controller.admin.materialquality;
|
||||
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
import javax.annotation.Resource;
|
||||
import org.springframework.validation.annotation.Validated;
|
||||
import org.springframework.security.access.prepost.PreAuthorize;
|
||||
import io.swagger.v3.oas.annotations.tags.Tag;
|
||||
import io.swagger.v3.oas.annotations.Parameter;
|
||||
import io.swagger.v3.oas.annotations.Operation;
|
||||
|
||||
import javax.validation.constraints.*;
|
||||
import javax.validation.*;
|
||||
import javax.servlet.http.*;
|
||||
import java.util.*;
|
||||
import java.io.IOException;
|
||||
|
||||
import com.yunxi.scm.framework.common.pojo.PageResult;
|
||||
import com.yunxi.scm.framework.common.pojo.CommonResult;
|
||||
import static com.yunxi.scm.framework.common.pojo.CommonResult.success;
|
||||
|
||||
import com.yunxi.scm.framework.excel.core.util.ExcelUtils;
|
||||
|
||||
import com.yunxi.scm.framework.operatelog.core.annotations.OperateLog;
|
||||
import static com.yunxi.scm.framework.operatelog.core.enums.OperateTypeEnum.*;
|
||||
|
||||
import com.yunxi.scm.module.xxjj.controller.admin.materialquality.vo.*;
|
||||
import com.yunxi.scm.module.xxjj.dal.dataobject.materialquality.MaterialQualityDO;
|
||||
import com.yunxi.scm.module.xxjj.convert.materialquality.MaterialQualityConvert;
|
||||
import com.yunxi.scm.module.xxjj.service.materialquality.MaterialQualityService;
|
||||
|
||||
@Tag(name = "管理后台 - 物料材质")
|
||||
@RestController
|
||||
@RequestMapping("/xxjj/material-quality")
|
||||
@Validated
|
||||
public class MaterialQualityController {
|
||||
|
||||
@Resource
|
||||
private MaterialQualityService materialQualityService;
|
||||
|
||||
@PostMapping("/create")
|
||||
@Operation(summary = "创建物料材质")
|
||||
@PreAuthorize("@ss.hasPermission('xxjj:material-quality:create')")
|
||||
public CommonResult<Long> createMaterialQuality(@Valid @RequestBody MaterialQualityCreateReqVO createReqVO) {
|
||||
return success(materialQualityService.createMaterialQuality(createReqVO));
|
||||
}
|
||||
|
||||
@PutMapping("/update")
|
||||
@Operation(summary = "更新物料材质")
|
||||
@PreAuthorize("@ss.hasPermission('xxjj:material-quality:update')")
|
||||
public CommonResult<Boolean> updateMaterialQuality(@Valid @RequestBody MaterialQualityUpdateReqVO updateReqVO) {
|
||||
materialQualityService.updateMaterialQuality(updateReqVO);
|
||||
return success(true);
|
||||
}
|
||||
|
||||
@DeleteMapping("/delete")
|
||||
@Operation(summary = "删除物料材质")
|
||||
@Parameter(name = "id", description = "编号", required = true)
|
||||
@PreAuthorize("@ss.hasPermission('xxjj:material-quality:delete')")
|
||||
public CommonResult<Boolean> deleteMaterialQuality(@RequestParam("id") Long id) {
|
||||
materialQualityService.deleteMaterialQuality(id);
|
||||
return success(true);
|
||||
}
|
||||
|
||||
@GetMapping("/get")
|
||||
@Operation(summary = "获得物料材质")
|
||||
@Parameter(name = "id", description = "编号", required = true, example = "1024")
|
||||
@PreAuthorize("@ss.hasPermission('xxjj:material-quality:query')")
|
||||
public CommonResult<MaterialQualityRespVO> getMaterialQuality(@RequestParam("id") Long id) {
|
||||
MaterialQualityDO materialQuality = materialQualityService.getMaterialQuality(id);
|
||||
return success(MaterialQualityConvert.INSTANCE.convert(materialQuality));
|
||||
}
|
||||
|
||||
@GetMapping("/list")
|
||||
@Operation(summary = "获得物料材质列表")
|
||||
@Parameter(name = "ids", description = "编号列表", required = true, example = "1024,2048")
|
||||
@PreAuthorize("@ss.hasPermission('xxjj:material-quality:query')")
|
||||
public CommonResult<List<MaterialQualityRespVO>> getMaterialQualityList(@RequestParam("ids") Collection<Long> ids) {
|
||||
List<MaterialQualityDO> list = materialQualityService.getMaterialQualityList(ids);
|
||||
return success(MaterialQualityConvert.INSTANCE.convertList(list));
|
||||
}
|
||||
|
||||
@GetMapping("/page")
|
||||
@Operation(summary = "获得物料材质分页")
|
||||
@PreAuthorize("@ss.hasPermission('xxjj:material-quality:query')")
|
||||
public CommonResult<PageResult<MaterialQualityRespVO>> getMaterialQualityPage(@Valid MaterialQualityPageReqVO pageVO) {
|
||||
PageResult<MaterialQualityDO> pageResult = materialQualityService.getMaterialQualityPage(pageVO);
|
||||
return success(MaterialQualityConvert.INSTANCE.convertPage(pageResult));
|
||||
}
|
||||
|
||||
@GetMapping("/export-excel")
|
||||
@Operation(summary = "导出物料材质 Excel")
|
||||
@PreAuthorize("@ss.hasPermission('xxjj:material-quality:export')")
|
||||
@OperateLog(type = EXPORT)
|
||||
public void exportMaterialQualityExcel(@Valid MaterialQualityExportReqVO exportReqVO,
|
||||
HttpServletResponse response) throws IOException {
|
||||
List<MaterialQualityDO> list = materialQualityService.getMaterialQualityList(exportReqVO);
|
||||
// 导出 Excel
|
||||
List<MaterialQualityExcelVO> datas = MaterialQualityConvert.INSTANCE.convertList02(list);
|
||||
ExcelUtils.write(response, "物料材质.xls", "数据", MaterialQualityExcelVO.class, datas);
|
||||
}
|
||||
|
||||
}
|
@ -0,0 +1,14 @@
|
||||
package com.yunxi.scm.module.xxjj.controller.admin.materialquality.vo;
|
||||
|
||||
import lombok.*;
|
||||
import java.util.*;
|
||||
import io.swagger.v3.oas.annotations.media.Schema;
|
||||
import javax.validation.constraints.*;
|
||||
|
||||
@Schema(description = "管理后台 - 物料材质创建 Request VO")
|
||||
@Data
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
@ToString(callSuper = true)
|
||||
public class MaterialQualityCreateReqVO extends MaterialQualityBaseVO {
|
||||
|
||||
}
|
@ -0,0 +1,19 @@
|
||||
package com.yunxi.scm.module.xxjj.controller.admin.materialquality.vo;
|
||||
|
||||
import io.swagger.v3.oas.annotations.media.Schema;
|
||||
import lombok.*;
|
||||
import java.time.LocalDateTime;
|
||||
|
||||
@Schema(description = "管理后台 - 物料材质 Response VO")
|
||||
@Data
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
@ToString(callSuper = true)
|
||||
public class MaterialQualityRespVO extends MaterialQualityBaseVO {
|
||||
|
||||
@Schema(description = "编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "3194")
|
||||
private Long id;
|
||||
|
||||
@Schema(description = "创建时间", requiredMode = Schema.RequiredMode.REQUIRED)
|
||||
private LocalDateTime createTime;
|
||||
|
||||
}
|
@ -0,0 +1,18 @@
|
||||
package com.yunxi.scm.module.xxjj.controller.admin.materialquality.vo;
|
||||
|
||||
import io.swagger.v3.oas.annotations.media.Schema;
|
||||
import lombok.*;
|
||||
import java.util.*;
|
||||
import javax.validation.constraints.*;
|
||||
|
||||
@Schema(description = "管理后台 - 物料材质更新 Request VO")
|
||||
@Data
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
@ToString(callSuper = true)
|
||||
public class MaterialQualityUpdateReqVO extends MaterialQualityBaseVO {
|
||||
|
||||
@Schema(description = "编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "3194")
|
||||
@NotNull(message = "编号不能为空")
|
||||
private Long id;
|
||||
|
||||
}
|
@ -0,0 +1,102 @@
|
||||
package com.yunxi.scm.module.xxjj.controller.admin.productionprocesses;
|
||||
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
import javax.annotation.Resource;
|
||||
import org.springframework.validation.annotation.Validated;
|
||||
import org.springframework.security.access.prepost.PreAuthorize;
|
||||
import io.swagger.v3.oas.annotations.tags.Tag;
|
||||
import io.swagger.v3.oas.annotations.Parameter;
|
||||
import io.swagger.v3.oas.annotations.Operation;
|
||||
|
||||
import javax.validation.constraints.*;
|
||||
import javax.validation.*;
|
||||
import javax.servlet.http.*;
|
||||
import java.util.*;
|
||||
import java.io.IOException;
|
||||
|
||||
import com.yunxi.scm.framework.common.pojo.PageResult;
|
||||
import com.yunxi.scm.framework.common.pojo.CommonResult;
|
||||
import static com.yunxi.scm.framework.common.pojo.CommonResult.success;
|
||||
|
||||
import com.yunxi.scm.framework.excel.core.util.ExcelUtils;
|
||||
|
||||
import com.yunxi.scm.framework.operatelog.core.annotations.OperateLog;
|
||||
import static com.yunxi.scm.framework.operatelog.core.enums.OperateTypeEnum.*;
|
||||
|
||||
import com.yunxi.scm.module.xxjj.controller.admin.productionprocesses.vo.*;
|
||||
import com.yunxi.scm.module.xxjj.dal.dataobject.productionprocesses.ProductionProcessesDO;
|
||||
import com.yunxi.scm.module.xxjj.convert.productionprocesses.ProductionProcessesConvert;
|
||||
import com.yunxi.scm.module.xxjj.service.productionprocesses.ProductionProcessesService;
|
||||
|
||||
@Tag(name = "管理后台 - 工序")
|
||||
@RestController
|
||||
@RequestMapping("/xxjj/production-processes")
|
||||
@Validated
|
||||
public class ProductionProcessesController {
|
||||
|
||||
@Resource
|
||||
private ProductionProcessesService productionProcessesService;
|
||||
|
||||
@PostMapping("/create")
|
||||
@Operation(summary = "创建工序")
|
||||
@PreAuthorize("@ss.hasPermission('xxjj:production-processes:create')")
|
||||
public CommonResult<Long> createProductionProcesses(@Valid @RequestBody ProductionProcessesCreateReqVO createReqVO) {
|
||||
return success(productionProcessesService.createProductionProcesses(createReqVO));
|
||||
}
|
||||
|
||||
@PutMapping("/update")
|
||||
@Operation(summary = "更新工序")
|
||||
@PreAuthorize("@ss.hasPermission('xxjj:production-processes:update')")
|
||||
public CommonResult<Boolean> updateProductionProcesses(@Valid @RequestBody ProductionProcessesUpdateReqVO updateReqVO) {
|
||||
productionProcessesService.updateProductionProcesses(updateReqVO);
|
||||
return success(true);
|
||||
}
|
||||
|
||||
@DeleteMapping("/delete")
|
||||
@Operation(summary = "删除工序")
|
||||
@Parameter(name = "id", description = "编号", required = true)
|
||||
@PreAuthorize("@ss.hasPermission('xxjj:production-processes:delete')")
|
||||
public CommonResult<Boolean> deleteProductionProcesses(@RequestParam("id") Long id) {
|
||||
productionProcessesService.deleteProductionProcesses(id);
|
||||
return success(true);
|
||||
}
|
||||
|
||||
@GetMapping("/get")
|
||||
@Operation(summary = "获得工序")
|
||||
@Parameter(name = "id", description = "编号", required = true, example = "1024")
|
||||
@PreAuthorize("@ss.hasPermission('xxjj:production-processes:query')")
|
||||
public CommonResult<ProductionProcessesRespVO> getProductionProcesses(@RequestParam("id") Long id) {
|
||||
ProductionProcessesDO productionProcesses = productionProcessesService.getProductionProcesses(id);
|
||||
return success(ProductionProcessesConvert.INSTANCE.convert(productionProcesses));
|
||||
}
|
||||
|
||||
@GetMapping("/list")
|
||||
@Operation(summary = "获得工序列表")
|
||||
@Parameter(name = "ids", description = "编号列表", required = true, example = "1024,2048")
|
||||
@PreAuthorize("@ss.hasPermission('xxjj:production-processes:query')")
|
||||
public CommonResult<List<ProductionProcessesRespVO>> getProductionProcessesList(@RequestParam("ids") Collection<Long> ids) {
|
||||
List<ProductionProcessesDO> list = productionProcessesService.getProductionProcessesList(ids);
|
||||
return success(ProductionProcessesConvert.INSTANCE.convertList(list));
|
||||
}
|
||||
|
||||
@GetMapping("/page")
|
||||
@Operation(summary = "获得工序分页")
|
||||
@PreAuthorize("@ss.hasPermission('xxjj:production-processes:query')")
|
||||
public CommonResult<PageResult<ProductionProcessesRespVO>> getProductionProcessesPage(@Valid ProductionProcessesPageReqVO pageVO) {
|
||||
PageResult<ProductionProcessesDO> pageResult = productionProcessesService.getProductionProcessesPage(pageVO);
|
||||
return success(ProductionProcessesConvert.INSTANCE.convertPage(pageResult));
|
||||
}
|
||||
|
||||
@GetMapping("/export-excel")
|
||||
@Operation(summary = "导出工序 Excel")
|
||||
@PreAuthorize("@ss.hasPermission('xxjj:production-processes:export')")
|
||||
@OperateLog(type = EXPORT)
|
||||
public void exportProductionProcessesExcel(@Valid ProductionProcessesExportReqVO exportReqVO,
|
||||
HttpServletResponse response) throws IOException {
|
||||
List<ProductionProcessesDO> list = productionProcessesService.getProductionProcessesList(exportReqVO);
|
||||
// 导出 Excel
|
||||
List<ProductionProcessesExcelVO> datas = ProductionProcessesConvert.INSTANCE.convertList02(list);
|
||||
ExcelUtils.write(response, "工序.xls", "数据", ProductionProcessesExcelVO.class, datas);
|
||||
}
|
||||
|
||||
}
|
@ -0,0 +1,14 @@
|
||||
package com.yunxi.scm.module.xxjj.controller.admin.productionprocesses.vo;
|
||||
|
||||
import lombok.*;
|
||||
import java.util.*;
|
||||
import io.swagger.v3.oas.annotations.media.Schema;
|
||||
import javax.validation.constraints.*;
|
||||
|
||||
@Schema(description = "管理后台 - 工序创建 Request VO")
|
||||
@Data
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
@ToString(callSuper = true)
|
||||
public class ProductionProcessesCreateReqVO extends ProductionProcessesBaseVO {
|
||||
|
||||
}
|
@ -0,0 +1,19 @@
|
||||
package com.yunxi.scm.module.xxjj.controller.admin.productionprocesses.vo;
|
||||
|
||||
import io.swagger.v3.oas.annotations.media.Schema;
|
||||
import lombok.*;
|
||||
import java.time.LocalDateTime;
|
||||
|
||||
@Schema(description = "管理后台 - 工序 Response VO")
|
||||
@Data
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
@ToString(callSuper = true)
|
||||
public class ProductionProcessesRespVO extends ProductionProcessesBaseVO {
|
||||
|
||||
@Schema(description = "编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "23665")
|
||||
private Long id;
|
||||
|
||||
@Schema(description = "创建时间", requiredMode = Schema.RequiredMode.REQUIRED)
|
||||
private LocalDateTime createTime;
|
||||
|
||||
}
|
@ -0,0 +1,18 @@
|
||||
package com.yunxi.scm.module.xxjj.controller.admin.productionprocesses.vo;
|
||||
|
||||
import io.swagger.v3.oas.annotations.media.Schema;
|
||||
import lombok.*;
|
||||
import java.util.*;
|
||||
import javax.validation.constraints.*;
|
||||
|
||||
@Schema(description = "管理后台 - 工序更新 Request VO")
|
||||
@Data
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
@ToString(callSuper = true)
|
||||
public class ProductionProcessesUpdateReqVO extends ProductionProcessesBaseVO {
|
||||
|
||||
@Schema(description = "编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "23665")
|
||||
@NotNull(message = "编号不能为空")
|
||||
private Long id;
|
||||
|
||||
}
|
@ -0,0 +1,34 @@
|
||||
package com.yunxi.scm.module.xxjj.convert.enterprise;
|
||||
|
||||
import java.util.*;
|
||||
|
||||
import com.yunxi.scm.framework.common.pojo.PageResult;
|
||||
|
||||
import org.mapstruct.Mapper;
|
||||
import org.mapstruct.factory.Mappers;
|
||||
import com.yunxi.scm.module.xxjj.controller.admin.enterprise.vo.*;
|
||||
import com.yunxi.scm.module.xxjj.dal.dataobject.enterprise.EnterpriseDO;
|
||||
|
||||
/**
|
||||
* 企业信息 Convert
|
||||
*
|
||||
* @author 长江云息
|
||||
*/
|
||||
@Mapper
|
||||
public interface EnterpriseConvert {
|
||||
|
||||
EnterpriseConvert INSTANCE = Mappers.getMapper(EnterpriseConvert.class);
|
||||
|
||||
EnterpriseDO convert(EnterpriseCreateReqVO bean);
|
||||
|
||||
EnterpriseDO convert(EnterpriseUpdateReqVO bean);
|
||||
|
||||
EnterpriseRespVO convert(EnterpriseDO bean);
|
||||
|
||||
List<EnterpriseRespVO> convertList(List<EnterpriseDO> list);
|
||||
|
||||
PageResult<EnterpriseRespVO> convertPage(PageResult<EnterpriseDO> page);
|
||||
|
||||
List<EnterpriseExcelVO> convertList02(List<EnterpriseDO> list);
|
||||
|
||||
}
|
@ -0,0 +1,34 @@
|
||||
package com.yunxi.scm.module.xxjj.convert.enterprisecontract;
|
||||
|
||||
import java.util.*;
|
||||
|
||||
import com.yunxi.scm.framework.common.pojo.PageResult;
|
||||
|
||||
import org.mapstruct.Mapper;
|
||||
import org.mapstruct.factory.Mappers;
|
||||
import com.yunxi.scm.module.xxjj.controller.admin.enterprisecontract.vo.*;
|
||||
import com.yunxi.scm.module.xxjj.dal.dataobject.enterprisecontract.EnterpriseContractDO;
|
||||
|
||||
/**
|
||||
* 企业合约 Convert
|
||||
*
|
||||
* @author 长江云息
|
||||
*/
|
||||
@Mapper
|
||||
public interface EnterpriseContractConvert {
|
||||
|
||||
EnterpriseContractConvert INSTANCE = Mappers.getMapper(EnterpriseContractConvert.class);
|
||||
|
||||
EnterpriseContractDO convert(EnterpriseContractCreateReqVO bean);
|
||||
|
||||
EnterpriseContractDO convert(EnterpriseContractUpdateReqVO bean);
|
||||
|
||||
EnterpriseContractRespVO convert(EnterpriseContractDO bean);
|
||||
|
||||
List<EnterpriseContractRespVO> convertList(List<EnterpriseContractDO> list);
|
||||
|
||||
PageResult<EnterpriseContractRespVO> convertPage(PageResult<EnterpriseContractDO> page);
|
||||
|
||||
List<EnterpriseContractExcelVO> convertList02(List<EnterpriseContractDO> list);
|
||||
|
||||
}
|
@ -0,0 +1,34 @@
|
||||
package com.yunxi.scm.module.xxjj.convert.materialquality;
|
||||
|
||||
import java.util.*;
|
||||
|
||||
import com.yunxi.scm.framework.common.pojo.PageResult;
|
||||
|
||||
import org.mapstruct.Mapper;
|
||||
import org.mapstruct.factory.Mappers;
|
||||
import com.yunxi.scm.module.xxjj.controller.admin.materialquality.vo.*;
|
||||
import com.yunxi.scm.module.xxjj.dal.dataobject.materialquality.MaterialQualityDO;
|
||||
|
||||
/**
|
||||
* 物料材质 Convert
|
||||
*
|
||||
* @author 芋道源码
|
||||
*/
|
||||
@Mapper
|
||||
public interface MaterialQualityConvert {
|
||||
|
||||
MaterialQualityConvert INSTANCE = Mappers.getMapper(MaterialQualityConvert.class);
|
||||
|
||||
MaterialQualityDO convert(MaterialQualityCreateReqVO bean);
|
||||
|
||||
MaterialQualityDO convert(MaterialQualityUpdateReqVO bean);
|
||||
|
||||
MaterialQualityRespVO convert(MaterialQualityDO bean);
|
||||
|
||||
List<MaterialQualityRespVO> convertList(List<MaterialQualityDO> list);
|
||||
|
||||
PageResult<MaterialQualityRespVO> convertPage(PageResult<MaterialQualityDO> page);
|
||||
|
||||
List<MaterialQualityExcelVO> convertList02(List<MaterialQualityDO> list);
|
||||
|
||||
}
|
@ -0,0 +1,34 @@
|
||||
package com.yunxi.scm.module.xxjj.convert.productionprocesses;
|
||||
|
||||
import java.util.*;
|
||||
|
||||
import com.yunxi.scm.framework.common.pojo.PageResult;
|
||||
|
||||
import org.mapstruct.Mapper;
|
||||
import org.mapstruct.factory.Mappers;
|
||||
import com.yunxi.scm.module.xxjj.controller.admin.productionprocesses.vo.*;
|
||||
import com.yunxi.scm.module.xxjj.dal.dataobject.productionprocesses.ProductionProcessesDO;
|
||||
|
||||
/**
|
||||
* 工序 Convert
|
||||
*
|
||||
* @author 芋道源码
|
||||
*/
|
||||
@Mapper
|
||||
public interface ProductionProcessesConvert {
|
||||
|
||||
ProductionProcessesConvert INSTANCE = Mappers.getMapper(ProductionProcessesConvert.class);
|
||||
|
||||
ProductionProcessesDO convert(ProductionProcessesCreateReqVO bean);
|
||||
|
||||
ProductionProcessesDO convert(ProductionProcessesUpdateReqVO bean);
|
||||
|
||||
ProductionProcessesRespVO convert(ProductionProcessesDO bean);
|
||||
|
||||
List<ProductionProcessesRespVO> convertList(List<ProductionProcessesDO> list);
|
||||
|
||||
PageResult<ProductionProcessesRespVO> convertPage(PageResult<ProductionProcessesDO> page);
|
||||
|
||||
List<ProductionProcessesExcelVO> convertList02(List<ProductionProcessesDO> list);
|
||||
|
||||
}
|
@ -0,0 +1,112 @@
|
||||
package com.yunxi.scm.module.xxjj.dal.dataobject.enterprisecontract;
|
||||
|
||||
import lombok.*;
|
||||
import java.util.*;
|
||||
import java.time.LocalDateTime;
|
||||
import java.time.LocalDateTime;
|
||||
import java.math.BigDecimal;
|
||||
import java.math.BigDecimal;
|
||||
import java.math.BigDecimal;
|
||||
import java.time.LocalDateTime;
|
||||
import java.time.LocalDateTime;
|
||||
import com.baomidou.mybatisplus.annotation.*;
|
||||
import com.yunxi.scm.framework.mybatis.core.dataobject.BaseDO;
|
||||
|
||||
/**
|
||||
* 企业合约 DO
|
||||
*
|
||||
* @author 长江云息
|
||||
*/
|
||||
@TableName("xxjj_enterprise_contract")
|
||||
@KeySequence("xxjj_enterprise_contract_seq") // 用于 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库的主键自增。如果是 MySQL 等数据库,可不写。
|
||||
@Data
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
@ToString(callSuper = true)
|
||||
@Builder
|
||||
@NoArgsConstructor
|
||||
@AllArgsConstructor
|
||||
public class EnterpriseContractDO extends BaseDO {
|
||||
|
||||
/**
|
||||
* 编号
|
||||
*/
|
||||
@TableId
|
||||
private Long id;
|
||||
/**
|
||||
* 企业编号
|
||||
*/
|
||||
private Long enterpriseId;
|
||||
/**
|
||||
* 合约编号
|
||||
*/
|
||||
private String contractCode;
|
||||
/**
|
||||
* 产品编号
|
||||
*/
|
||||
private String productCode;
|
||||
/**
|
||||
* 产品名称
|
||||
*/
|
||||
private String productName;
|
||||
/**
|
||||
* 订单编号
|
||||
*/
|
||||
private String orderCode;
|
||||
/**
|
||||
* 合约状态
|
||||
*
|
||||
* 枚举 {@link TODO contract_state 对应的类}
|
||||
*/
|
||||
private String contractState;
|
||||
/**
|
||||
* 合约开始时间
|
||||
*/
|
||||
private LocalDateTime contractStart;
|
||||
/**
|
||||
* 合约结束时间
|
||||
*/
|
||||
private LocalDateTime contractEnd;
|
||||
/**
|
||||
* 订单金额
|
||||
*/
|
||||
private BigDecimal orderAmount;
|
||||
/**
|
||||
* 折扣金额
|
||||
*/
|
||||
private BigDecimal discountAmount;
|
||||
/**
|
||||
* 应付金额
|
||||
*/
|
||||
private BigDecimal payableAmount;
|
||||
/**
|
||||
* 支付方式
|
||||
*
|
||||
* 枚举 {@link TODO pay_type 对应的类}
|
||||
*/
|
||||
private String payType;
|
||||
/**
|
||||
* 订单状态
|
||||
*
|
||||
* 枚举 {@link TODO order_state 对应的类}
|
||||
*/
|
||||
private String orderState;
|
||||
/**
|
||||
* 订单来源
|
||||
*
|
||||
* 枚举 {@link TODO order_source 对应的类}
|
||||
*/
|
||||
private String orderSource;
|
||||
/**
|
||||
* 销售人员编号
|
||||
*/
|
||||
private Long salesPersonId;
|
||||
/**
|
||||
* 销售人员姓名
|
||||
*/
|
||||
private String salesPersonName;
|
||||
/**
|
||||
* 描述
|
||||
*/
|
||||
private String description;
|
||||
|
||||
}
|
@ -0,0 +1,38 @@
|
||||
package com.yunxi.scm.module.xxjj.dal.mysql.enterprise;
|
||||
|
||||
import java.util.*;
|
||||
|
||||
import com.yunxi.scm.framework.common.pojo.PageResult;
|
||||
import com.yunxi.scm.framework.mybatis.core.query.LambdaQueryWrapperX;
|
||||
import com.yunxi.scm.framework.mybatis.core.mapper.BaseMapperX;
|
||||
import com.yunxi.scm.module.xxjj.dal.dataobject.enterprise.EnterpriseDO;
|
||||
import org.apache.ibatis.annotations.Mapper;
|
||||
import com.yunxi.scm.module.xxjj.controller.admin.enterprise.vo.*;
|
||||
|
||||
/**
|
||||
* 企业信息 Mapper
|
||||
*
|
||||
* @author 长江云息
|
||||
*/
|
||||
@Mapper
|
||||
public interface EnterpriseMapper extends BaseMapperX<EnterpriseDO> {
|
||||
|
||||
default PageResult<EnterpriseDO> selectPage(EnterprisePageReqVO reqVO) {
|
||||
return selectPage(reqVO, new LambdaQueryWrapperX<EnterpriseDO>()
|
||||
.eqIfPresent(EnterpriseDO::getCode, reqVO.getCode())
|
||||
.likeIfPresent(EnterpriseDO::getName, reqVO.getName())
|
||||
.eqIfPresent(EnterpriseDO::getMainType, reqVO.getMainType())
|
||||
.betweenIfPresent(EnterpriseDO::getCreateTime, reqVO.getCreateTime())
|
||||
.orderByDesc(EnterpriseDO::getId));
|
||||
}
|
||||
|
||||
default List<EnterpriseDO> selectList(EnterpriseExportReqVO reqVO) {
|
||||
return selectList(new LambdaQueryWrapperX<EnterpriseDO>()
|
||||
.eqIfPresent(EnterpriseDO::getCode, reqVO.getCode())
|
||||
.likeIfPresent(EnterpriseDO::getName, reqVO.getName())
|
||||
.eqIfPresent(EnterpriseDO::getMainType, reqVO.getMainType())
|
||||
.betweenIfPresent(EnterpriseDO::getCreateTime, reqVO.getCreateTime())
|
||||
.orderByDesc(EnterpriseDO::getId));
|
||||
}
|
||||
|
||||
}
|
@ -0,0 +1,56 @@
|
||||
package com.yunxi.scm.module.xxjj.dal.mysql.enterprisecontract;
|
||||
|
||||
import java.util.*;
|
||||
|
||||
import com.yunxi.scm.framework.common.pojo.PageResult;
|
||||
import com.yunxi.scm.framework.mybatis.core.query.LambdaQueryWrapperX;
|
||||
import com.yunxi.scm.framework.mybatis.core.mapper.BaseMapperX;
|
||||
import com.yunxi.scm.module.xxjj.dal.dataobject.enterprisecontract.EnterpriseContractDO;
|
||||
import org.apache.ibatis.annotations.Mapper;
|
||||
import com.yunxi.scm.module.xxjj.controller.admin.enterprisecontract.vo.*;
|
||||
|
||||
/**
|
||||
* 企业合约 Mapper
|
||||
*
|
||||
* @author 长江云息
|
||||
*/
|
||||
@Mapper
|
||||
public interface EnterpriseContractMapper extends BaseMapperX<EnterpriseContractDO> {
|
||||
|
||||
default PageResult<EnterpriseContractDO> selectPage(EnterpriseContractPageReqVO reqVO) {
|
||||
return selectPage(reqVO, new LambdaQueryWrapperX<EnterpriseContractDO>()
|
||||
.likeIfPresent(EnterpriseContractDO::getContractCode, reqVO.getContractCode())
|
||||
.likeIfPresent(EnterpriseContractDO::getProductCode, reqVO.getProductCode())
|
||||
.likeIfPresent(EnterpriseContractDO::getProductName, reqVO.getProductName())
|
||||
.likeIfPresent(EnterpriseContractDO::getOrderCode, reqVO.getOrderCode())
|
||||
.eqIfPresent(EnterpriseContractDO::getContractState, reqVO.getContractState())
|
||||
.betweenIfPresent(EnterpriseContractDO::getContractStart, reqVO.getContractStart())
|
||||
.betweenIfPresent(EnterpriseContractDO::getContractEnd, reqVO.getContractEnd())
|
||||
.eqIfPresent(EnterpriseContractDO::getPayType, reqVO.getPayType())
|
||||
.eqIfPresent(EnterpriseContractDO::getOrderState, reqVO.getOrderState())
|
||||
.eqIfPresent(EnterpriseContractDO::getOrderSource, reqVO.getOrderSource())
|
||||
.eqIfPresent(EnterpriseContractDO::getSalesPersonId, reqVO.getSalesPersonId())
|
||||
.likeIfPresent(EnterpriseContractDO::getSalesPersonName, reqVO.getSalesPersonName())
|
||||
.betweenIfPresent(EnterpriseContractDO::getCreateTime, reqVO.getCreateTime())
|
||||
.orderByDesc(EnterpriseContractDO::getId));
|
||||
}
|
||||
|
||||
default List<EnterpriseContractDO> selectList(EnterpriseContractExportReqVO reqVO) {
|
||||
return selectList(new LambdaQueryWrapperX<EnterpriseContractDO>()
|
||||
.likeIfPresent(EnterpriseContractDO::getContractCode, reqVO.getContractCode())
|
||||
.likeIfPresent(EnterpriseContractDO::getProductCode, reqVO.getProductCode())
|
||||
.likeIfPresent(EnterpriseContractDO::getProductName, reqVO.getProductName())
|
||||
.likeIfPresent(EnterpriseContractDO::getOrderCode, reqVO.getOrderCode())
|
||||
.eqIfPresent(EnterpriseContractDO::getContractState, reqVO.getContractState())
|
||||
.betweenIfPresent(EnterpriseContractDO::getContractStart, reqVO.getContractStart())
|
||||
.betweenIfPresent(EnterpriseContractDO::getContractEnd, reqVO.getContractEnd())
|
||||
.eqIfPresent(EnterpriseContractDO::getPayType, reqVO.getPayType())
|
||||
.eqIfPresent(EnterpriseContractDO::getOrderState, reqVO.getOrderState())
|
||||
.eqIfPresent(EnterpriseContractDO::getOrderSource, reqVO.getOrderSource())
|
||||
.eqIfPresent(EnterpriseContractDO::getSalesPersonId, reqVO.getSalesPersonId())
|
||||
.likeIfPresent(EnterpriseContractDO::getSalesPersonName, reqVO.getSalesPersonName())
|
||||
.betweenIfPresent(EnterpriseContractDO::getCreateTime, reqVO.getCreateTime())
|
||||
.orderByDesc(EnterpriseContractDO::getId));
|
||||
}
|
||||
|
||||
}
|
@ -0,0 +1,42 @@
|
||||
package com.yunxi.scm.module.xxjj.dal.mysql.materialquality;
|
||||
|
||||
import java.util.*;
|
||||
|
||||
import com.yunxi.scm.framework.common.pojo.PageResult;
|
||||
import com.yunxi.scm.framework.mybatis.core.query.LambdaQueryWrapperX;
|
||||
import com.yunxi.scm.framework.mybatis.core.mapper.BaseMapperX;
|
||||
import com.yunxi.scm.module.xxjj.dal.dataobject.materialquality.MaterialQualityDO;
|
||||
import org.apache.ibatis.annotations.Mapper;
|
||||
import com.yunxi.scm.module.xxjj.controller.admin.materialquality.vo.*;
|
||||
|
||||
/**
|
||||
* 物料材质 Mapper
|
||||
*
|
||||
* @author 芋道源码
|
||||
*/
|
||||
@Mapper
|
||||
public interface MaterialQualityMapper extends BaseMapperX<MaterialQualityDO> {
|
||||
|
||||
default PageResult<MaterialQualityDO> selectPage(MaterialQualityPageReqVO reqVO) {
|
||||
return selectPage(reqVO, new LambdaQueryWrapperX<MaterialQualityDO>()
|
||||
.likeIfPresent(MaterialQualityDO::getName, reqVO.getName())
|
||||
.eqIfPresent(MaterialQualityDO::getSource, reqVO.getSource())
|
||||
.eqIfPresent(MaterialQualityDO::getType, reqVO.getType())
|
||||
.eqIfPresent(MaterialQualityDO::getState, reqVO.getState())
|
||||
.eqIfPresent(MaterialQualityDO::getDescription, reqVO.getDescription())
|
||||
.betweenIfPresent(MaterialQualityDO::getCreateTime, reqVO.getCreateTime())
|
||||
.orderByDesc(MaterialQualityDO::getId));
|
||||
}
|
||||
|
||||
default List<MaterialQualityDO> selectList(MaterialQualityExportReqVO reqVO) {
|
||||
return selectList(new LambdaQueryWrapperX<MaterialQualityDO>()
|
||||
.likeIfPresent(MaterialQualityDO::getName, reqVO.getName())
|
||||
.eqIfPresent(MaterialQualityDO::getSource, reqVO.getSource())
|
||||
.eqIfPresent(MaterialQualityDO::getType, reqVO.getType())
|
||||
.eqIfPresent(MaterialQualityDO::getState, reqVO.getState())
|
||||
.eqIfPresent(MaterialQualityDO::getDescription, reqVO.getDescription())
|
||||
.betweenIfPresent(MaterialQualityDO::getCreateTime, reqVO.getCreateTime())
|
||||
.orderByDesc(MaterialQualityDO::getId));
|
||||
}
|
||||
|
||||
}
|
@ -0,0 +1,42 @@
|
||||
package com.yunxi.scm.module.xxjj.dal.mysql.productionprocesses;
|
||||
|
||||
import java.util.*;
|
||||
|
||||
import com.yunxi.scm.framework.common.pojo.PageResult;
|
||||
import com.yunxi.scm.framework.mybatis.core.query.LambdaQueryWrapperX;
|
||||
import com.yunxi.scm.framework.mybatis.core.mapper.BaseMapperX;
|
||||
import com.yunxi.scm.module.xxjj.dal.dataobject.productionprocesses.ProductionProcessesDO;
|
||||
import org.apache.ibatis.annotations.Mapper;
|
||||
import com.yunxi.scm.module.xxjj.controller.admin.productionprocesses.vo.*;
|
||||
|
||||
/**
|
||||
* 工序 Mapper
|
||||
*
|
||||
* @author 芋道源码
|
||||
*/
|
||||
@Mapper
|
||||
public interface ProductionProcessesMapper extends BaseMapperX<ProductionProcessesDO> {
|
||||
|
||||
default PageResult<ProductionProcessesDO> selectPage(ProductionProcessesPageReqVO reqVO) {
|
||||
return selectPage(reqVO, new LambdaQueryWrapperX<ProductionProcessesDO>()
|
||||
.likeIfPresent(ProductionProcessesDO::getName, reqVO.getName())
|
||||
.eqIfPresent(ProductionProcessesDO::getSource, reqVO.getSource())
|
||||
.eqIfPresent(ProductionProcessesDO::getType, reqVO.getType())
|
||||
.eqIfPresent(ProductionProcessesDO::getState, reqVO.getState())
|
||||
.eqIfPresent(ProductionProcessesDO::getDescription, reqVO.getDescription())
|
||||
.betweenIfPresent(ProductionProcessesDO::getCreateTime, reqVO.getCreateTime())
|
||||
.orderByDesc(ProductionProcessesDO::getId));
|
||||
}
|
||||
|
||||
default List<ProductionProcessesDO> selectList(ProductionProcessesExportReqVO reqVO) {
|
||||
return selectList(new LambdaQueryWrapperX<ProductionProcessesDO>()
|
||||
.likeIfPresent(ProductionProcessesDO::getName, reqVO.getName())
|
||||
.eqIfPresent(ProductionProcessesDO::getSource, reqVO.getSource())
|
||||
.eqIfPresent(ProductionProcessesDO::getType, reqVO.getType())
|
||||
.eqIfPresent(ProductionProcessesDO::getState, reqVO.getState())
|
||||
.eqIfPresent(ProductionProcessesDO::getDescription, reqVO.getDescription())
|
||||
.betweenIfPresent(ProductionProcessesDO::getCreateTime, reqVO.getCreateTime())
|
||||
.orderByDesc(ProductionProcessesDO::getId));
|
||||
}
|
||||
|
||||
}
|
@ -0,0 +1,70 @@
|
||||
package com.yunxi.scm.module.xxjj.service.enterprise;
|
||||
|
||||
import java.util.*;
|
||||
import javax.validation.*;
|
||||
import com.yunxi.scm.module.xxjj.controller.admin.enterprise.vo.*;
|
||||
import com.yunxi.scm.module.xxjj.dal.dataobject.enterprise.EnterpriseDO;
|
||||
import com.yunxi.scm.framework.common.pojo.PageResult;
|
||||
|
||||
/**
|
||||
* 企业信息 Service 接口
|
||||
*
|
||||
* @author 长江云息
|
||||
*/
|
||||
public interface EnterpriseService {
|
||||
|
||||
/**
|
||||
* 创建企业信息
|
||||
*
|
||||
* @param createReqVO 创建信息
|
||||
* @return 编号
|
||||
*/
|
||||
Long createEnterprise(@Valid EnterpriseCreateReqVO createReqVO);
|
||||
|
||||
/**
|
||||
* 更新企业信息
|
||||
*
|
||||
* @param updateReqVO 更新信息
|
||||
*/
|
||||
void updateEnterprise(@Valid EnterpriseUpdateReqVO updateReqVO);
|
||||
|
||||
/**
|
||||
* 删除企业信息
|
||||
*
|
||||
* @param id 编号
|
||||
*/
|
||||
void deleteEnterprise(Long id);
|
||||
|
||||
/**
|
||||
* 获得企业信息
|
||||
*
|
||||
* @param id 编号
|
||||
* @return 企业信息
|
||||
*/
|
||||
EnterpriseDO getEnterprise(Long id);
|
||||
|
||||
/**
|
||||
* 获得企业信息列表
|
||||
*
|
||||
* @param ids 编号
|
||||
* @return 企业信息列表
|
||||
*/
|
||||
List<EnterpriseDO> getEnterpriseList(Collection<Long> ids);
|
||||
|
||||
/**
|
||||
* 获得企业信息分页
|
||||
*
|
||||
* @param pageReqVO 分页查询
|
||||
* @return 企业信息分页
|
||||
*/
|
||||
PageResult<EnterpriseDO> getEnterprisePage(EnterprisePageReqVO pageReqVO);
|
||||
|
||||
/**
|
||||
* 获得企业信息列表, 用于 Excel 导出
|
||||
*
|
||||
* @param exportReqVO 查询条件
|
||||
* @return 企业信息列表
|
||||
*/
|
||||
List<EnterpriseDO> getEnterpriseList(EnterpriseExportReqVO exportReqVO);
|
||||
|
||||
}
|
@ -0,0 +1,82 @@
|
||||
package com.yunxi.scm.module.xxjj.service.enterprise;
|
||||
|
||||
import org.springframework.stereotype.Service;
|
||||
import javax.annotation.Resource;
|
||||
import org.springframework.validation.annotation.Validated;
|
||||
|
||||
import java.util.*;
|
||||
import com.yunxi.scm.module.xxjj.controller.admin.enterprise.vo.*;
|
||||
import com.yunxi.scm.module.xxjj.dal.dataobject.enterprise.EnterpriseDO;
|
||||
import com.yunxi.scm.framework.common.pojo.PageResult;
|
||||
|
||||
import com.yunxi.scm.module.xxjj.convert.enterprise.EnterpriseConvert;
|
||||
import com.yunxi.scm.module.xxjj.dal.mysql.enterprise.EnterpriseMapper;
|
||||
|
||||
import static com.yunxi.scm.framework.common.exception.util.ServiceExceptionUtil.exception;
|
||||
import static com.yunxi.scm.module.xxjj.enums.ErrorCodeConstants.*;
|
||||
|
||||
/**
|
||||
* 企业信息 Service 实现类
|
||||
*
|
||||
* @author 长江云息
|
||||
*/
|
||||
@Service
|
||||
@Validated
|
||||
public class EnterpriseServiceImpl implements EnterpriseService {
|
||||
|
||||
@Resource
|
||||
private EnterpriseMapper enterpriseMapper;
|
||||
|
||||
@Override
|
||||
public Long createEnterprise(EnterpriseCreateReqVO createReqVO) {
|
||||
// 插入
|
||||
EnterpriseDO enterprise = EnterpriseConvert.INSTANCE.convert(createReqVO);
|
||||
enterpriseMapper.insert(enterprise);
|
||||
// 返回
|
||||
return enterprise.getId();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void updateEnterprise(EnterpriseUpdateReqVO updateReqVO) {
|
||||
// 校验存在
|
||||
validateEnterpriseExists(updateReqVO.getId());
|
||||
// 更新
|
||||
EnterpriseDO updateObj = EnterpriseConvert.INSTANCE.convert(updateReqVO);
|
||||
enterpriseMapper.updateById(updateObj);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void deleteEnterprise(Long id) {
|
||||
// 校验存在
|
||||
validateEnterpriseExists(id);
|
||||
// 删除
|
||||
enterpriseMapper.deleteById(id);
|
||||
}
|
||||
|
||||
private void validateEnterpriseExists(Long id) {
|
||||
if (enterpriseMapper.selectById(id) == null) {
|
||||
throw exception(ENTERPRISE_NOT_EXISTS);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public EnterpriseDO getEnterprise(Long id) {
|
||||
return enterpriseMapper.selectById(id);
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<EnterpriseDO> getEnterpriseList(Collection<Long> ids) {
|
||||
return enterpriseMapper.selectBatchIds(ids);
|
||||
}
|
||||
|
||||
@Override
|
||||
public PageResult<EnterpriseDO> getEnterprisePage(EnterprisePageReqVO pageReqVO) {
|
||||
return enterpriseMapper.selectPage(pageReqVO);
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<EnterpriseDO> getEnterpriseList(EnterpriseExportReqVO exportReqVO) {
|
||||
return enterpriseMapper.selectList(exportReqVO);
|
||||
}
|
||||
|
||||
}
|
@ -0,0 +1,70 @@
|
||||
package com.yunxi.scm.module.xxjj.service.enterprisecontract;
|
||||
|
||||
import java.util.*;
|
||||
import javax.validation.*;
|
||||
import com.yunxi.scm.module.xxjj.controller.admin.enterprisecontract.vo.*;
|
||||
import com.yunxi.scm.module.xxjj.dal.dataobject.enterprisecontract.EnterpriseContractDO;
|
||||
import com.yunxi.scm.framework.common.pojo.PageResult;
|
||||
|
||||
/**
|
||||
* 企业合约 Service 接口
|
||||
*
|
||||
* @author 长江云息
|
||||
*/
|
||||
public interface EnterpriseContractService {
|
||||
|
||||
/**
|
||||
* 创建企业合约
|
||||
*
|
||||
* @param createReqVO 创建信息
|
||||
* @return 编号
|
||||
*/
|
||||
Long createEnterpriseContract(@Valid EnterpriseContractCreateReqVO createReqVO);
|
||||
|
||||
/**
|
||||
* 更新企业合约
|
||||
*
|
||||
* @param updateReqVO 更新信息
|
||||
*/
|
||||
void updateEnterpriseContract(@Valid EnterpriseContractUpdateReqVO updateReqVO);
|
||||
|
||||
/**
|
||||
* 删除企业合约
|
||||
*
|
||||
* @param id 编号
|
||||
*/
|
||||
void deleteEnterpriseContract(Long id);
|
||||
|
||||
/**
|
||||
* 获得企业合约
|
||||
*
|
||||
* @param id 编号
|
||||
* @return 企业合约
|
||||
*/
|
||||
EnterpriseContractDO getEnterpriseContract(Long id);
|
||||
|
||||
/**
|
||||
* 获得企业合约列表
|
||||
*
|
||||
* @param ids 编号
|
||||
* @return 企业合约列表
|
||||
*/
|
||||
List<EnterpriseContractDO> getEnterpriseContractList(Collection<Long> ids);
|
||||
|
||||
/**
|
||||
* 获得企业合约分页
|
||||
*
|
||||
* @param pageReqVO 分页查询
|
||||
* @return 企业合约分页
|
||||
*/
|
||||
PageResult<EnterpriseContractDO> getEnterpriseContractPage(EnterpriseContractPageReqVO pageReqVO);
|
||||
|
||||
/**
|
||||
* 获得企业合约列表, 用于 Excel 导出
|
||||
*
|
||||
* @param exportReqVO 查询条件
|
||||
* @return 企业合约列表
|
||||
*/
|
||||
List<EnterpriseContractDO> getEnterpriseContractList(EnterpriseContractExportReqVO exportReqVO);
|
||||
|
||||
}
|
@ -0,0 +1,82 @@
|
||||
package com.yunxi.scm.module.xxjj.service.enterprisecontract;
|
||||
|
||||
import org.springframework.stereotype.Service;
|
||||
import javax.annotation.Resource;
|
||||
import org.springframework.validation.annotation.Validated;
|
||||
|
||||
import java.util.*;
|
||||
import com.yunxi.scm.module.xxjj.controller.admin.enterprisecontract.vo.*;
|
||||
import com.yunxi.scm.module.xxjj.dal.dataobject.enterprisecontract.EnterpriseContractDO;
|
||||
import com.yunxi.scm.framework.common.pojo.PageResult;
|
||||
|
||||
import com.yunxi.scm.module.xxjj.convert.enterprisecontract.EnterpriseContractConvert;
|
||||
import com.yunxi.scm.module.xxjj.dal.mysql.enterprisecontract.EnterpriseContractMapper;
|
||||
|
||||
import static com.yunxi.scm.framework.common.exception.util.ServiceExceptionUtil.exception;
|
||||
import static com.yunxi.scm.module.xxjj.enums.ErrorCodeConstants.*;
|
||||
|
||||
/**
|
||||
* 企业合约 Service 实现类
|
||||
*
|
||||
* @author 长江云息
|
||||
*/
|
||||
@Service
|
||||
@Validated
|
||||
public class EnterpriseContractServiceImpl implements EnterpriseContractService {
|
||||
|
||||
@Resource
|
||||
private EnterpriseContractMapper enterpriseContractMapper;
|
||||
|
||||
@Override
|
||||
public Long createEnterpriseContract(EnterpriseContractCreateReqVO createReqVO) {
|
||||
// 插入
|
||||
EnterpriseContractDO enterpriseContract = EnterpriseContractConvert.INSTANCE.convert(createReqVO);
|
||||
enterpriseContractMapper.insert(enterpriseContract);
|
||||
// 返回
|
||||
return enterpriseContract.getId();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void updateEnterpriseContract(EnterpriseContractUpdateReqVO updateReqVO) {
|
||||
// 校验存在
|
||||
validateEnterpriseContractExists(updateReqVO.getId());
|
||||
// 更新
|
||||
EnterpriseContractDO updateObj = EnterpriseContractConvert.INSTANCE.convert(updateReqVO);
|
||||
enterpriseContractMapper.updateById(updateObj);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void deleteEnterpriseContract(Long id) {
|
||||
// 校验存在
|
||||
validateEnterpriseContractExists(id);
|
||||
// 删除
|
||||
enterpriseContractMapper.deleteById(id);
|
||||
}
|
||||
|
||||
private void validateEnterpriseContractExists(Long id) {
|
||||
if (enterpriseContractMapper.selectById(id) == null) {
|
||||
throw exception(ENTERPRISE_CONTRACT_NOT_EXISTS);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public EnterpriseContractDO getEnterpriseContract(Long id) {
|
||||
return enterpriseContractMapper.selectById(id);
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<EnterpriseContractDO> getEnterpriseContractList(Collection<Long> ids) {
|
||||
return enterpriseContractMapper.selectBatchIds(ids);
|
||||
}
|
||||
|
||||
@Override
|
||||
public PageResult<EnterpriseContractDO> getEnterpriseContractPage(EnterpriseContractPageReqVO pageReqVO) {
|
||||
return enterpriseContractMapper.selectPage(pageReqVO);
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<EnterpriseContractDO> getEnterpriseContractList(EnterpriseContractExportReqVO exportReqVO) {
|
||||
return enterpriseContractMapper.selectList(exportReqVO);
|
||||
}
|
||||
|
||||
}
|
@ -0,0 +1,70 @@
|
||||
package com.yunxi.scm.module.xxjj.service.materialquality;
|
||||
|
||||
import java.util.*;
|
||||
import javax.validation.*;
|
||||
import com.yunxi.scm.module.xxjj.controller.admin.materialquality.vo.*;
|
||||
import com.yunxi.scm.module.xxjj.dal.dataobject.materialquality.MaterialQualityDO;
|
||||
import com.yunxi.scm.framework.common.pojo.PageResult;
|
||||
|
||||
/**
|
||||
* 物料材质 Service 接口
|
||||
*
|
||||
* @author 芋道源码
|
||||
*/
|
||||
public interface MaterialQualityService {
|
||||
|
||||
/**
|
||||
* 创建物料材质
|
||||
*
|
||||
* @param createReqVO 创建信息
|
||||
* @return 编号
|
||||
*/
|
||||
Long createMaterialQuality(@Valid MaterialQualityCreateReqVO createReqVO);
|
||||
|
||||
/**
|
||||
* 更新物料材质
|
||||
*
|
||||
* @param updateReqVO 更新信息
|
||||
*/
|
||||
void updateMaterialQuality(@Valid MaterialQualityUpdateReqVO updateReqVO);
|
||||
|
||||
/**
|
||||
* 删除物料材质
|
||||
*
|
||||
* @param id 编号
|
||||
*/
|
||||
void deleteMaterialQuality(Long id);
|
||||
|
||||
/**
|
||||
* 获得物料材质
|
||||
*
|
||||
* @param id 编号
|
||||
* @return 物料材质
|
||||
*/
|
||||
MaterialQualityDO getMaterialQuality(Long id);
|
||||
|
||||
/**
|
||||
* 获得物料材质列表
|
||||
*
|
||||
* @param ids 编号
|
||||
* @return 物料材质列表
|
||||
*/
|
||||
List<MaterialQualityDO> getMaterialQualityList(Collection<Long> ids);
|
||||
|
||||
/**
|
||||
* 获得物料材质分页
|
||||
*
|
||||
* @param pageReqVO 分页查询
|
||||
* @return 物料材质分页
|
||||
*/
|
||||
PageResult<MaterialQualityDO> getMaterialQualityPage(MaterialQualityPageReqVO pageReqVO);
|
||||
|
||||
/**
|
||||
* 获得物料材质列表, 用于 Excel 导出
|
||||
*
|
||||
* @param exportReqVO 查询条件
|
||||
* @return 物料材质列表
|
||||
*/
|
||||
List<MaterialQualityDO> getMaterialQualityList(MaterialQualityExportReqVO exportReqVO);
|
||||
|
||||
}
|
@ -0,0 +1,82 @@
|
||||
package com.yunxi.scm.module.xxjj.service.materialquality;
|
||||
|
||||
import org.springframework.stereotype.Service;
|
||||
import javax.annotation.Resource;
|
||||
import org.springframework.validation.annotation.Validated;
|
||||
|
||||
import java.util.*;
|
||||
import com.yunxi.scm.module.xxjj.controller.admin.materialquality.vo.*;
|
||||
import com.yunxi.scm.module.xxjj.dal.dataobject.materialquality.MaterialQualityDO;
|
||||
import com.yunxi.scm.framework.common.pojo.PageResult;
|
||||
|
||||
import com.yunxi.scm.module.xxjj.convert.materialquality.MaterialQualityConvert;
|
||||
import com.yunxi.scm.module.xxjj.dal.mysql.materialquality.MaterialQualityMapper;
|
||||
|
||||
import static com.yunxi.scm.framework.common.exception.util.ServiceExceptionUtil.exception;
|
||||
import static com.yunxi.scm.module.xxjj.enums.ErrorCodeConstants.*;
|
||||
|
||||
/**
|
||||
* 物料材质 Service 实现类
|
||||
*
|
||||
* @author 芋道源码
|
||||
*/
|
||||
@Service
|
||||
@Validated
|
||||
public class MaterialQualityServiceImpl implements MaterialQualityService {
|
||||
|
||||
@Resource
|
||||
private MaterialQualityMapper materialQualityMapper;
|
||||
|
||||
@Override
|
||||
public Long createMaterialQuality(MaterialQualityCreateReqVO createReqVO) {
|
||||
// 插入
|
||||
MaterialQualityDO materialQuality = MaterialQualityConvert.INSTANCE.convert(createReqVO);
|
||||
materialQualityMapper.insert(materialQuality);
|
||||
// 返回
|
||||
return materialQuality.getId();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void updateMaterialQuality(MaterialQualityUpdateReqVO updateReqVO) {
|
||||
// 校验存在
|
||||
validateMaterialQualityExists(updateReqVO.getId());
|
||||
// 更新
|
||||
MaterialQualityDO updateObj = MaterialQualityConvert.INSTANCE.convert(updateReqVO);
|
||||
materialQualityMapper.updateById(updateObj);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void deleteMaterialQuality(Long id) {
|
||||
// 校验存在
|
||||
validateMaterialQualityExists(id);
|
||||
// 删除
|
||||
materialQualityMapper.deleteById(id);
|
||||
}
|
||||
|
||||
private void validateMaterialQualityExists(Long id) {
|
||||
if (materialQualityMapper.selectById(id) == null) {
|
||||
throw exception(MATERIAL_QUALITY_NOT_EXISTS);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public MaterialQualityDO getMaterialQuality(Long id) {
|
||||
return materialQualityMapper.selectById(id);
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<MaterialQualityDO> getMaterialQualityList(Collection<Long> ids) {
|
||||
return materialQualityMapper.selectBatchIds(ids);
|
||||
}
|
||||
|
||||
@Override
|
||||
public PageResult<MaterialQualityDO> getMaterialQualityPage(MaterialQualityPageReqVO pageReqVO) {
|
||||
return materialQualityMapper.selectPage(pageReqVO);
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<MaterialQualityDO> getMaterialQualityList(MaterialQualityExportReqVO exportReqVO) {
|
||||
return materialQualityMapper.selectList(exportReqVO);
|
||||
}
|
||||
|
||||
}
|
@ -0,0 +1,70 @@
|
||||
package com.yunxi.scm.module.xxjj.service.productionprocesses;
|
||||
|
||||
import java.util.*;
|
||||
import javax.validation.*;
|
||||
import com.yunxi.scm.module.xxjj.controller.admin.productionprocesses.vo.*;
|
||||
import com.yunxi.scm.module.xxjj.dal.dataobject.productionprocesses.ProductionProcessesDO;
|
||||
import com.yunxi.scm.framework.common.pojo.PageResult;
|
||||
|
||||
/**
|
||||
* 工序 Service 接口
|
||||
*
|
||||
* @author 芋道源码
|
||||
*/
|
||||
public interface ProductionProcessesService {
|
||||
|
||||
/**
|
||||
* 创建工序
|
||||
*
|
||||
* @param createReqVO 创建信息
|
||||
* @return 编号
|
||||
*/
|
||||
Long createProductionProcesses(@Valid ProductionProcessesCreateReqVO createReqVO);
|
||||
|
||||
/**
|
||||
* 更新工序
|
||||
*
|
||||
* @param updateReqVO 更新信息
|
||||
*/
|
||||
void updateProductionProcesses(@Valid ProductionProcessesUpdateReqVO updateReqVO);
|
||||
|
||||
/**
|
||||
* 删除工序
|
||||
*
|
||||
* @param id 编号
|
||||
*/
|
||||
void deleteProductionProcesses(Long id);
|
||||
|
||||
/**
|
||||
* 获得工序
|
||||
*
|
||||
* @param id 编号
|
||||
* @return 工序
|
||||
*/
|
||||
ProductionProcessesDO getProductionProcesses(Long id);
|
||||
|
||||
/**
|
||||
* 获得工序列表
|
||||
*
|
||||
* @param ids 编号
|
||||
* @return 工序列表
|
||||
*/
|
||||
List<ProductionProcessesDO> getProductionProcessesList(Collection<Long> ids);
|
||||
|
||||
/**
|
||||
* 获得工序分页
|
||||
*
|
||||
* @param pageReqVO 分页查询
|
||||
* @return 工序分页
|
||||
*/
|
||||
PageResult<ProductionProcessesDO> getProductionProcessesPage(ProductionProcessesPageReqVO pageReqVO);
|
||||
|
||||
/**
|
||||
* 获得工序列表, 用于 Excel 导出
|
||||
*
|
||||
* @param exportReqVO 查询条件
|
||||
* @return 工序列表
|
||||
*/
|
||||
List<ProductionProcessesDO> getProductionProcessesList(ProductionProcessesExportReqVO exportReqVO);
|
||||
|
||||
}
|
@ -0,0 +1,82 @@
|
||||
package com.yunxi.scm.module.xxjj.service.productionprocesses;
|
||||
|
||||
import org.springframework.stereotype.Service;
|
||||
import javax.annotation.Resource;
|
||||
import org.springframework.validation.annotation.Validated;
|
||||
|
||||
import java.util.*;
|
||||
import com.yunxi.scm.module.xxjj.controller.admin.productionprocesses.vo.*;
|
||||
import com.yunxi.scm.module.xxjj.dal.dataobject.productionprocesses.ProductionProcessesDO;
|
||||
import com.yunxi.scm.framework.common.pojo.PageResult;
|
||||
|
||||
import com.yunxi.scm.module.xxjj.convert.productionprocesses.ProductionProcessesConvert;
|
||||
import com.yunxi.scm.module.xxjj.dal.mysql.productionprocesses.ProductionProcessesMapper;
|
||||
|
||||
import static com.yunxi.scm.framework.common.exception.util.ServiceExceptionUtil.exception;
|
||||
import static com.yunxi.scm.module.xxjj.enums.ErrorCodeConstants.*;
|
||||
|
||||
/**
|
||||
* 工序 Service 实现类
|
||||
*
|
||||
* @author 芋道源码
|
||||
*/
|
||||
@Service
|
||||
@Validated
|
||||
public class ProductionProcessesServiceImpl implements ProductionProcessesService {
|
||||
|
||||
@Resource
|
||||
private ProductionProcessesMapper productionProcessesMapper;
|
||||
|
||||
@Override
|
||||
public Long createProductionProcesses(ProductionProcessesCreateReqVO createReqVO) {
|
||||
// 插入
|
||||
ProductionProcessesDO productionProcesses = ProductionProcessesConvert.INSTANCE.convert(createReqVO);
|
||||
productionProcessesMapper.insert(productionProcesses);
|
||||
// 返回
|
||||
return productionProcesses.getId();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void updateProductionProcesses(ProductionProcessesUpdateReqVO updateReqVO) {
|
||||
// 校验存在
|
||||
validateProductionProcessesExists(updateReqVO.getId());
|
||||
// 更新
|
||||
ProductionProcessesDO updateObj = ProductionProcessesConvert.INSTANCE.convert(updateReqVO);
|
||||
productionProcessesMapper.updateById(updateObj);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void deleteProductionProcesses(Long id) {
|
||||
// 校验存在
|
||||
validateProductionProcessesExists(id);
|
||||
// 删除
|
||||
productionProcessesMapper.deleteById(id);
|
||||
}
|
||||
|
||||
private void validateProductionProcessesExists(Long id) {
|
||||
if (productionProcessesMapper.selectById(id) == null) {
|
||||
throw exception(PRODUCTION_PROCESSES_NOT_EXISTS);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public ProductionProcessesDO getProductionProcesses(Long id) {
|
||||
return productionProcessesMapper.selectById(id);
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<ProductionProcessesDO> getProductionProcessesList(Collection<Long> ids) {
|
||||
return productionProcessesMapper.selectBatchIds(ids);
|
||||
}
|
||||
|
||||
@Override
|
||||
public PageResult<ProductionProcessesDO> getProductionProcessesPage(ProductionProcessesPageReqVO pageReqVO) {
|
||||
return productionProcessesMapper.selectPage(pageReqVO);
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<ProductionProcessesDO> getProductionProcessesList(ProductionProcessesExportReqVO exportReqVO) {
|
||||
return productionProcessesMapper.selectList(exportReqVO);
|
||||
}
|
||||
|
||||
}
|
@ -0,0 +1,175 @@
|
||||
package com.yunxi.scm.module.xxjj.service.enterprise;
|
||||
|
||||
import org.junit.jupiter.api.Disabled;
|
||||
import org.junit.jupiter.api.Test;
|
||||
import org.springframework.boot.test.mock.mockito.MockBean;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
|
||||
import com.yunxi.scm.framework.test.core.ut.BaseDbUnitTest;
|
||||
|
||||
import com.yunxi.scm.module.xxjj.controller.admin.enterprise.vo.*;
|
||||
import com.yunxi.scm.module.xxjj.dal.dataobject.enterprise.EnterpriseDO;
|
||||
import com.yunxi.scm.module.xxjj.dal.mysql.enterprise.EnterpriseMapper;
|
||||
import com.yunxi.scm.framework.common.pojo.PageResult;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
import org.springframework.context.annotation.Import;
|
||||
import java.util.*;
|
||||
import java.time.LocalDateTime;
|
||||
|
||||
import static cn.hutool.core.util.RandomUtil.*;
|
||||
import static com.yunxi.scm.module.xxjj.enums.ErrorCodeConstants.*;
|
||||
import static com.yunxi.scm.framework.test.core.util.AssertUtils.*;
|
||||
import static com.yunxi.scm.framework.test.core.util.RandomUtils.*;
|
||||
import static com.yunxi.scm.framework.common.util.date.LocalDateTimeUtils.*;
|
||||
import static com.yunxi.scm.framework.common.util.object.ObjectUtils.*;
|
||||
import static com.yunxi.scm.framework.common.util.date.DateUtils.*;
|
||||
import static org.junit.jupiter.api.Assertions.*;
|
||||
import static org.mockito.Mockito.*;
|
||||
|
||||
/**
|
||||
* {@link EnterpriseServiceImpl} 的单元测试类
|
||||
*
|
||||
* @author 长江云息
|
||||
*/
|
||||
@Import(EnterpriseServiceImpl.class)
|
||||
public class EnterpriseServiceImplTest extends BaseDbUnitTest {
|
||||
|
||||
@Resource
|
||||
private EnterpriseServiceImpl enterpriseService;
|
||||
|
||||
@Resource
|
||||
private EnterpriseMapper enterpriseMapper;
|
||||
|
||||
@Test
|
||||
public void testCreateEnterprise_success() {
|
||||
// 准备参数
|
||||
EnterpriseCreateReqVO reqVO = randomPojo(EnterpriseCreateReqVO.class);
|
||||
|
||||
// 调用
|
||||
Long enterpriseId = enterpriseService.createEnterprise(reqVO);
|
||||
// 断言
|
||||
assertNotNull(enterpriseId);
|
||||
// 校验记录的属性是否正确
|
||||
EnterpriseDO enterprise = enterpriseMapper.selectById(enterpriseId);
|
||||
assertPojoEquals(reqVO, enterprise);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testUpdateEnterprise_success() {
|
||||
// mock 数据
|
||||
EnterpriseDO dbEnterprise = randomPojo(EnterpriseDO.class);
|
||||
enterpriseMapper.insert(dbEnterprise);// @Sql: 先插入出一条存在的数据
|
||||
// 准备参数
|
||||
EnterpriseUpdateReqVO reqVO = randomPojo(EnterpriseUpdateReqVO.class, o -> {
|
||||
o.setId(dbEnterprise.getId()); // 设置更新的 ID
|
||||
});
|
||||
|
||||
// 调用
|
||||
enterpriseService.updateEnterprise(reqVO);
|
||||
// 校验是否更新正确
|
||||
EnterpriseDO enterprise = enterpriseMapper.selectById(reqVO.getId()); // 获取最新的
|
||||
assertPojoEquals(reqVO, enterprise);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testUpdateEnterprise_notExists() {
|
||||
// 准备参数
|
||||
EnterpriseUpdateReqVO reqVO = randomPojo(EnterpriseUpdateReqVO.class);
|
||||
|
||||
// 调用, 并断言异常
|
||||
assertServiceException(() -> enterpriseService.updateEnterprise(reqVO), ENTERPRISE_NOT_EXISTS);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testDeleteEnterprise_success() {
|
||||
// mock 数据
|
||||
EnterpriseDO dbEnterprise = randomPojo(EnterpriseDO.class);
|
||||
enterpriseMapper.insert(dbEnterprise);// @Sql: 先插入出一条存在的数据
|
||||
// 准备参数
|
||||
Long id = dbEnterprise.getId();
|
||||
|
||||
// 调用
|
||||
enterpriseService.deleteEnterprise(id);
|
||||
// 校验数据不存在了
|
||||
assertNull(enterpriseMapper.selectById(id));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testDeleteEnterprise_notExists() {
|
||||
// 准备参数
|
||||
Long id = randomLongId();
|
||||
|
||||
// 调用, 并断言异常
|
||||
assertServiceException(() -> enterpriseService.deleteEnterprise(id), ENTERPRISE_NOT_EXISTS);
|
||||
}
|
||||
|
||||
@Test
|
||||
@Disabled // TODO 请修改 null 为需要的值,然后删除 @Disabled 注解
|
||||
public void testGetEnterprisePage() {
|
||||
// mock 数据
|
||||
EnterpriseDO dbEnterprise = randomPojo(EnterpriseDO.class, o -> { // 等会查询到
|
||||
o.setCode(null);
|
||||
o.setName(null);
|
||||
o.setMainType(null);
|
||||
o.setCreateTime(null);
|
||||
});
|
||||
enterpriseMapper.insert(dbEnterprise);
|
||||
// 测试 code 不匹配
|
||||
enterpriseMapper.insert(cloneIgnoreId(dbEnterprise, o -> o.setCode(null)));
|
||||
// 测试 name 不匹配
|
||||
enterpriseMapper.insert(cloneIgnoreId(dbEnterprise, o -> o.setName(null)));
|
||||
// 测试 mainType 不匹配
|
||||
enterpriseMapper.insert(cloneIgnoreId(dbEnterprise, o -> o.setMainType(null)));
|
||||
// 测试 createTime 不匹配
|
||||
enterpriseMapper.insert(cloneIgnoreId(dbEnterprise, o -> o.setCreateTime(null)));
|
||||
// 准备参数
|
||||
EnterprisePageReqVO reqVO = new EnterprisePageReqVO();
|
||||
reqVO.setCode(null);
|
||||
reqVO.setName(null);
|
||||
reqVO.setMainType(null);
|
||||
reqVO.setCreateTime(buildBetweenTime(2023, 2, 1, 2023, 2, 28));
|
||||
|
||||
// 调用
|
||||
PageResult<EnterpriseDO> pageResult = enterpriseService.getEnterprisePage(reqVO);
|
||||
// 断言
|
||||
assertEquals(1, pageResult.getTotal());
|
||||
assertEquals(1, pageResult.getList().size());
|
||||
assertPojoEquals(dbEnterprise, pageResult.getList().get(0));
|
||||
}
|
||||
|
||||
@Test
|
||||
@Disabled // TODO 请修改 null 为需要的值,然后删除 @Disabled 注解
|
||||
public void testGetEnterpriseList() {
|
||||
// mock 数据
|
||||
EnterpriseDO dbEnterprise = randomPojo(EnterpriseDO.class, o -> { // 等会查询到
|
||||
o.setCode(null);
|
||||
o.setName(null);
|
||||
o.setMainType(null);
|
||||
o.setCreateTime(null);
|
||||
});
|
||||
enterpriseMapper.insert(dbEnterprise);
|
||||
// 测试 code 不匹配
|
||||
enterpriseMapper.insert(cloneIgnoreId(dbEnterprise, o -> o.setCode(null)));
|
||||
// 测试 name 不匹配
|
||||
enterpriseMapper.insert(cloneIgnoreId(dbEnterprise, o -> o.setName(null)));
|
||||
// 测试 mainType 不匹配
|
||||
enterpriseMapper.insert(cloneIgnoreId(dbEnterprise, o -> o.setMainType(null)));
|
||||
// 测试 createTime 不匹配
|
||||
enterpriseMapper.insert(cloneIgnoreId(dbEnterprise, o -> o.setCreateTime(null)));
|
||||
// 准备参数
|
||||
EnterpriseExportReqVO reqVO = new EnterpriseExportReqVO();
|
||||
reqVO.setCode(null);
|
||||
reqVO.setName(null);
|
||||
reqVO.setMainType(null);
|
||||
reqVO.setCreateTime(buildBetweenTime(2023, 2, 1, 2023, 2, 28));
|
||||
|
||||
// 调用
|
||||
List<EnterpriseDO> list = enterpriseService.getEnterpriseList(reqVO);
|
||||
// 断言
|
||||
assertEquals(1, list.size());
|
||||
assertPojoEquals(dbEnterprise, list.get(0));
|
||||
}
|
||||
|
||||
}
|
@ -0,0 +1,255 @@
|
||||
package com.yunxi.scm.module.xxjj.service.enterprisecontract;
|
||||
|
||||
import org.junit.jupiter.api.Disabled;
|
||||
import org.junit.jupiter.api.Test;
|
||||
import org.springframework.boot.test.mock.mockito.MockBean;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
|
||||
import com.yunxi.scm.framework.test.core.ut.BaseDbUnitTest;
|
||||
|
||||
import com.yunxi.scm.module.xxjj.controller.admin.enterprisecontract.vo.*;
|
||||
import com.yunxi.scm.module.xxjj.dal.dataobject.enterprisecontract.EnterpriseContractDO;
|
||||
import com.yunxi.scm.module.xxjj.dal.mysql.enterprisecontract.EnterpriseContractMapper;
|
||||
import com.yunxi.scm.framework.common.pojo.PageResult;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
import org.springframework.context.annotation.Import;
|
||||
import java.util.*;
|
||||
import java.time.LocalDateTime;
|
||||
|
||||
import static cn.hutool.core.util.RandomUtil.*;
|
||||
import static com.yunxi.scm.module.xxjj.enums.ErrorCodeConstants.*;
|
||||
import static com.yunxi.scm.framework.test.core.util.AssertUtils.*;
|
||||
import static com.yunxi.scm.framework.test.core.util.RandomUtils.*;
|
||||
import static com.yunxi.scm.framework.common.util.date.LocalDateTimeUtils.*;
|
||||
import static com.yunxi.scm.framework.common.util.object.ObjectUtils.*;
|
||||
import static com.yunxi.scm.framework.common.util.date.DateUtils.*;
|
||||
import static org.junit.jupiter.api.Assertions.*;
|
||||
import static org.mockito.Mockito.*;
|
||||
|
||||
/**
|
||||
* {@link EnterpriseContractServiceImpl} 的单元测试类
|
||||
*
|
||||
* @author 长江云息
|
||||
*/
|
||||
@Import(EnterpriseContractServiceImpl.class)
|
||||
public class EnterpriseContractServiceImplTest extends BaseDbUnitTest {
|
||||
|
||||
@Resource
|
||||
private EnterpriseContractServiceImpl enterpriseContractService;
|
||||
|
||||
@Resource
|
||||
private EnterpriseContractMapper enterpriseContractMapper;
|
||||
|
||||
@Test
|
||||
public void testCreateEnterpriseContract_success() {
|
||||
// 准备参数
|
||||
EnterpriseContractCreateReqVO reqVO = randomPojo(EnterpriseContractCreateReqVO.class);
|
||||
|
||||
// 调用
|
||||
Long enterpriseContractId = enterpriseContractService.createEnterpriseContract(reqVO);
|
||||
// 断言
|
||||
assertNotNull(enterpriseContractId);
|
||||
// 校验记录的属性是否正确
|
||||
EnterpriseContractDO enterpriseContract = enterpriseContractMapper.selectById(enterpriseContractId);
|
||||
assertPojoEquals(reqVO, enterpriseContract);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testUpdateEnterpriseContract_success() {
|
||||
// mock 数据
|
||||
EnterpriseContractDO dbEnterpriseContract = randomPojo(EnterpriseContractDO.class);
|
||||
enterpriseContractMapper.insert(dbEnterpriseContract);// @Sql: 先插入出一条存在的数据
|
||||
// 准备参数
|
||||
EnterpriseContractUpdateReqVO reqVO = randomPojo(EnterpriseContractUpdateReqVO.class, o -> {
|
||||
o.setId(dbEnterpriseContract.getId()); // 设置更新的 ID
|
||||
});
|
||||
|
||||
// 调用
|
||||
enterpriseContractService.updateEnterpriseContract(reqVO);
|
||||
// 校验是否更新正确
|
||||
EnterpriseContractDO enterpriseContract = enterpriseContractMapper.selectById(reqVO.getId()); // 获取最新的
|
||||
assertPojoEquals(reqVO, enterpriseContract);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testUpdateEnterpriseContract_notExists() {
|
||||
// 准备参数
|
||||
EnterpriseContractUpdateReqVO reqVO = randomPojo(EnterpriseContractUpdateReqVO.class);
|
||||
|
||||
// 调用, 并断言异常
|
||||
assertServiceException(() -> enterpriseContractService.updateEnterpriseContract(reqVO), ENTERPRISE_CONTRACT_NOT_EXISTS);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testDeleteEnterpriseContract_success() {
|
||||
// mock 数据
|
||||
EnterpriseContractDO dbEnterpriseContract = randomPojo(EnterpriseContractDO.class);
|
||||
enterpriseContractMapper.insert(dbEnterpriseContract);// @Sql: 先插入出一条存在的数据
|
||||
// 准备参数
|
||||
Long id = dbEnterpriseContract.getId();
|
||||
|
||||
// 调用
|
||||
enterpriseContractService.deleteEnterpriseContract(id);
|
||||
// 校验数据不存在了
|
||||
assertNull(enterpriseContractMapper.selectById(id));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testDeleteEnterpriseContract_notExists() {
|
||||
// 准备参数
|
||||
Long id = randomLongId();
|
||||
|
||||
// 调用, 并断言异常
|
||||
assertServiceException(() -> enterpriseContractService.deleteEnterpriseContract(id), ENTERPRISE_CONTRACT_NOT_EXISTS);
|
||||
}
|
||||
|
||||
@Test
|
||||
@Disabled // TODO 请修改 null 为需要的值,然后删除 @Disabled 注解
|
||||
public void testGetEnterpriseContractPage() {
|
||||
// mock 数据
|
||||
EnterpriseContractDO dbEnterpriseContract = randomPojo(EnterpriseContractDO.class, o -> { // 等会查询到
|
||||
o.setEnterpriseId(null);
|
||||
o.setContractCode(null);
|
||||
o.setProductCode(null);
|
||||
o.setProductName(null);
|
||||
o.setOrderCode(null);
|
||||
o.setContractState(null);
|
||||
o.setContractStart(null);
|
||||
o.setContractEnd(null);
|
||||
o.setPayType(null);
|
||||
o.setOrderState(null);
|
||||
o.setOrderSource(null);
|
||||
o.setSalesPersonId(null);
|
||||
o.setSalesPersonName(null);
|
||||
o.setCreateTime(null);
|
||||
});
|
||||
enterpriseContractMapper.insert(dbEnterpriseContract);
|
||||
// 测试 enterpriseId 不匹配
|
||||
enterpriseContractMapper.insert(cloneIgnoreId(dbEnterpriseContract, o -> o.setEnterpriseId(null)));
|
||||
// 测试 contractCode 不匹配
|
||||
enterpriseContractMapper.insert(cloneIgnoreId(dbEnterpriseContract, o -> o.setContractCode(null)));
|
||||
// 测试 productCode 不匹配
|
||||
enterpriseContractMapper.insert(cloneIgnoreId(dbEnterpriseContract, o -> o.setProductCode(null)));
|
||||
// 测试 productName 不匹配
|
||||
enterpriseContractMapper.insert(cloneIgnoreId(dbEnterpriseContract, o -> o.setProductName(null)));
|
||||
// 测试 orderCode 不匹配
|
||||
enterpriseContractMapper.insert(cloneIgnoreId(dbEnterpriseContract, o -> o.setOrderCode(null)));
|
||||
// 测试 contractState 不匹配
|
||||
enterpriseContractMapper.insert(cloneIgnoreId(dbEnterpriseContract, o -> o.setContractState(null)));
|
||||
// 测试 contractStart 不匹配
|
||||
enterpriseContractMapper.insert(cloneIgnoreId(dbEnterpriseContract, o -> o.setContractStart(null)));
|
||||
// 测试 contractEnd 不匹配
|
||||
enterpriseContractMapper.insert(cloneIgnoreId(dbEnterpriseContract, o -> o.setContractEnd(null)));
|
||||
// 测试 payType 不匹配
|
||||
enterpriseContractMapper.insert(cloneIgnoreId(dbEnterpriseContract, o -> o.setPayType(null)));
|
||||
// 测试 orderState 不匹配
|
||||
enterpriseContractMapper.insert(cloneIgnoreId(dbEnterpriseContract, o -> o.setOrderState(null)));
|
||||
// 测试 orderSource 不匹配
|
||||
enterpriseContractMapper.insert(cloneIgnoreId(dbEnterpriseContract, o -> o.setOrderSource(null)));
|
||||
// 测试 salesPersonId 不匹配
|
||||
enterpriseContractMapper.insert(cloneIgnoreId(dbEnterpriseContract, o -> o.setSalesPersonId(null)));
|
||||
// 测试 salesPersonName 不匹配
|
||||
enterpriseContractMapper.insert(cloneIgnoreId(dbEnterpriseContract, o -> o.setSalesPersonName(null)));
|
||||
// 测试 createTime 不匹配
|
||||
enterpriseContractMapper.insert(cloneIgnoreId(dbEnterpriseContract, o -> o.setCreateTime(null)));
|
||||
// 准备参数
|
||||
EnterpriseContractPageReqVO reqVO = new EnterpriseContractPageReqVO();
|
||||
reqVO.setEnterpriseId(null);
|
||||
reqVO.setContractCode(null);
|
||||
reqVO.setProductCode(null);
|
||||
reqVO.setProductName(null);
|
||||
reqVO.setOrderCode(null);
|
||||
reqVO.setContractState(null);
|
||||
reqVO.setContractStart(buildBetweenTime(2023, 2, 1, 2023, 2, 28));
|
||||
reqVO.setContractEnd(buildBetweenTime(2023, 2, 1, 2023, 2, 28));
|
||||
reqVO.setPayType(null);
|
||||
reqVO.setOrderState(null);
|
||||
reqVO.setOrderSource(null);
|
||||
reqVO.setSalesPersonId(null);
|
||||
reqVO.setSalesPersonName(null);
|
||||
reqVO.setCreateTime(buildBetweenTime(2023, 2, 1, 2023, 2, 28));
|
||||
|
||||
// 调用
|
||||
PageResult<EnterpriseContractDO> pageResult = enterpriseContractService.getEnterpriseContractPage(reqVO);
|
||||
// 断言
|
||||
assertEquals(1, pageResult.getTotal());
|
||||
assertEquals(1, pageResult.getList().size());
|
||||
assertPojoEquals(dbEnterpriseContract, pageResult.getList().get(0));
|
||||
}
|
||||
|
||||
@Test
|
||||
@Disabled // TODO 请修改 null 为需要的值,然后删除 @Disabled 注解
|
||||
public void testGetEnterpriseContractList() {
|
||||
// mock 数据
|
||||
EnterpriseContractDO dbEnterpriseContract = randomPojo(EnterpriseContractDO.class, o -> { // 等会查询到
|
||||
o.setEnterpriseId(null);
|
||||
o.setContractCode(null);
|
||||
o.setProductCode(null);
|
||||
o.setProductName(null);
|
||||
o.setOrderCode(null);
|
||||
o.setContractState(null);
|
||||
o.setContractStart(null);
|
||||
o.setContractEnd(null);
|
||||
o.setPayType(null);
|
||||
o.setOrderState(null);
|
||||
o.setOrderSource(null);
|
||||
o.setSalesPersonId(null);
|
||||
o.setSalesPersonName(null);
|
||||
o.setCreateTime(null);
|
||||
});
|
||||
enterpriseContractMapper.insert(dbEnterpriseContract);
|
||||
// 测试 enterpriseId 不匹配
|
||||
enterpriseContractMapper.insert(cloneIgnoreId(dbEnterpriseContract, o -> o.setEnterpriseId(null)));
|
||||
// 测试 contractCode 不匹配
|
||||
enterpriseContractMapper.insert(cloneIgnoreId(dbEnterpriseContract, o -> o.setContractCode(null)));
|
||||
// 测试 productCode 不匹配
|
||||
enterpriseContractMapper.insert(cloneIgnoreId(dbEnterpriseContract, o -> o.setProductCode(null)));
|
||||
// 测试 productName 不匹配
|
||||
enterpriseContractMapper.insert(cloneIgnoreId(dbEnterpriseContract, o -> o.setProductName(null)));
|
||||
// 测试 orderCode 不匹配
|
||||
enterpriseContractMapper.insert(cloneIgnoreId(dbEnterpriseContract, o -> o.setOrderCode(null)));
|
||||
// 测试 contractState 不匹配
|
||||
enterpriseContractMapper.insert(cloneIgnoreId(dbEnterpriseContract, o -> o.setContractState(null)));
|
||||
// 测试 contractStart 不匹配
|
||||
enterpriseContractMapper.insert(cloneIgnoreId(dbEnterpriseContract, o -> o.setContractStart(null)));
|
||||
// 测试 contractEnd 不匹配
|
||||
enterpriseContractMapper.insert(cloneIgnoreId(dbEnterpriseContract, o -> o.setContractEnd(null)));
|
||||
// 测试 payType 不匹配
|
||||
enterpriseContractMapper.insert(cloneIgnoreId(dbEnterpriseContract, o -> o.setPayType(null)));
|
||||
// 测试 orderState 不匹配
|
||||
enterpriseContractMapper.insert(cloneIgnoreId(dbEnterpriseContract, o -> o.setOrderState(null)));
|
||||
// 测试 orderSource 不匹配
|
||||
enterpriseContractMapper.insert(cloneIgnoreId(dbEnterpriseContract, o -> o.setOrderSource(null)));
|
||||
// 测试 salesPersonId 不匹配
|
||||
enterpriseContractMapper.insert(cloneIgnoreId(dbEnterpriseContract, o -> o.setSalesPersonId(null)));
|
||||
// 测试 salesPersonName 不匹配
|
||||
enterpriseContractMapper.insert(cloneIgnoreId(dbEnterpriseContract, o -> o.setSalesPersonName(null)));
|
||||
// 测试 createTime 不匹配
|
||||
enterpriseContractMapper.insert(cloneIgnoreId(dbEnterpriseContract, o -> o.setCreateTime(null)));
|
||||
// 准备参数
|
||||
EnterpriseContractExportReqVO reqVO = new EnterpriseContractExportReqVO();
|
||||
reqVO.setEnterpriseId(null);
|
||||
reqVO.setContractCode(null);
|
||||
reqVO.setProductCode(null);
|
||||
reqVO.setProductName(null);
|
||||
reqVO.setOrderCode(null);
|
||||
reqVO.setContractState(null);
|
||||
reqVO.setContractStart(buildBetweenTime(2023, 2, 1, 2023, 2, 28));
|
||||
reqVO.setContractEnd(buildBetweenTime(2023, 2, 1, 2023, 2, 28));
|
||||
reqVO.setPayType(null);
|
||||
reqVO.setOrderState(null);
|
||||
reqVO.setOrderSource(null);
|
||||
reqVO.setSalesPersonId(null);
|
||||
reqVO.setSalesPersonName(null);
|
||||
reqVO.setCreateTime(buildBetweenTime(2023, 2, 1, 2023, 2, 28));
|
||||
|
||||
// 调用
|
||||
List<EnterpriseContractDO> list = enterpriseContractService.getEnterpriseContractList(reqVO);
|
||||
// 断言
|
||||
assertEquals(1, list.size());
|
||||
assertPojoEquals(dbEnterpriseContract, list.get(0));
|
||||
}
|
||||
|
||||
}
|
@ -0,0 +1,191 @@
|
||||
package com.yunxi.scm.module.xxjj.service.materialquality;
|
||||
|
||||
import org.junit.jupiter.api.Disabled;
|
||||
import org.junit.jupiter.api.Test;
|
||||
import org.springframework.boot.test.mock.mockito.MockBean;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
|
||||
import com.yunxi.scm.framework.test.core.ut.BaseDbUnitTest;
|
||||
|
||||
import com.yunxi.scm.module.xxjj.controller.admin.materialquality.vo.*;
|
||||
import com.yunxi.scm.module.xxjj.dal.dataobject.materialquality.MaterialQualityDO;
|
||||
import com.yunxi.scm.module.xxjj.dal.mysql.materialquality.MaterialQualityMapper;
|
||||
import com.yunxi.scm.framework.common.pojo.PageResult;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
import org.springframework.context.annotation.Import;
|
||||
import java.util.*;
|
||||
import java.time.LocalDateTime;
|
||||
|
||||
import static cn.hutool.core.util.RandomUtil.*;
|
||||
import static com.yunxi.scm.module.xxjj.enums.ErrorCodeConstants.*;
|
||||
import static com.yunxi.scm.framework.test.core.util.AssertUtils.*;
|
||||
import static com.yunxi.scm.framework.test.core.util.RandomUtils.*;
|
||||
import static com.yunxi.scm.framework.common.util.date.LocalDateTimeUtils.*;
|
||||
import static com.yunxi.scm.framework.common.util.object.ObjectUtils.*;
|
||||
import static com.yunxi.scm.framework.common.util.date.DateUtils.*;
|
||||
import static org.junit.jupiter.api.Assertions.*;
|
||||
import static org.mockito.Mockito.*;
|
||||
|
||||
/**
|
||||
* {@link MaterialQualityServiceImpl} 的单元测试类
|
||||
*
|
||||
* @author 芋道源码
|
||||
*/
|
||||
@Import(MaterialQualityServiceImpl.class)
|
||||
public class MaterialQualityServiceImplTest extends BaseDbUnitTest {
|
||||
|
||||
@Resource
|
||||
private MaterialQualityServiceImpl materialQualityService;
|
||||
|
||||
@Resource
|
||||
private MaterialQualityMapper materialQualityMapper;
|
||||
|
||||
@Test
|
||||
public void testCreateMaterialQuality_success() {
|
||||
// 准备参数
|
||||
MaterialQualityCreateReqVO reqVO = randomPojo(MaterialQualityCreateReqVO.class);
|
||||
|
||||
// 调用
|
||||
Long materialQualityId = materialQualityService.createMaterialQuality(reqVO);
|
||||
// 断言
|
||||
assertNotNull(materialQualityId);
|
||||
// 校验记录的属性是否正确
|
||||
MaterialQualityDO materialQuality = materialQualityMapper.selectById(materialQualityId);
|
||||
assertPojoEquals(reqVO, materialQuality);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testUpdateMaterialQuality_success() {
|
||||
// mock 数据
|
||||
MaterialQualityDO dbMaterialQuality = randomPojo(MaterialQualityDO.class);
|
||||
materialQualityMapper.insert(dbMaterialQuality);// @Sql: 先插入出一条存在的数据
|
||||
// 准备参数
|
||||
MaterialQualityUpdateReqVO reqVO = randomPojo(MaterialQualityUpdateReqVO.class, o -> {
|
||||
o.setId(dbMaterialQuality.getId()); // 设置更新的 ID
|
||||
});
|
||||
|
||||
// 调用
|
||||
materialQualityService.updateMaterialQuality(reqVO);
|
||||
// 校验是否更新正确
|
||||
MaterialQualityDO materialQuality = materialQualityMapper.selectById(reqVO.getId()); // 获取最新的
|
||||
assertPojoEquals(reqVO, materialQuality);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testUpdateMaterialQuality_notExists() {
|
||||
// 准备参数
|
||||
MaterialQualityUpdateReqVO reqVO = randomPojo(MaterialQualityUpdateReqVO.class);
|
||||
|
||||
// 调用, 并断言异常
|
||||
assertServiceException(() -> materialQualityService.updateMaterialQuality(reqVO), MATERIAL_QUALITY_NOT_EXISTS);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testDeleteMaterialQuality_success() {
|
||||
// mock 数据
|
||||
MaterialQualityDO dbMaterialQuality = randomPojo(MaterialQualityDO.class);
|
||||
materialQualityMapper.insert(dbMaterialQuality);// @Sql: 先插入出一条存在的数据
|
||||
// 准备参数
|
||||
Long id = dbMaterialQuality.getId();
|
||||
|
||||
// 调用
|
||||
materialQualityService.deleteMaterialQuality(id);
|
||||
// 校验数据不存在了
|
||||
assertNull(materialQualityMapper.selectById(id));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testDeleteMaterialQuality_notExists() {
|
||||
// 准备参数
|
||||
Long id = randomLongId();
|
||||
|
||||
// 调用, 并断言异常
|
||||
assertServiceException(() -> materialQualityService.deleteMaterialQuality(id), MATERIAL_QUALITY_NOT_EXISTS);
|
||||
}
|
||||
|
||||
@Test
|
||||
@Disabled // TODO 请修改 null 为需要的值,然后删除 @Disabled 注解
|
||||
public void testGetMaterialQualityPage() {
|
||||
// mock 数据
|
||||
MaterialQualityDO dbMaterialQuality = randomPojo(MaterialQualityDO.class, o -> { // 等会查询到
|
||||
o.setName(null);
|
||||
o.setSource(null);
|
||||
o.setType(null);
|
||||
o.setState(null);
|
||||
o.setDescription(null);
|
||||
o.setCreateTime(null);
|
||||
});
|
||||
materialQualityMapper.insert(dbMaterialQuality);
|
||||
// 测试 name 不匹配
|
||||
materialQualityMapper.insert(cloneIgnoreId(dbMaterialQuality, o -> o.setName(null)));
|
||||
// 测试 source 不匹配
|
||||
materialQualityMapper.insert(cloneIgnoreId(dbMaterialQuality, o -> o.setSource(null)));
|
||||
// 测试 type 不匹配
|
||||
materialQualityMapper.insert(cloneIgnoreId(dbMaterialQuality, o -> o.setType(null)));
|
||||
// 测试 state 不匹配
|
||||
materialQualityMapper.insert(cloneIgnoreId(dbMaterialQuality, o -> o.setState(null)));
|
||||
// 测试 description 不匹配
|
||||
materialQualityMapper.insert(cloneIgnoreId(dbMaterialQuality, o -> o.setDescription(null)));
|
||||
// 测试 createTime 不匹配
|
||||
materialQualityMapper.insert(cloneIgnoreId(dbMaterialQuality, o -> o.setCreateTime(null)));
|
||||
// 准备参数
|
||||
MaterialQualityPageReqVO reqVO = new MaterialQualityPageReqVO();
|
||||
reqVO.setName(null);
|
||||
reqVO.setSource(null);
|
||||
reqVO.setType(null);
|
||||
reqVO.setState(null);
|
||||
reqVO.setDescription(null);
|
||||
reqVO.setCreateTime(buildBetweenTime(2023, 2, 1, 2023, 2, 28));
|
||||
|
||||
// 调用
|
||||
PageResult<MaterialQualityDO> pageResult = materialQualityService.getMaterialQualityPage(reqVO);
|
||||
// 断言
|
||||
assertEquals(1, pageResult.getTotal());
|
||||
assertEquals(1, pageResult.getList().size());
|
||||
assertPojoEquals(dbMaterialQuality, pageResult.getList().get(0));
|
||||
}
|
||||
|
||||
@Test
|
||||
@Disabled // TODO 请修改 null 为需要的值,然后删除 @Disabled 注解
|
||||
public void testGetMaterialQualityList() {
|
||||
// mock 数据
|
||||
MaterialQualityDO dbMaterialQuality = randomPojo(MaterialQualityDO.class, o -> { // 等会查询到
|
||||
o.setName(null);
|
||||
o.setSource(null);
|
||||
o.setType(null);
|
||||
o.setState(null);
|
||||
o.setDescription(null);
|
||||
o.setCreateTime(null);
|
||||
});
|
||||
materialQualityMapper.insert(dbMaterialQuality);
|
||||
// 测试 name 不匹配
|
||||
materialQualityMapper.insert(cloneIgnoreId(dbMaterialQuality, o -> o.setName(null)));
|
||||
// 测试 source 不匹配
|
||||
materialQualityMapper.insert(cloneIgnoreId(dbMaterialQuality, o -> o.setSource(null)));
|
||||
// 测试 type 不匹配
|
||||
materialQualityMapper.insert(cloneIgnoreId(dbMaterialQuality, o -> o.setType(null)));
|
||||
// 测试 state 不匹配
|
||||
materialQualityMapper.insert(cloneIgnoreId(dbMaterialQuality, o -> o.setState(null)));
|
||||
// 测试 description 不匹配
|
||||
materialQualityMapper.insert(cloneIgnoreId(dbMaterialQuality, o -> o.setDescription(null)));
|
||||
// 测试 createTime 不匹配
|
||||
materialQualityMapper.insert(cloneIgnoreId(dbMaterialQuality, o -> o.setCreateTime(null)));
|
||||
// 准备参数
|
||||
MaterialQualityExportReqVO reqVO = new MaterialQualityExportReqVO();
|
||||
reqVO.setName(null);
|
||||
reqVO.setSource(null);
|
||||
reqVO.setType(null);
|
||||
reqVO.setState(null);
|
||||
reqVO.setDescription(null);
|
||||
reqVO.setCreateTime(buildBetweenTime(2023, 2, 1, 2023, 2, 28));
|
||||
|
||||
// 调用
|
||||
List<MaterialQualityDO> list = materialQualityService.getMaterialQualityList(reqVO);
|
||||
// 断言
|
||||
assertEquals(1, list.size());
|
||||
assertPojoEquals(dbMaterialQuality, list.get(0));
|
||||
}
|
||||
|
||||
}
|
@ -0,0 +1,191 @@
|
||||
package com.yunxi.scm.module.xxjj.service.productionprocesses;
|
||||
|
||||
import org.junit.jupiter.api.Disabled;
|
||||
import org.junit.jupiter.api.Test;
|
||||
import org.springframework.boot.test.mock.mockito.MockBean;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
|
||||
import com.yunxi.scm.framework.test.core.ut.BaseDbUnitTest;
|
||||
|
||||
import com.yunxi.scm.module.xxjj.controller.admin.productionprocesses.vo.*;
|
||||
import com.yunxi.scm.module.xxjj.dal.dataobject.productionprocesses.ProductionProcessesDO;
|
||||
import com.yunxi.scm.module.xxjj.dal.mysql.productionprocesses.ProductionProcessesMapper;
|
||||
import com.yunxi.scm.framework.common.pojo.PageResult;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
import org.springframework.context.annotation.Import;
|
||||
import java.util.*;
|
||||
import java.time.LocalDateTime;
|
||||
|
||||
import static cn.hutool.core.util.RandomUtil.*;
|
||||
import static com.yunxi.scm.module.xxjj.enums.ErrorCodeConstants.*;
|
||||
import static com.yunxi.scm.framework.test.core.util.AssertUtils.*;
|
||||
import static com.yunxi.scm.framework.test.core.util.RandomUtils.*;
|
||||
import static com.yunxi.scm.framework.common.util.date.LocalDateTimeUtils.*;
|
||||
import static com.yunxi.scm.framework.common.util.object.ObjectUtils.*;
|
||||
import static com.yunxi.scm.framework.common.util.date.DateUtils.*;
|
||||
import static org.junit.jupiter.api.Assertions.*;
|
||||
import static org.mockito.Mockito.*;
|
||||
|
||||
/**
|
||||
* {@link ProductionProcessesServiceImpl} 的单元测试类
|
||||
*
|
||||
* @author 芋道源码
|
||||
*/
|
||||
@Import(ProductionProcessesServiceImpl.class)
|
||||
public class ProductionProcessesServiceImplTest extends BaseDbUnitTest {
|
||||
|
||||
@Resource
|
||||
private ProductionProcessesServiceImpl productionProcessesService;
|
||||
|
||||
@Resource
|
||||
private ProductionProcessesMapper productionProcessesMapper;
|
||||
|
||||
@Test
|
||||
public void testCreateProductionProcesses_success() {
|
||||
// 准备参数
|
||||
ProductionProcessesCreateReqVO reqVO = randomPojo(ProductionProcessesCreateReqVO.class);
|
||||
|
||||
// 调用
|
||||
Long productionProcessesId = productionProcessesService.createProductionProcesses(reqVO);
|
||||
// 断言
|
||||
assertNotNull(productionProcessesId);
|
||||
// 校验记录的属性是否正确
|
||||
ProductionProcessesDO productionProcesses = productionProcessesMapper.selectById(productionProcessesId);
|
||||
assertPojoEquals(reqVO, productionProcesses);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testUpdateProductionProcesses_success() {
|
||||
// mock 数据
|
||||
ProductionProcessesDO dbProductionProcesses = randomPojo(ProductionProcessesDO.class);
|
||||
productionProcessesMapper.insert(dbProductionProcesses);// @Sql: 先插入出一条存在的数据
|
||||
// 准备参数
|
||||
ProductionProcessesUpdateReqVO reqVO = randomPojo(ProductionProcessesUpdateReqVO.class, o -> {
|
||||
o.setId(dbProductionProcesses.getId()); // 设置更新的 ID
|
||||
});
|
||||
|
||||
// 调用
|
||||
productionProcessesService.updateProductionProcesses(reqVO);
|
||||
// 校验是否更新正确
|
||||
ProductionProcessesDO productionProcesses = productionProcessesMapper.selectById(reqVO.getId()); // 获取最新的
|
||||
assertPojoEquals(reqVO, productionProcesses);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testUpdateProductionProcesses_notExists() {
|
||||
// 准备参数
|
||||
ProductionProcessesUpdateReqVO reqVO = randomPojo(ProductionProcessesUpdateReqVO.class);
|
||||
|
||||
// 调用, 并断言异常
|
||||
assertServiceException(() -> productionProcessesService.updateProductionProcesses(reqVO), PRODUCTION_PROCESSES_NOT_EXISTS);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testDeleteProductionProcesses_success() {
|
||||
// mock 数据
|
||||
ProductionProcessesDO dbProductionProcesses = randomPojo(ProductionProcessesDO.class);
|
||||
productionProcessesMapper.insert(dbProductionProcesses);// @Sql: 先插入出一条存在的数据
|
||||
// 准备参数
|
||||
Long id = dbProductionProcesses.getId();
|
||||
|
||||
// 调用
|
||||
productionProcessesService.deleteProductionProcesses(id);
|
||||
// 校验数据不存在了
|
||||
assertNull(productionProcessesMapper.selectById(id));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testDeleteProductionProcesses_notExists() {
|
||||
// 准备参数
|
||||
Long id = randomLongId();
|
||||
|
||||
// 调用, 并断言异常
|
||||
assertServiceException(() -> productionProcessesService.deleteProductionProcesses(id), PRODUCTION_PROCESSES_NOT_EXISTS);
|
||||
}
|
||||
|
||||
@Test
|
||||
@Disabled // TODO 请修改 null 为需要的值,然后删除 @Disabled 注解
|
||||
public void testGetProductionProcessesPage() {
|
||||
// mock 数据
|
||||
ProductionProcessesDO dbProductionProcesses = randomPojo(ProductionProcessesDO.class, o -> { // 等会查询到
|
||||
o.setName(null);
|
||||
o.setSource(null);
|
||||
o.setType(null);
|
||||
o.setState(null);
|
||||
o.setDescription(null);
|
||||
o.setCreateTime(null);
|
||||
});
|
||||
productionProcessesMapper.insert(dbProductionProcesses);
|
||||
// 测试 name 不匹配
|
||||
productionProcessesMapper.insert(cloneIgnoreId(dbProductionProcesses, o -> o.setName(null)));
|
||||
// 测试 source 不匹配
|
||||
productionProcessesMapper.insert(cloneIgnoreId(dbProductionProcesses, o -> o.setSource(null)));
|
||||
// 测试 type 不匹配
|
||||
productionProcessesMapper.insert(cloneIgnoreId(dbProductionProcesses, o -> o.setType(null)));
|
||||
// 测试 state 不匹配
|
||||
productionProcessesMapper.insert(cloneIgnoreId(dbProductionProcesses, o -> o.setState(null)));
|
||||
// 测试 description 不匹配
|
||||
productionProcessesMapper.insert(cloneIgnoreId(dbProductionProcesses, o -> o.setDescription(null)));
|
||||
// 测试 createTime 不匹配
|
||||
productionProcessesMapper.insert(cloneIgnoreId(dbProductionProcesses, o -> o.setCreateTime(null)));
|
||||
// 准备参数
|
||||
ProductionProcessesPageReqVO reqVO = new ProductionProcessesPageReqVO();
|
||||
reqVO.setName(null);
|
||||
reqVO.setSource(null);
|
||||
reqVO.setType(null);
|
||||
reqVO.setState(null);
|
||||
reqVO.setDescription(null);
|
||||
reqVO.setCreateTime(buildBetweenTime(2023, 2, 1, 2023, 2, 28));
|
||||
|
||||
// 调用
|
||||
PageResult<ProductionProcessesDO> pageResult = productionProcessesService.getProductionProcessesPage(reqVO);
|
||||
// 断言
|
||||
assertEquals(1, pageResult.getTotal());
|
||||
assertEquals(1, pageResult.getList().size());
|
||||
assertPojoEquals(dbProductionProcesses, pageResult.getList().get(0));
|
||||
}
|
||||
|
||||
@Test
|
||||
@Disabled // TODO 请修改 null 为需要的值,然后删除 @Disabled 注解
|
||||
public void testGetProductionProcessesList() {
|
||||
// mock 数据
|
||||
ProductionProcessesDO dbProductionProcesses = randomPojo(ProductionProcessesDO.class, o -> { // 等会查询到
|
||||
o.setName(null);
|
||||
o.setSource(null);
|
||||
o.setType(null);
|
||||
o.setState(null);
|
||||
o.setDescription(null);
|
||||
o.setCreateTime(null);
|
||||
});
|
||||
productionProcessesMapper.insert(dbProductionProcesses);
|
||||
// 测试 name 不匹配
|
||||
productionProcessesMapper.insert(cloneIgnoreId(dbProductionProcesses, o -> o.setName(null)));
|
||||
// 测试 source 不匹配
|
||||
productionProcessesMapper.insert(cloneIgnoreId(dbProductionProcesses, o -> o.setSource(null)));
|
||||
// 测试 type 不匹配
|
||||
productionProcessesMapper.insert(cloneIgnoreId(dbProductionProcesses, o -> o.setType(null)));
|
||||
// 测试 state 不匹配
|
||||
productionProcessesMapper.insert(cloneIgnoreId(dbProductionProcesses, o -> o.setState(null)));
|
||||
// 测试 description 不匹配
|
||||
productionProcessesMapper.insert(cloneIgnoreId(dbProductionProcesses, o -> o.setDescription(null)));
|
||||
// 测试 createTime 不匹配
|
||||
productionProcessesMapper.insert(cloneIgnoreId(dbProductionProcesses, o -> o.setCreateTime(null)));
|
||||
// 准备参数
|
||||
ProductionProcessesExportReqVO reqVO = new ProductionProcessesExportReqVO();
|
||||
reqVO.setName(null);
|
||||
reqVO.setSource(null);
|
||||
reqVO.setType(null);
|
||||
reqVO.setState(null);
|
||||
reqVO.setDescription(null);
|
||||
reqVO.setCreateTime(buildBetweenTime(2023, 2, 1, 2023, 2, 28));
|
||||
|
||||
// 调用
|
||||
List<ProductionProcessesDO> list = productionProcessesService.getProductionProcessesList(reqVO);
|
||||
// 断言
|
||||
assertEquals(1, list.size());
|
||||
assertPojoEquals(dbProductionProcesses, list.get(0));
|
||||
}
|
||||
|
||||
}
|
@ -0,0 +1,54 @@
|
||||
import request from '@/utils/request'
|
||||
|
||||
// 创建企业信息
|
||||
export function createEnterprise(data) {
|
||||
return request({
|
||||
url: '/xxjj/enterprise/create',
|
||||
method: 'post',
|
||||
data: data
|
||||
})
|
||||
}
|
||||
|
||||
// 更新企业信息
|
||||
export function updateEnterprise(data) {
|
||||
return request({
|
||||
url: '/xxjj/enterprise/update',
|
||||
method: 'put',
|
||||
data: data
|
||||
})
|
||||
}
|
||||
|
||||
// 删除企业信息
|
||||
export function deleteEnterprise(id) {
|
||||
return request({
|
||||
url: '/xxjj/enterprise/delete?id=' + id,
|
||||
method: 'delete'
|
||||
})
|
||||
}
|
||||
|
||||
// 获得企业信息
|
||||
export function getEnterprise(id) {
|
||||
return request({
|
||||
url: '/xxjj/enterprise/get?id=' + id,
|
||||
method: 'get'
|
||||
})
|
||||
}
|
||||
|
||||
// 获得企业信息分页
|
||||
export function getEnterprisePage(query) {
|
||||
return request({
|
||||
url: '/xxjj/enterprise/page',
|
||||
method: 'get',
|
||||
params: query
|
||||
})
|
||||
}
|
||||
|
||||
// 导出企业信息 Excel
|
||||
export function exportEnterpriseExcel(query) {
|
||||
return request({
|
||||
url: '/xxjj/enterprise/export-excel',
|
||||
method: 'get',
|
||||
params: query,
|
||||
responseType: 'blob'
|
||||
})
|
||||
}
|
@ -0,0 +1,54 @@
|
||||
import request from '@/utils/request'
|
||||
|
||||
// 创建企业合约
|
||||
export function createEnterpriseContract(data) {
|
||||
return request({
|
||||
url: '/xxjj/enterprise-contract/create',
|
||||
method: 'post',
|
||||
data: data
|
||||
})
|
||||
}
|
||||
|
||||
// 更新企业合约
|
||||
export function updateEnterpriseContract(data) {
|
||||
return request({
|
||||
url: '/xxjj/enterprise-contract/update',
|
||||
method: 'put',
|
||||
data: data
|
||||
})
|
||||
}
|
||||
|
||||
// 删除企业合约
|
||||
export function deleteEnterpriseContract(id) {
|
||||
return request({
|
||||
url: '/xxjj/enterprise-contract/delete?id=' + id,
|
||||
method: 'delete'
|
||||
})
|
||||
}
|
||||
|
||||
// 获得企业合约
|
||||
export function getEnterpriseContract(id) {
|
||||
return request({
|
||||
url: '/xxjj/enterprise-contract/get?id=' + id,
|
||||
method: 'get'
|
||||
})
|
||||
}
|
||||
|
||||
// 获得企业合约分页
|
||||
export function getEnterpriseContractPage(query) {
|
||||
return request({
|
||||
url: '/xxjj/enterprise-contract/page',
|
||||
method: 'get',
|
||||
params: query
|
||||
})
|
||||
}
|
||||
|
||||
// 导出企业合约 Excel
|
||||
export function exportEnterpriseContractExcel(query) {
|
||||
return request({
|
||||
url: '/xxjj/enterprise-contract/export-excel',
|
||||
method: 'get',
|
||||
params: query,
|
||||
responseType: 'blob'
|
||||
})
|
||||
}
|
@ -0,0 +1,54 @@
|
||||
import request from '@/utils/request'
|
||||
|
||||
// 创建物料材质
|
||||
export function createMaterialQuality(data) {
|
||||
return request({
|
||||
url: '/xxjj/material-quality/create',
|
||||
method: 'post',
|
||||
data: data
|
||||
})
|
||||
}
|
||||
|
||||
// 更新物料材质
|
||||
export function updateMaterialQuality(data) {
|
||||
return request({
|
||||
url: '/xxjj/material-quality/update',
|
||||
method: 'put',
|
||||
data: data
|
||||
})
|
||||
}
|
||||
|
||||
// 删除物料材质
|
||||
export function deleteMaterialQuality(id) {
|
||||
return request({
|
||||
url: '/xxjj/material-quality/delete?id=' + id,
|
||||
method: 'delete'
|
||||
})
|
||||
}
|
||||
|
||||
// 获得物料材质
|
||||
export function getMaterialQuality(id) {
|
||||
return request({
|
||||
url: '/xxjj/material-quality/get?id=' + id,
|
||||
method: 'get'
|
||||
})
|
||||
}
|
||||
|
||||
// 获得物料材质分页
|
||||
export function getMaterialQualityPage(query) {
|
||||
return request({
|
||||
url: '/xxjj/material-quality/page',
|
||||
method: 'get',
|
||||
params: query
|
||||
})
|
||||
}
|
||||
|
||||
// 导出物料材质 Excel
|
||||
export function exportMaterialQualityExcel(query) {
|
||||
return request({
|
||||
url: '/xxjj/material-quality/export-excel',
|
||||
method: 'get',
|
||||
params: query,
|
||||
responseType: 'blob'
|
||||
})
|
||||
}
|
@ -0,0 +1,54 @@
|
||||
import request from '@/utils/request'
|
||||
|
||||
// 创建工序
|
||||
export function createProductionProcesses(data) {
|
||||
return request({
|
||||
url: '/xxjj/production-processes/create',
|
||||
method: 'post',
|
||||
data: data
|
||||
})
|
||||
}
|
||||
|
||||
// 更新工序
|
||||
export function updateProductionProcesses(data) {
|
||||
return request({
|
||||
url: '/xxjj/production-processes/update',
|
||||
method: 'put',
|
||||
data: data
|
||||
})
|
||||
}
|
||||
|
||||
// 删除工序
|
||||
export function deleteProductionProcesses(id) {
|
||||
return request({
|
||||
url: '/xxjj/production-processes/delete?id=' + id,
|
||||
method: 'delete'
|
||||
})
|
||||
}
|
||||
|
||||
// 获得工序
|
||||
export function getProductionProcesses(id) {
|
||||
return request({
|
||||
url: '/xxjj/production-processes/get?id=' + id,
|
||||
method: 'get'
|
||||
})
|
||||
}
|
||||
|
||||
// 获得工序分页
|
||||
export function getProductionProcessesPage(query) {
|
||||
return request({
|
||||
url: '/xxjj/production-processes/page',
|
||||
method: 'get',
|
||||
params: query
|
||||
})
|
||||
}
|
||||
|
||||
// 导出工序 Excel
|
||||
export function exportProductionProcessesExcel(query) {
|
||||
return request({
|
||||
url: '/xxjj/production-processes/export-excel',
|
||||
method: 'get',
|
||||
params: query,
|
||||
responseType: 'blob'
|
||||
})
|
||||
}
|
@ -0,0 +1,389 @@
|
||||
<template>
|
||||
<div class="app-container">
|
||||
|
||||
<!-- 搜索工作栏 -->
|
||||
<el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="68px">
|
||||
<el-form-item label="企业编号" prop="enterpriseId">
|
||||
<el-input v-model="queryParams.enterpriseId" placeholder="请输入企业编号" clearable @keyup.enter.native="handleQuery"/>
|
||||
</el-form-item>
|
||||
<el-form-item label="合约编号" prop="contractCode">
|
||||
<el-input v-model="queryParams.contractCode" placeholder="请输入合约编号" clearable @keyup.enter.native="handleQuery"/>
|
||||
</el-form-item>
|
||||
<el-form-item label="产品编号" prop="productCode">
|
||||
<el-input v-model="queryParams.productCode" placeholder="请输入产品编号" clearable @keyup.enter.native="handleQuery"/>
|
||||
</el-form-item>
|
||||
<el-form-item label="产品名称" prop="productName">
|
||||
<el-input v-model="queryParams.productName" placeholder="请输入产品名称" clearable @keyup.enter.native="handleQuery"/>
|
||||
</el-form-item>
|
||||
<el-form-item label="订单编号" prop="orderCode">
|
||||
<el-input v-model="queryParams.orderCode" placeholder="请输入订单编号" clearable @keyup.enter.native="handleQuery"/>
|
||||
</el-form-item>
|
||||
<el-form-item label="合约状态" prop="contractState">
|
||||
<el-select v-model="queryParams.contractState" placeholder="请选择合约状态" clearable size="small">
|
||||
<el-option v-for="dict in this.getDictDatas(DICT_TYPE.CONTRACT_STATE)"
|
||||
:key="dict.value" :label="dict.label" :value="dict.value"/>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item label="合约开始时间" prop="contractStart">
|
||||
<el-date-picker v-model="queryParams.contractStart" style="width: 240px" value-format="yyyy-MM-dd HH:mm:ss" type="daterange"
|
||||
range-separator="-" start-placeholder="开始日期" end-placeholder="结束日期" :default-time="['00:00:00', '23:59:59']" />
|
||||
</el-form-item>
|
||||
<el-form-item label="合约结束时间" prop="contractEnd">
|
||||
<el-date-picker v-model="queryParams.contractEnd" style="width: 240px" value-format="yyyy-MM-dd HH:mm:ss" type="daterange"
|
||||
range-separator="-" start-placeholder="开始日期" end-placeholder="结束日期" :default-time="['00:00:00', '23:59:59']" />
|
||||
</el-form-item>
|
||||
<el-form-item label="支付方式" prop="payType">
|
||||
<el-select v-model="queryParams.payType" placeholder="请选择支付方式" clearable size="small">
|
||||
<el-option v-for="dict in this.getDictDatas(DICT_TYPE.PAY_TYPE)"
|
||||
:key="dict.value" :label="dict.label" :value="dict.value"/>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item label="订单状态" prop="orderState">
|
||||
<el-select v-model="queryParams.orderState" placeholder="请选择订单状态" clearable size="small">
|
||||
<el-option v-for="dict in this.getDictDatas(DICT_TYPE.ORDER_STATE)"
|
||||
:key="dict.value" :label="dict.label" :value="dict.value"/>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item label="订单来源" prop="orderSource">
|
||||
<el-select v-model="queryParams.orderSource" placeholder="请选择订单来源" clearable size="small">
|
||||
<el-option v-for="dict in this.getDictDatas(DICT_TYPE.ORDER_SOURCE)"
|
||||
:key="dict.value" :label="dict.label" :value="dict.value"/>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item label="销售人员编号" prop="salesPersonId">
|
||||
<el-input v-model="queryParams.salesPersonId" placeholder="请输入销售人员编号" clearable @keyup.enter.native="handleQuery"/>
|
||||
</el-form-item>
|
||||
<el-form-item label="销售人员姓名" prop="salesPersonName">
|
||||
<el-input v-model="queryParams.salesPersonName" placeholder="请输入销售人员姓名" clearable @keyup.enter.native="handleQuery"/>
|
||||
</el-form-item>
|
||||
<el-form-item label="创建时间" prop="createTime">
|
||||
<el-date-picker v-model="queryParams.createTime" style="width: 240px" value-format="yyyy-MM-dd HH:mm:ss" type="daterange"
|
||||
range-separator="-" start-placeholder="开始日期" end-placeholder="结束日期" :default-time="['00:00:00', '23:59:59']" />
|
||||
</el-form-item>
|
||||
<el-form-item>
|
||||
<el-button type="primary" icon="el-icon-search" @click="handleQuery">搜索</el-button>
|
||||
<el-button icon="el-icon-refresh" @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="['xxjj:enterprise-contract:create']">新增</el-button>
|
||||
</el-col>
|
||||
<el-col :span="1.5">
|
||||
<el-button type="warning" plain icon="el-icon-download" size="mini" @click="handleExport" :loading="exportLoading"
|
||||
v-hasPermi="['xxjj:enterprise-contract:export']">导出</el-button>
|
||||
</el-col>
|
||||
<right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
|
||||
</el-row>
|
||||
|
||||
<!-- 列表 -->
|
||||
<el-table v-loading="loading" :data="list">
|
||||
<el-table-column label="编号" align="center" prop="id" />
|
||||
<el-table-column label="企业编号" align="center" prop="enterpriseId" />
|
||||
<el-table-column label="合约编号" align="center" prop="contractCode" />
|
||||
<el-table-column label="产品编号" align="center" prop="productCode" />
|
||||
<el-table-column label="产品名称" align="center" prop="productName" />
|
||||
<el-table-column label="订单编号" align="center" prop="orderCode" />
|
||||
<el-table-column label="合约状态" align="center" prop="contractState">
|
||||
<template v-slot="scope">
|
||||
<dict-tag :type="DICT_TYPE.CONTRACT_STATE" :value="scope.row.contractState" />
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="合约开始时间" align="center" prop="contractStart" width="180">
|
||||
<template v-slot="scope">
|
||||
<span>{{ parseTime(scope.row.contractStart) }}</span>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="合约结束时间" align="center" prop="contractEnd" width="180">
|
||||
<template v-slot="scope">
|
||||
<span>{{ parseTime(scope.row.contractEnd) }}</span>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="订单金额" align="center" prop="orderAmount" />
|
||||
<el-table-column label="折扣金额" align="center" prop="discountAmount" />
|
||||
<el-table-column label="应付金额" align="center" prop="payableAmount" />
|
||||
<el-table-column label="支付方式" align="center" prop="payType">
|
||||
<template v-slot="scope">
|
||||
<dict-tag :type="DICT_TYPE.PAY_TYPE" :value="scope.row.payType" />
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="订单状态" align="center" prop="orderState">
|
||||
<template v-slot="scope">
|
||||
<dict-tag :type="DICT_TYPE.ORDER_STATE" :value="scope.row.orderState" />
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="订单来源" align="center" prop="orderSource">
|
||||
<template v-slot="scope">
|
||||
<dict-tag :type="DICT_TYPE.ORDER_SOURCE" :value="scope.row.orderSource" />
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="销售人员编号" align="center" prop="salesPersonId" />
|
||||
<el-table-column label="销售人员姓名" align="center" prop="salesPersonName" />
|
||||
<el-table-column label="描述" align="center" prop="description" />
|
||||
<el-table-column label="创建时间" align="center" prop="createTime" width="180">
|
||||
<template v-slot="scope">
|
||||
<span>{{ parseTime(scope.row.createTime) }}</span>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="操作" align="center" class-name="small-padding fixed-width">
|
||||
<template v-slot="scope">
|
||||
<el-button size="mini" type="text" icon="el-icon-edit" @click="handleUpdate(scope.row)"
|
||||
v-hasPermi="['xxjj:enterprise-contract:update']">修改</el-button>
|
||||
<el-button size="mini" type="text" icon="el-icon-delete" @click="handleDelete(scope.row)"
|
||||
v-hasPermi="['xxjj:enterprise-contract:delete']">删除</el-button>
|
||||
</template>
|
||||
</el-table-column>
|
||||
</el-table>
|
||||
<!-- 分页组件 -->
|
||||
<pagination v-show="total > 0" :total="total" :page.sync="queryParams.pageNo" :limit.sync="queryParams.pageSize"
|
||||
@pagination="getList"/>
|
||||
|
||||
<!-- 对话框(添加 / 修改) -->
|
||||
<el-dialog :title="title" :visible.sync="open" width="500px" v-dialogDrag append-to-body>
|
||||
<el-form ref="form" :model="form" :rules="rules" label-width="80px">
|
||||
<el-form-item label="企业编号" prop="enterpriseId">
|
||||
<el-input v-model="form.enterpriseId" placeholder="请输入企业编号" />
|
||||
</el-form-item>
|
||||
<el-form-item label="合约编号" prop="contractCode">
|
||||
<el-input v-model="form.contractCode" placeholder="请输入合约编号" />
|
||||
</el-form-item>
|
||||
<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="orderCode">
|
||||
<el-input v-model="form.orderCode" placeholder="请输入订单编号" />
|
||||
</el-form-item>
|
||||
<el-form-item label="合约状态" prop="contractState">
|
||||
<el-select v-model="form.contractState" placeholder="请选择合约状态">
|
||||
<el-option v-for="dict in this.getDictDatas(DICT_TYPE.CONTRACT_STATE)"
|
||||
:key="dict.value" :label="dict.label" :value="dict.value" />
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item label="合约开始时间" prop="contractStart">
|
||||
<el-date-picker clearable v-model="form.contractStart" type="date" value-format="timestamp" placeholder="选择合约开始时间" />
|
||||
</el-form-item>
|
||||
<el-form-item label="合约结束时间" prop="contractEnd">
|
||||
<el-date-picker clearable v-model="form.contractEnd" type="date" value-format="timestamp" placeholder="选择合约结束时间" />
|
||||
</el-form-item>
|
||||
<el-form-item label="订单金额" prop="orderAmount">
|
||||
<el-input v-model="form.orderAmount" placeholder="请输入订单金额" />
|
||||
</el-form-item>
|
||||
<el-form-item label="折扣金额" prop="discountAmount">
|
||||
<el-input v-model="form.discountAmount" placeholder="请输入折扣金额" />
|
||||
</el-form-item>
|
||||
<el-form-item label="应付金额" prop="payableAmount">
|
||||
<el-input v-model="form.payableAmount" placeholder="请输入应付金额" />
|
||||
</el-form-item>
|
||||
<el-form-item label="支付方式" prop="payType">
|
||||
<el-select v-model="form.payType" placeholder="请选择支付方式">
|
||||
<el-option v-for="dict in this.getDictDatas(DICT_TYPE.PAY_TYPE)"
|
||||
:key="dict.value" :label="dict.label" :value="dict.value" />
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item label="订单状态" prop="orderState">
|
||||
<el-select v-model="form.orderState" placeholder="请选择订单状态">
|
||||
<el-option v-for="dict in this.getDictDatas(DICT_TYPE.ORDER_STATE)"
|
||||
:key="dict.value" :label="dict.label" :value="dict.value" />
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item label="订单来源" prop="orderSource">
|
||||
<el-select v-model="form.orderSource" placeholder="请选择订单来源">
|
||||
<el-option v-for="dict in this.getDictDatas(DICT_TYPE.ORDER_SOURCE)"
|
||||
:key="dict.value" :label="dict.label" :value="dict.value" />
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item label="销售人员编号" prop="salesPersonId">
|
||||
<el-input v-model="form.salesPersonId" placeholder="请输入销售人员编号" />
|
||||
</el-form-item>
|
||||
<el-form-item label="销售人员姓名" prop="salesPersonName">
|
||||
<el-input v-model="form.salesPersonName" placeholder="请输入销售人员姓名" />
|
||||
</el-form-item>
|
||||
<el-form-item label="描述">
|
||||
<editor v-model="form.description" :min-height="192"/>
|
||||
</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 { createEnterpriseContract, updateEnterpriseContract, deleteEnterpriseContract, getEnterpriseContract, getEnterpriseContractPage, exportEnterpriseContractExcel } from "@/api/xxjj/enterpriseContract";
|
||||
import Editor from '@/components/Editor';
|
||||
|
||||
export default {
|
||||
name: "EnterpriseContract",
|
||||
components: {
|
||||
Editor,
|
||||
},
|
||||
data() {
|
||||
return {
|
||||
// 遮罩层
|
||||
loading: true,
|
||||
// 导出遮罩层
|
||||
exportLoading: false,
|
||||
// 显示搜索条件
|
||||
showSearch: true,
|
||||
// 总条数
|
||||
total: 0,
|
||||
// 企业合约列表
|
||||
list: [],
|
||||
// 弹出层标题
|
||||
title: "",
|
||||
// 是否显示弹出层
|
||||
open: false,
|
||||
// 查询参数
|
||||
queryParams: {
|
||||
pageNo: 1,
|
||||
pageSize: 10,
|
||||
enterpriseId: null,
|
||||
contractCode: null,
|
||||
productCode: null,
|
||||
productName: null,
|
||||
orderCode: null,
|
||||
contractState: null,
|
||||
contractStart: [],
|
||||
contractEnd: [],
|
||||
payType: null,
|
||||
orderState: null,
|
||||
orderSource: null,
|
||||
salesPersonId: null,
|
||||
salesPersonName: null,
|
||||
createTime: [],
|
||||
},
|
||||
// 表单参数
|
||||
form: {},
|
||||
// 表单校验
|
||||
rules: {
|
||||
salesPersonName: [{ required: true, message: "销售人员姓名不能为空", trigger: "blur" }],
|
||||
}
|
||||
};
|
||||
},
|
||||
created() {
|
||||
this.getList();
|
||||
},
|
||||
methods: {
|
||||
/** 查询列表 */
|
||||
getList() {
|
||||
this.loading = true;
|
||||
// 执行查询
|
||||
getEnterpriseContractPage(this.queryParams).then(response => {
|
||||
this.list = response.data.list;
|
||||
this.total = response.data.total;
|
||||
this.loading = false;
|
||||
});
|
||||
},
|
||||
/** 取消按钮 */
|
||||
cancel() {
|
||||
this.open = false;
|
||||
this.reset();
|
||||
},
|
||||
/** 表单重置 */
|
||||
reset() {
|
||||
this.form = {
|
||||
id: undefined,
|
||||
enterpriseId: undefined,
|
||||
contractCode: undefined,
|
||||
productCode: undefined,
|
||||
productName: undefined,
|
||||
orderCode: undefined,
|
||||
contractState: undefined,
|
||||
contractStart: undefined,
|
||||
contractEnd: undefined,
|
||||
orderAmount: undefined,
|
||||
discountAmount: undefined,
|
||||
payableAmount: undefined,
|
||||
payType: undefined,
|
||||
orderState: undefined,
|
||||
orderSource: undefined,
|
||||
salesPersonId: undefined,
|
||||
salesPersonName: undefined,
|
||||
description: undefined,
|
||||
};
|
||||
this.resetForm("form");
|
||||
},
|
||||
/** 搜索按钮操作 */
|
||||
handleQuery() {
|
||||
this.queryParams.pageNo = 1;
|
||||
this.getList();
|
||||
},
|
||||
/** 重置按钮操作 */
|
||||
resetQuery() {
|
||||
this.resetForm("queryForm");
|
||||
this.handleQuery();
|
||||
},
|
||||
/** 新增按钮操作 */
|
||||
handleAdd() {
|
||||
this.reset();
|
||||
this.open = true;
|
||||
this.title = "添加企业合约";
|
||||
},
|
||||
/** 修改按钮操作 */
|
||||
handleUpdate(row) {
|
||||
this.reset();
|
||||
const id = row.id;
|
||||
getEnterpriseContract(id).then(response => {
|
||||
this.form = response.data;
|
||||
this.open = true;
|
||||
this.title = "修改企业合约";
|
||||
});
|
||||
},
|
||||
/** 提交按钮 */
|
||||
submitForm() {
|
||||
this.$refs["form"].validate(valid => {
|
||||
if (!valid) {
|
||||
return;
|
||||
}
|
||||
// 修改的提交
|
||||
if (this.form.id != null) {
|
||||
updateEnterpriseContract(this.form).then(response => {
|
||||
this.$modal.msgSuccess("修改成功");
|
||||
this.open = false;
|
||||
this.getList();
|
||||
});
|
||||
return;
|
||||
}
|
||||
// 添加的提交
|
||||
createEnterpriseContract(this.form).then(response => {
|
||||
this.$modal.msgSuccess("新增成功");
|
||||
this.open = false;
|
||||
this.getList();
|
||||
});
|
||||
});
|
||||
},
|
||||
/** 删除按钮操作 */
|
||||
handleDelete(row) {
|
||||
const id = row.id;
|
||||
this.$modal.confirm('是否确认删除企业合约编号为"' + id + '"的数据项?').then(function() {
|
||||
return deleteEnterpriseContract(id);
|
||||
}).then(() => {
|
||||
this.getList();
|
||||
this.$modal.msgSuccess("删除成功");
|
||||
}).catch(() => {});
|
||||
},
|
||||
/** 导出按钮操作 */
|
||||
handleExport() {
|
||||
// 处理查询参数
|
||||
let params = {...this.queryParams};
|
||||
params.pageNo = undefined;
|
||||
params.pageSize = undefined;
|
||||
this.$modal.confirm('是否确认导出所有企业合约数据项?').then(() => {
|
||||
this.exportLoading = true;
|
||||
return exportEnterpriseContractExcel(params);
|
||||
}).then(response => {
|
||||
this.$download.excel(response, '企业合约.xls');
|
||||
this.exportLoading = false;
|
||||
}).catch(() => {});
|
||||
}
|
||||
}
|
||||
};
|
||||
</script>
|
@ -0,0 +1,274 @@
|
||||
<template>
|
||||
<div class="app-container">
|
||||
|
||||
<!-- 搜索工作栏 -->
|
||||
<el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="68px">
|
||||
<el-form-item label="材质名称" prop="name">
|
||||
<el-input v-model="queryParams.name" placeholder="请输入材质名称" clearable @keyup.enter.native="handleQuery"/>
|
||||
</el-form-item>
|
||||
<el-form-item label="来源" prop="source">
|
||||
<el-select v-model="queryParams.source" placeholder="请选择来源" clearable size="small">
|
||||
<el-option v-for="dict in this.getDictDatas(DICT_TYPE.SOURCE)"
|
||||
:key="dict.value" :label="dict.label" :value="dict.value"/>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item label="类型" prop="type">
|
||||
<el-select v-model="queryParams.type" placeholder="请选择类型" clearable size="small">
|
||||
<el-option v-for="dict in this.getDictDatas(DICT_TYPE.QUALITY_TYPE)"
|
||||
:key="dict.value" :label="dict.label" :value="dict.value"/>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item label="状态" prop="state">
|
||||
<el-select v-model="queryParams.state" placeholder="请选择状态" clearable size="small">
|
||||
<el-option v-for="dict in this.getDictDatas(DICT_TYPE.BUSINESS_STATE)"
|
||||
:key="dict.value" :label="dict.label" :value="dict.value"/>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item label="创建时间" prop="createTime">
|
||||
<el-date-picker v-model="queryParams.createTime" style="width: 240px" value-format="yyyy-MM-dd HH:mm:ss" type="daterange"
|
||||
range-separator="-" start-placeholder="开始日期" end-placeholder="结束日期" :default-time="['00:00:00', '23:59:59']" />
|
||||
</el-form-item>
|
||||
<el-form-item>
|
||||
<el-button type="primary" icon="el-icon-search" @click="handleQuery">搜索</el-button>
|
||||
<el-button icon="el-icon-refresh" @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="['xxjj:material-quality:create']">新增</el-button>
|
||||
</el-col>
|
||||
<el-col :span="1.5">
|
||||
<el-button type="warning" plain icon="el-icon-download" size="mini" @click="handleExport" :loading="exportLoading"
|
||||
v-hasPermi="['xxjj:material-quality:export']">导出</el-button>
|
||||
</el-col>
|
||||
<right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
|
||||
</el-row>
|
||||
|
||||
<!-- 列表 -->
|
||||
<el-table v-loading="loading" :data="list">
|
||||
<el-table-column label="编号" align="center" prop="id" />
|
||||
<el-table-column label="材质名称" align="center" prop="name" />
|
||||
<el-table-column label="来源" align="center" prop="source">
|
||||
<template v-slot="scope">
|
||||
<dict-tag :type="DICT_TYPE.SOURCE" :value="scope.row.source" />
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="类型" align="center" prop="type">
|
||||
<template v-slot="scope">
|
||||
<dict-tag :type="DICT_TYPE.QUALITY_TYPE" :value="scope.row.type" />
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="状态" align="center" prop="state">
|
||||
<template v-slot="scope">
|
||||
<dict-tag :type="DICT_TYPE.BUSINESS_STATE" :value="scope.row.state" />
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="描述" align="center" prop="description" />
|
||||
<el-table-column label="创建时间" align="center" prop="createTime" width="180">
|
||||
<template v-slot="scope">
|
||||
<span>{{ parseTime(scope.row.createTime) }}</span>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="操作" align="center" class-name="small-padding fixed-width">
|
||||
<template v-slot="scope">
|
||||
<el-button size="mini" type="text" icon="el-icon-edit" @click="handleUpdate(scope.row)"
|
||||
v-hasPermi="['xxjj:material-quality:update']">修改</el-button>
|
||||
<el-button size="mini" type="text" icon="el-icon-delete" @click="handleDelete(scope.row)"
|
||||
v-hasPermi="['xxjj:material-quality:delete']">删除</el-button>
|
||||
</template>
|
||||
</el-table-column>
|
||||
</el-table>
|
||||
<!-- 分页组件 -->
|
||||
<pagination v-show="total > 0" :total="total" :page.sync="queryParams.pageNo" :limit.sync="queryParams.pageSize"
|
||||
@pagination="getList"/>
|
||||
|
||||
<!-- 对话框(添加 / 修改) -->
|
||||
<el-dialog :title="title" :visible.sync="open" width="700px" v-dialogDrag append-to-body>
|
||||
<el-form ref="form" :model="form" :rules="rules" label-width="80px">
|
||||
<el-form-item label="材质名称" prop="name">
|
||||
<el-input v-model="form.name" placeholder="请输入材质名称" />
|
||||
</el-form-item>
|
||||
<el-form-item label="来源" prop="source">
|
||||
<el-select v-model="form.source" placeholder="请选择来源">
|
||||
<el-option v-for="dict in this.getDictDatas(DICT_TYPE.SOURCE)"
|
||||
:key="dict.value" :label="dict.label" :value="dict.value" />
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item label="类型" prop="type">
|
||||
<el-select v-model="form.type" placeholder="请选择类型">
|
||||
<el-option v-for="dict in this.getDictDatas(DICT_TYPE.QUALITY_TYPE)"
|
||||
:key="dict.value" :label="dict.label" :value="dict.value" />
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item label="状态" prop="state">
|
||||
<el-select v-model="form.state" placeholder="请选择状态">
|
||||
<el-option v-for="dict in this.getDictDatas(DICT_TYPE.BUSINESS_STATE)"
|
||||
:key="dict.value" :label="dict.label" :value="dict.value" />
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item label="描述">
|
||||
<editor v-model="form.description" :min-height="192"/>
|
||||
</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 { createMaterialQuality, updateMaterialQuality, deleteMaterialQuality, getMaterialQuality, getMaterialQualityPage, exportMaterialQualityExcel } from "@/api/xxjj/materialQuality";
|
||||
import Editor from '@/components/Editor';
|
||||
|
||||
export default {
|
||||
name: "MaterialQuality",
|
||||
components: {
|
||||
Editor,
|
||||
},
|
||||
data() {
|
||||
return {
|
||||
// 遮罩层
|
||||
loading: true,
|
||||
// 导出遮罩层
|
||||
exportLoading: false,
|
||||
// 显示搜索条件
|
||||
showSearch: true,
|
||||
// 总条数
|
||||
total: 0,
|
||||
// 物料材质列表
|
||||
list: [],
|
||||
// 弹出层标题
|
||||
title: "",
|
||||
// 是否显示弹出层
|
||||
open: false,
|
||||
// 查询参数
|
||||
queryParams: {
|
||||
pageNo: 1,
|
||||
pageSize: 10,
|
||||
name: null,
|
||||
source: null,
|
||||
type: null,
|
||||
state: null,
|
||||
description: null,
|
||||
createTime: [],
|
||||
},
|
||||
// 表单参数
|
||||
form: {},
|
||||
// 表单校验
|
||||
rules: {
|
||||
name: [{ required: true, message: "材质名称不能为空", trigger: "blur" }],
|
||||
}
|
||||
};
|
||||
},
|
||||
created() {
|
||||
this.getList();
|
||||
},
|
||||
methods: {
|
||||
/** 查询列表 */
|
||||
getList() {
|
||||
this.loading = true;
|
||||
// 执行查询
|
||||
getMaterialQualityPage(this.queryParams).then(response => {
|
||||
this.list = response.data.list;
|
||||
this.total = response.data.total;
|
||||
this.loading = false;
|
||||
});
|
||||
},
|
||||
/** 取消按钮 */
|
||||
cancel() {
|
||||
this.open = false;
|
||||
this.reset();
|
||||
},
|
||||
/** 表单重置 */
|
||||
reset() {
|
||||
this.form = {
|
||||
id: undefined,
|
||||
name: undefined,
|
||||
source: undefined,
|
||||
type: undefined,
|
||||
state: undefined,
|
||||
description: undefined,
|
||||
};
|
||||
this.resetForm("form");
|
||||
},
|
||||
/** 搜索按钮操作 */
|
||||
handleQuery() {
|
||||
this.queryParams.pageNo = 1;
|
||||
this.getList();
|
||||
},
|
||||
/** 重置按钮操作 */
|
||||
resetQuery() {
|
||||
this.resetForm("queryForm");
|
||||
this.handleQuery();
|
||||
},
|
||||
/** 新增按钮操作 */
|
||||
handleAdd() {
|
||||
this.reset();
|
||||
this.open = true;
|
||||
this.title = "添加物料材质";
|
||||
},
|
||||
/** 修改按钮操作 */
|
||||
handleUpdate(row) {
|
||||
this.reset();
|
||||
const id = row.id;
|
||||
getMaterialQuality(id).then(response => {
|
||||
this.form = response.data;
|
||||
this.open = true;
|
||||
this.title = "修改物料材质";
|
||||
});
|
||||
},
|
||||
/** 提交按钮 */
|
||||
submitForm() {
|
||||
this.$refs["form"].validate(valid => {
|
||||
if (!valid) {
|
||||
return;
|
||||
}
|
||||
// 修改的提交
|
||||
if (this.form.id != null) {
|
||||
updateMaterialQuality(this.form).then(response => {
|
||||
this.$modal.msgSuccess("修改成功");
|
||||
this.open = false;
|
||||
this.getList();
|
||||
});
|
||||
return;
|
||||
}
|
||||
// 添加的提交
|
||||
createMaterialQuality(this.form).then(response => {
|
||||
this.$modal.msgSuccess("新增成功");
|
||||
this.open = false;
|
||||
this.getList();
|
||||
});
|
||||
});
|
||||
},
|
||||
/** 删除按钮操作 */
|
||||
handleDelete(row) {
|
||||
const id = row.id;
|
||||
this.$modal.confirm('是否确认删除物料材质编号为"' + id + '"的数据项?').then(function() {
|
||||
return deleteMaterialQuality(id);
|
||||
}).then(() => {
|
||||
this.getList();
|
||||
this.$modal.msgSuccess("删除成功");
|
||||
}).catch(() => {});
|
||||
},
|
||||
/** 导出按钮操作 */
|
||||
handleExport() {
|
||||
// 处理查询参数
|
||||
let params = {...this.queryParams};
|
||||
params.pageNo = undefined;
|
||||
params.pageSize = undefined;
|
||||
this.$modal.confirm('是否确认导出所有物料材质数据项?').then(() => {
|
||||
this.exportLoading = true;
|
||||
return exportMaterialQualityExcel(params);
|
||||
}).then(response => {
|
||||
this.$download.excel(response, '物料材质.xls');
|
||||
this.exportLoading = false;
|
||||
}).catch(() => {});
|
||||
}
|
||||
}
|
||||
};
|
||||
</script>
|
@ -0,0 +1,282 @@
|
||||
<template>
|
||||
<div class="app-container">
|
||||
|
||||
<!-- 搜索工作栏 -->
|
||||
<el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="68px">
|
||||
<el-form-item label="工序名称" prop="name">
|
||||
<el-input v-model="queryParams.name" placeholder="请输入工序名称" clearable @keyup.enter.native="handleQuery"/>
|
||||
</el-form-item>
|
||||
<el-form-item label="来源" prop="source">
|
||||
<el-select v-model="queryParams.source" placeholder="请选择来源" clearable size="small">
|
||||
<el-option v-for="dict in this.getDictDatas(DICT_TYPE.SOURCE)"
|
||||
:key="dict.value" :label="dict.label" :value="dict.value"/>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item label="工序类型" prop="type">
|
||||
<el-select v-model="queryParams.type" placeholder="请选择工序类型" clearable size="small">
|
||||
<el-option v-for="dict in this.getDictDatas(DICT_TYPE.PROCESSES_TYPE)"
|
||||
:key="dict.value" :label="dict.label" :value="dict.value"/>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item label="状态" prop="state">
|
||||
<el-select v-model="queryParams.state" placeholder="请选择状态" clearable size="small">
|
||||
<el-option v-for="dict in this.getDictDatas(DICT_TYPE.BUSINESS_STATE)"
|
||||
:key="dict.value" :label="dict.label" :value="dict.value"/>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item label="创建时间" prop="createTime">
|
||||
<el-date-picker v-model="queryParams.createTime" style="width: 240px" value-format="yyyy-MM-dd HH:mm:ss" type="daterange"
|
||||
range-separator="-" start-placeholder="开始日期" end-placeholder="结束日期" :default-time="['00:00:00', '23:59:59']" />
|
||||
</el-form-item>
|
||||
<el-form-item>
|
||||
<el-button type="primary" icon="el-icon-search" @click="handleQuery">搜索</el-button>
|
||||
<el-button icon="el-icon-refresh" @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="['xxjj:production-processes:create']">新增</el-button>
|
||||
</el-col>
|
||||
<el-col :span="1.5">
|
||||
<el-button type="warning" plain icon="el-icon-download" size="mini" @click="handleExport" :loading="exportLoading"
|
||||
v-hasPermi="['xxjj:production-processes:export']">导出</el-button>
|
||||
</el-col>
|
||||
<right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
|
||||
</el-row>
|
||||
|
||||
<!-- 列表 -->
|
||||
<el-table v-loading="loading" :data="list">
|
||||
<el-table-column label="编号" align="center" prop="id" />
|
||||
<el-table-column label="工序名称" align="center" prop="name" />
|
||||
<el-table-column label="图片" align="center" prop="pictures" />
|
||||
<el-table-column label="来源" align="center" prop="source">
|
||||
<template v-slot="scope">
|
||||
<dict-tag :type="DICT_TYPE.SOURCE" :value="scope.row.source" />
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="工序类型" align="center" prop="type">
|
||||
<template v-slot="scope">
|
||||
<dict-tag :type="DICT_TYPE.PROCESSES_TYPE" :value="scope.row.type" />
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="状态" align="center" prop="state">
|
||||
<template v-slot="scope">
|
||||
<dict-tag :type="DICT_TYPE.BUSINESS_STATE" :value="scope.row.state" />
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="描述" align="center" prop="description" />
|
||||
<el-table-column label="创建时间" align="center" prop="createTime" width="180">
|
||||
<template v-slot="scope">
|
||||
<span>{{ parseTime(scope.row.createTime) }}</span>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="操作" align="center" class-name="small-padding fixed-width">
|
||||
<template v-slot="scope">
|
||||
<el-button size="mini" type="text" icon="el-icon-edit" @click="handleUpdate(scope.row)"
|
||||
v-hasPermi="['xxjj:production-processes:update']">修改</el-button>
|
||||
<el-button size="mini" type="text" icon="el-icon-delete" @click="handleDelete(scope.row)"
|
||||
v-hasPermi="['xxjj:production-processes:delete']">删除</el-button>
|
||||
</template>
|
||||
</el-table-column>
|
||||
</el-table>
|
||||
<!-- 分页组件 -->
|
||||
<pagination v-show="total > 0" :total="total" :page.sync="queryParams.pageNo" :limit.sync="queryParams.pageSize"
|
||||
@pagination="getList"/>
|
||||
|
||||
<!-- 对话框(添加 / 修改) -->
|
||||
<el-dialog :title="title" :visible.sync="open" width="700px" v-dialogDrag append-to-body>
|
||||
<el-form ref="form" :model="form" :rules="rules" label-width="80px">
|
||||
<el-form-item label="工序名称" prop="name">
|
||||
<el-input v-model="form.name" placeholder="请输入工序名称" />
|
||||
</el-form-item>
|
||||
<el-form-item label="图片">
|
||||
<imageUpload v-model="form.pictures"/>
|
||||
</el-form-item>
|
||||
<el-form-item label="来源" prop="source">
|
||||
<el-select v-model="form.source" placeholder="请选择来源">
|
||||
<el-option v-for="dict in this.getDictDatas(DICT_TYPE.SOURCE)"
|
||||
:key="dict.value" :label="dict.label" :value="dict.value" />
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item label="工序类型" prop="type">
|
||||
<el-select v-model="form.type" placeholder="请选择工序类型">
|
||||
<el-option v-for="dict in this.getDictDatas(DICT_TYPE.PROCESSES_TYPE)"
|
||||
:key="dict.value" :label="dict.label" :value="dict.value" />
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item label="状态" prop="state">
|
||||
<el-select v-model="form.state" placeholder="请选择状态">
|
||||
<el-option v-for="dict in this.getDictDatas(DICT_TYPE.BUSINESS_STATE)"
|
||||
:key="dict.value" :label="dict.label" :value="dict.value" />
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item label="描述">
|
||||
<editor v-model="form.description" :min-height="192"/>
|
||||
</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 { createProductionProcesses, updateProductionProcesses, deleteProductionProcesses, getProductionProcesses, getProductionProcessesPage, exportProductionProcessesExcel } from "@/api/xxjj/productionProcesses";
|
||||
import ImageUpload from '@/components/ImageUpload';
|
||||
import Editor from '@/components/Editor';
|
||||
|
||||
export default {
|
||||
name: "ProductionProcesses",
|
||||
components: {
|
||||
ImageUpload,
|
||||
Editor,
|
||||
},
|
||||
data() {
|
||||
return {
|
||||
// 遮罩层
|
||||
loading: true,
|
||||
// 导出遮罩层
|
||||
exportLoading: false,
|
||||
// 显示搜索条件
|
||||
showSearch: true,
|
||||
// 总条数
|
||||
total: 0,
|
||||
// 工序列表
|
||||
list: [],
|
||||
// 弹出层标题
|
||||
title: "",
|
||||
// 是否显示弹出层
|
||||
open: false,
|
||||
// 查询参数
|
||||
queryParams: {
|
||||
pageNo: 1,
|
||||
pageSize: 10,
|
||||
name: null,
|
||||
source: null,
|
||||
type: null,
|
||||
state: null,
|
||||
description: null,
|
||||
createTime: [],
|
||||
},
|
||||
// 表单参数
|
||||
form: {},
|
||||
// 表单校验
|
||||
rules: {
|
||||
name: [{ required: true, message: "工序名称不能为空", trigger: "blur" }],
|
||||
pictures: [{ required: true, message: "图片不能为空", trigger: "blur" }],
|
||||
}
|
||||
};
|
||||
},
|
||||
created() {
|
||||
this.getList();
|
||||
},
|
||||
methods: {
|
||||
/** 查询列表 */
|
||||
getList() {
|
||||
this.loading = true;
|
||||
// 执行查询
|
||||
getProductionProcessesPage(this.queryParams).then(response => {
|
||||
this.list = response.data.list;
|
||||
this.total = response.data.total;
|
||||
this.loading = false;
|
||||
});
|
||||
},
|
||||
/** 取消按钮 */
|
||||
cancel() {
|
||||
this.open = false;
|
||||
this.reset();
|
||||
},
|
||||
/** 表单重置 */
|
||||
reset() {
|
||||
this.form = {
|
||||
id: undefined,
|
||||
name: undefined,
|
||||
pictures: undefined,
|
||||
source: undefined,
|
||||
type: undefined,
|
||||
state: undefined,
|
||||
description: undefined,
|
||||
};
|
||||
this.resetForm("form");
|
||||
},
|
||||
/** 搜索按钮操作 */
|
||||
handleQuery() {
|
||||
this.queryParams.pageNo = 1;
|
||||
this.getList();
|
||||
},
|
||||
/** 重置按钮操作 */
|
||||
resetQuery() {
|
||||
this.resetForm("queryForm");
|
||||
this.handleQuery();
|
||||
},
|
||||
/** 新增按钮操作 */
|
||||
handleAdd() {
|
||||
this.reset();
|
||||
this.open = true;
|
||||
this.title = "添加工序";
|
||||
},
|
||||
/** 修改按钮操作 */
|
||||
handleUpdate(row) {
|
||||
this.reset();
|
||||
const id = row.id;
|
||||
getProductionProcesses(id).then(response => {
|
||||
this.form = response.data;
|
||||
this.open = true;
|
||||
this.title = "修改工序";
|
||||
});
|
||||
},
|
||||
/** 提交按钮 */
|
||||
submitForm() {
|
||||
this.$refs["form"].validate(valid => {
|
||||
if (!valid) {
|
||||
return;
|
||||
}
|
||||
// 修改的提交
|
||||
if (this.form.id != null) {
|
||||
updateProductionProcesses(this.form).then(response => {
|
||||
this.$modal.msgSuccess("修改成功");
|
||||
this.open = false;
|
||||
this.getList();
|
||||
});
|
||||
return;
|
||||
}
|
||||
// 添加的提交
|
||||
createProductionProcesses(this.form).then(response => {
|
||||
this.$modal.msgSuccess("新增成功");
|
||||
this.open = false;
|
||||
this.getList();
|
||||
});
|
||||
});
|
||||
},
|
||||
/** 删除按钮操作 */
|
||||
handleDelete(row) {
|
||||
const id = row.id;
|
||||
this.$modal.confirm('是否确认删除工序编号为"' + id + '"的数据项?').then(function() {
|
||||
return deleteProductionProcesses(id);
|
||||
}).then(() => {
|
||||
this.getList();
|
||||
this.$modal.msgSuccess("删除成功");
|
||||
}).catch(() => {});
|
||||
},
|
||||
/** 导出按钮操作 */
|
||||
handleExport() {
|
||||
// 处理查询参数
|
||||
let params = {...this.queryParams};
|
||||
params.pageNo = undefined;
|
||||
params.pageSize = undefined;
|
||||
this.$modal.confirm('是否确认导出所有工序数据项?').then(() => {
|
||||
this.exportLoading = true;
|
||||
return exportProductionProcessesExcel(params);
|
||||
}).then(response => {
|
||||
this.$download.excel(response, '工序.xls');
|
||||
this.exportLoading = false;
|
||||
}).catch(() => {});
|
||||
}
|
||||
}
|
||||
};
|
||||
</script>
|
Loading…
Reference in new issue