ccongli-dev-0920
17602169347 1 year ago
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,39 @@
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 javax.validation.constraints.*;
/**
* Base VO VO 使
* VO Swagger
*/
@Data
public class EnterpriseBaseVO {
@Schema(description = "企业代码", requiredMode = Schema.RequiredMode.REQUIRED)
@NotNull(message = "企业代码不能为空")
private String code;
@Schema(description = "企业名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "赵六")
@NotNull(message = "企业名称不能为空")
private String name;
@Schema(description = "企业简称", example = "李四")
private String shortName;
@Schema(description = "主体类型", example = "2")
private String mainType;
}

@ -0,0 +1,167 @@
package com.yunxi.scm.module.xxjj.controller.admin.enterprise.vo;
import lombok.*;
import java.util.*;
import io.swagger.v3.oas.annotations.media.Schema;
import javax.validation.constraints.*;
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 EnterpriseCreateReqVO extends EnterpriseBaseVO {
@Schema(description = "所在城市")
private String city;
@Schema(description = "行业类型", example = "1")
private String dutyType;
@Schema(description = "首联系人")
private String firstConcat;
@Schema(description = "职位")
private String position;
@Schema(description = "手机号码")
private String phone;
@Schema(description = "logo图片")
private String logo;
@Schema(description = "地址")
private String address;
@Schema(description = "企业电话")
private String enterprisePhone;
@Schema(description = "企业传真")
private String enterpriseFax;
@Schema(description = "企业网址")
private String enterpriseWebsite;
@Schema(description = "企业简介", example = "你猜")
private String enterpriseRemark;
@Schema(description = "税号")
private String dutyParagraph;
@Schema(description = "发票抬头")
private String invoiceHeader;
@Schema(description = "社会统一信息代码", requiredMode = Schema.RequiredMode.REQUIRED)
@NotNull(message = "社会统一信息代码不能为空")
private String societyCode;
@Schema(description = "开户银行")
private String openBank;
@Schema(description = "银行卡号", example = "17664")
private String bankAccount;
@Schema(description = "银行电话")
private String bankPhone;
@Schema(description = "注册地址")
private String registerAddress;
@Schema(description = "经营开始时间")
@DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
private LocalDateTime startDate;
@Schema(description = "经营结束时间")
@DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
private LocalDateTime endDate;
@Schema(description = "证件照")
private String photo;
@Schema(description = "经营范围")
private String businessScope;
@Schema(description = "邮箱")
private String email;
@Schema(description = "办理人")
private String transactors;
@Schema(description = "实际操作人")
private String operator;
@Schema(description = "法人证件照1")
private String legalPersonPhoto1;
@Schema(description = "法人证件照2")
private String legalPersonPhoto2;
@Schema(description = "法人证件照3")
private String legalPersonPhoto3;
@Schema(description = "法人证件类型(0身份证 1护照)", example = "1")
private String legalCertificateType;
@Schema(description = "法人姓名", example = "王五")
private String legalPersonName;
@Schema(description = "法人证件号")
private String legalCardNo;
@Schema(description = "法人生日")
@DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
private LocalDateTime legalBirthday;
@Schema(description = "法人证件有效期类型")
private String legalOperator;
@Schema(description = "法人证件有效开始时间")
@DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
private LocalDateTime legalCardStart;
@Schema(description = "法人证件有效结束时间")
@DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
private LocalDateTime legalCardEnd;
@Schema(description = "代办人证件照1")
private String commissionPersonPhoto1;
@Schema(description = "代办人证件照2")
private String commissionPersonPhoto2;
@Schema(description = "代办人证件照3")
private String commissionPersonPhoto3;
@Schema(description = "代办人证件照4")
private String commissionPersonPhoto4;
@Schema(description = "代办人证件类型", example = "2")
private String commissionCertificateType;
@Schema(description = "代办人姓名", example = "芋艿")
private String commissionPersonName;
@Schema(description = "代办人证件号")
private String commissionCardNo;
@Schema(description = "代办人生日")
@DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
private LocalDateTime commissionBirthday;
@Schema(description = "代办人证件有效期类型")
private String commissionOperator;
@Schema(description = "代办人证件有效开始时间")
@DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
private LocalDateTime commissionCardStart;
@Schema(description = "代办人证件有效结束时间")
@DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
private LocalDateTime commissionCardEnd;
@Schema(description = "描述", example = "你猜")
private String description;
}

@ -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,29 @@
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 java.time.LocalDateTime;
import org.springframework.format.annotation.DateTimeFormat;
import static com.yunxi.scm.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND;
@Schema(description = "管理后台 - 企业信息 Excel 导出 Request VO参数和 EnterprisePageReqVO 是一致的")
@Data
public class EnterpriseExportReqVO {
@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,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,171 @@
package com.yunxi.scm.module.xxjj.controller.admin.enterprise.vo;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.*;
import java.util.*;
import javax.validation.constraints.*;
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 EnterpriseUpdateReqVO extends EnterpriseBaseVO {
@Schema(description = "编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "7480")
@NotNull(message = "编号不能为空")
private Long id;
@Schema(description = "所在城市")
private String city;
@Schema(description = "行业类型", example = "1")
private String dutyType;
@Schema(description = "首联系人")
private String firstConcat;
@Schema(description = "职位")
private String position;
@Schema(description = "手机号码")
private String phone;
@Schema(description = "logo图片")
private String logo;
@Schema(description = "地址")
private String address;
@Schema(description = "企业电话")
private String enterprisePhone;
@Schema(description = "企业传真")
private String enterpriseFax;
@Schema(description = "企业网址")
private String enterpriseWebsite;
@Schema(description = "企业简介", example = "你猜")
private String enterpriseRemark;
@Schema(description = "税号")
private String dutyParagraph;
@Schema(description = "发票抬头")
private String invoiceHeader;
@Schema(description = "社会统一信息代码", requiredMode = Schema.RequiredMode.REQUIRED)
@NotNull(message = "社会统一信息代码不能为空")
private String societyCode;
@Schema(description = "开户银行")
private String openBank;
@Schema(description = "银行卡号", example = "17664")
private String bankAccount;
@Schema(description = "银行电话")
private String bankPhone;
@Schema(description = "注册地址")
private String registerAddress;
@Schema(description = "经营开始时间")
@DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
private LocalDateTime startDate;
@Schema(description = "经营结束时间")
@DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
private LocalDateTime endDate;
@Schema(description = "证件照")
private String photo;
@Schema(description = "经营范围")
private String businessScope;
@Schema(description = "邮箱")
private String email;
@Schema(description = "办理人")
private String transactors;
@Schema(description = "实际操作人")
private String operator;
@Schema(description = "法人证件照1")
private String legalPersonPhoto1;
@Schema(description = "法人证件照2")
private String legalPersonPhoto2;
@Schema(description = "法人证件照3")
private String legalPersonPhoto3;
@Schema(description = "法人证件类型(0身份证 1护照)", example = "1")
private String legalCertificateType;
@Schema(description = "法人姓名", example = "王五")
private String legalPersonName;
@Schema(description = "法人证件号")
private String legalCardNo;
@Schema(description = "法人生日")
@DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
private LocalDateTime legalBirthday;
@Schema(description = "法人证件有效期类型")
private String legalOperator;
@Schema(description = "法人证件有效开始时间")
@DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
private LocalDateTime legalCardStart;
@Schema(description = "法人证件有效结束时间")
@DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
private LocalDateTime legalCardEnd;
@Schema(description = "代办人证件照1")
private String commissionPersonPhoto1;
@Schema(description = "代办人证件照2")
private String commissionPersonPhoto2;
@Schema(description = "代办人证件照3")
private String commissionPersonPhoto3;
@Schema(description = "代办人证件照4")
private String commissionPersonPhoto4;
@Schema(description = "代办人证件类型", example = "2")
private String commissionCertificateType;
@Schema(description = "代办人姓名", example = "芋艿")
private String commissionPersonName;
@Schema(description = "代办人证件号")
private String commissionCardNo;
@Schema(description = "代办人生日")
@DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
private LocalDateTime commissionBirthday;
@Schema(description = "代办人证件有效期类型")
private String commissionOperator;
@Schema(description = "代办人证件有效开始时间")
@DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
private LocalDateTime commissionCardStart;
@Schema(description = "代办人证件有效结束时间")
@DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
private LocalDateTime commissionCardEnd;
@Schema(description = "描述", example = "你猜")
private String description;
}

@ -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,79 @@
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 javax.validation.constraints.*;
import org.springframework.format.annotation.DateTimeFormat;
import static com.yunxi.scm.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND;
/**
* Base VO VO 使
* VO Swagger
*/
@Data
public class EnterpriseContractBaseVO {
@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 = "订单金额")
private BigDecimal orderAmount;
@Schema(description = "折扣金额")
private BigDecimal discountAmount;
@Schema(description = "应付金额")
private BigDecimal payableAmount;
@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 = "销售人员姓名", requiredMode = Schema.RequiredMode.REQUIRED, example = "张三")
@NotNull(message = "销售人员姓名不能为空")
private String salesPersonName;
@Schema(description = "描述", example = "你猜")
private String description;
}

@ -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,61 @@
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 java.time.LocalDateTime;
import org.springframework.format.annotation.DateTimeFormat;
import static com.yunxi.scm.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND;
@Schema(description = "管理后台 - 企业合约 Excel 导出 Request VO参数和 EnterpriseContractPageReqVO 是一致的")
@Data
public class EnterpriseContractExportReqVO {
@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,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,33 @@
package com.yunxi.scm.module.xxjj.controller.admin.materialquality.vo;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.*;
import java.util.*;
import java.time.LocalDateTime;
import java.time.LocalDateTime;
import javax.validation.constraints.*;
/**
* Base VO VO 使
* VO Swagger
*/
@Data
public class MaterialQualityBaseVO {
@Schema(description = "材质名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "赵六")
@NotNull(message = "材质名称不能为空")
private String name;
@Schema(description = "来源", example = "0")
private String source;
@Schema(description = "类型(0自产 1外购)", example = "0")
private String type;
@Schema(description = "状态(0启用 1禁用)", example = "0")
private String state;
@Schema(description = "描述", example = "随便")
private String description;
}

@ -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,46 @@
package com.yunxi.scm.module.xxjj.controller.admin.materialquality.vo;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.*;
import java.util.*;
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 MaterialQualityExcelVO {
@ExcelProperty("编号")
private Long id;
@ExcelProperty("材质名称")
private String name;
@ExcelProperty(value = "来源", converter = DictConvert.class)
@DictFormat("source") // TODO 代码优化:建议设置到对应的 XXXDictTypeConstants 枚举类中
private String source;
@ExcelProperty(value = "类型(0自产 1外购)", converter = DictConvert.class)
@DictFormat("quality_type") // TODO 代码优化:建议设置到对应的 XXXDictTypeConstants 枚举类中
private String type;
@ExcelProperty(value = "状态(0启用 1禁用)", converter = DictConvert.class)
@DictFormat("business_state") // TODO 代码优化:建议设置到对应的 XXXDictTypeConstants 枚举类中
private String state;
@ExcelProperty("描述")
private String description;
@ExcelProperty("创建时间")
private LocalDateTime createTime;
}

@ -0,0 +1,35 @@
package com.yunxi.scm.module.xxjj.controller.admin.materialquality.vo;
import lombok.*;
import java.util.*;
import io.swagger.v3.oas.annotations.media.Schema;
import com.yunxi.scm.framework.common.pojo.PageParam;
import java.time.LocalDateTime;
import org.springframework.format.annotation.DateTimeFormat;
import static com.yunxi.scm.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND;
@Schema(description = "管理后台 - 物料材质 Excel 导出 Request VO参数和 MaterialQualityPageReqVO 是一致的")
@Data
public class MaterialQualityExportReqVO {
@Schema(description = "材质名称", example = "赵六")
private String name;
@Schema(description = "来源", example = "0")
private String source;
@Schema(description = "类型(0自产 1外购)", example = "0")
private String type;
@Schema(description = "状态(0启用 1禁用)", example = "0")
private String state;
@Schema(description = "描述", example = "随便")
private String description;
@Schema(description = "创建时间")
@DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
private LocalDateTime[] createTime;
}

@ -0,0 +1,37 @@
package com.yunxi.scm.module.xxjj.controller.admin.materialquality.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 MaterialQualityPageReqVO extends PageParam {
@Schema(description = "材质名称", example = "赵六")
private String name;
@Schema(description = "来源", example = "0")
private String source;
@Schema(description = "类型(0自产 1外购)", example = "0")
private String type;
@Schema(description = "状态(0启用 1禁用)", example = "0")
private String state;
@Schema(description = "描述", example = "随便")
private String description;
@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.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,37 @@
package com.yunxi.scm.module.xxjj.controller.admin.productionprocesses.vo;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.*;
import java.util.*;
import java.time.LocalDateTime;
import java.time.LocalDateTime;
import javax.validation.constraints.*;
/**
* Base VO VO 使
* VO Swagger
*/
@Data
public class ProductionProcessesBaseVO {
@Schema(description = "工序名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "赵六")
@NotNull(message = "工序名称不能为空")
private String name;
@Schema(description = "图片", requiredMode = Schema.RequiredMode.REQUIRED)
@NotNull(message = "图片不能为空")
private String pictures;
@Schema(description = "来源(0系统预设 1企业创建)", example = "0")
private String source;
@Schema(description = "工序类型(0预设 1外采)", example = "0")
private String type;
@Schema(description = "状态(0启用 1禁用)", example = "0")
private String state;
@Schema(description = "描述", example = "你说的对")
private String description;
}

@ -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,49 @@
package com.yunxi.scm.module.xxjj.controller.admin.productionprocesses.vo;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.*;
import java.util.*;
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 ProductionProcessesExcelVO {
@ExcelProperty("编号")
private Long id;
@ExcelProperty("工序名称")
private String name;
@ExcelProperty("图片")
private String pictures;
@ExcelProperty(value = "来源(0系统预设 1企业创建)", converter = DictConvert.class)
@DictFormat("source") // TODO 代码优化:建议设置到对应的 XXXDictTypeConstants 枚举类中
private String source;
@ExcelProperty(value = "工序类型(0预设 1外采)", converter = DictConvert.class)
@DictFormat("processes_type") // TODO 代码优化:建议设置到对应的 XXXDictTypeConstants 枚举类中
private String type;
@ExcelProperty(value = "状态(0启用 1禁用)", converter = DictConvert.class)
@DictFormat("business_state") // TODO 代码优化:建议设置到对应的 XXXDictTypeConstants 枚举类中
private String state;
@ExcelProperty("描述")
private String description;
@ExcelProperty("创建时间")
private LocalDateTime createTime;
}

@ -0,0 +1,35 @@
package com.yunxi.scm.module.xxjj.controller.admin.productionprocesses.vo;
import lombok.*;
import java.util.*;
import io.swagger.v3.oas.annotations.media.Schema;
import com.yunxi.scm.framework.common.pojo.PageParam;
import java.time.LocalDateTime;
import org.springframework.format.annotation.DateTimeFormat;
import static com.yunxi.scm.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND;
@Schema(description = "管理后台 - 工序 Excel 导出 Request VO参数和 ProductionProcessesPageReqVO 是一致的")
@Data
public class ProductionProcessesExportReqVO {
@Schema(description = "工序名称", example = "赵六")
private String name;
@Schema(description = "来源(0系统预设 1企业创建)", example = "0")
private String source;
@Schema(description = "工序类型(0预设 1外采)", example = "0")
private String type;
@Schema(description = "状态(0启用 1禁用)", example = "0")
private String state;
@Schema(description = "描述", example = "你说的对")
private String description;
@Schema(description = "创建时间")
@DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
private LocalDateTime[] createTime;
}

@ -0,0 +1,37 @@
package com.yunxi.scm.module.xxjj.controller.admin.productionprocesses.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 ProductionProcessesPageReqVO extends PageParam {
@Schema(description = "工序名称", example = "赵六")
private String name;
@Schema(description = "来源(0系统预设 1企业创建)", example = "0")
private String source;
@Schema(description = "工序类型(0预设 1外采)", example = "0")
private String type;
@Schema(description = "状态(0启用 1禁用)", example = "0")
private String state;
@Schema(description = "描述", example = "你说的对")
private String description;
@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.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,255 @@
package com.yunxi.scm.module.xxjj.dal.dataobject.enterprise;
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.baomidou.mybatisplus.annotation.*;
import com.yunxi.scm.framework.mybatis.core.dataobject.BaseDO;
/**
* DO
*
* @author
*/
@TableName("xxjj_enterprise")
@KeySequence("xxjj_enterprise_seq") // 用于 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库的主键自增。如果是 MySQL 等数据库,可不写。
@Data
@EqualsAndHashCode(callSuper = true)
@ToString(callSuper = true)
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class EnterpriseDO extends BaseDO {
/**
*
*/
@TableId
private Long id;
/**
*
*/
private String code;
/**
*
*/
private String name;
/**
*
*/
private String shortName;
/**
*
*
* {@link TODO main_type }
*/
private String mainType;
/**
*
*/
private String city;
/**
*
*
* {@link TODO duty_type }
*/
private String dutyType;
/**
*
*/
private String firstConcat;
/**
*
*/
private String position;
/**
*
*/
private String phone;
/**
* logo
*/
private String logo;
/**
*
*/
private String address;
/**
*
*/
private String enterprisePhone;
/**
*
*/
private String enterpriseFax;
/**
*
*/
private String enterpriseWebsite;
/**
*
*/
private String enterpriseRemark;
/**
*
*/
private String dutyParagraph;
/**
*
*/
private String invoiceHeader;
/**
*
*/
private String societyCode;
/**
*
*/
private String openBank;
/**
*
*/
private String bankAccount;
/**
*
*/
private String bankPhone;
/**
*
*/
private String registerAddress;
/**
*
*/
private LocalDateTime startDate;
/**
*
*/
private LocalDateTime endDate;
/**
*
*/
private String photo;
/**
*
*/
private String businessScope;
/**
*
*/
private String email;
/**
*
*
* {@link TODO transactors }
*/
private String transactors;
/**
*
*
* {@link TODO transactors }
*/
private String operator;
/**
* 1
*/
private String legalPersonPhoto1;
/**
* 2
*/
private String legalPersonPhoto2;
/**
* 3
*/
private String legalPersonPhoto3;
/**
* (0 1)
*
* {@link TODO certificate_type }
*/
private String legalCertificateType;
/**
*
*/
private String legalPersonName;
/**
*
*/
private String legalCardNo;
/**
*
*/
private LocalDateTime legalBirthday;
/**
*
*/
private String legalOperator;
/**
*
*/
private LocalDateTime legalCardStart;
/**
*
*/
private LocalDateTime legalCardEnd;
/**
* 1
*/
private String commissionPersonPhoto1;
/**
* 2
*/
private String commissionPersonPhoto2;
/**
* 3
*/
private String commissionPersonPhoto3;
/**
* 4
*/
private String commissionPersonPhoto4;
/**
*
*
* {@link TODO certificate_type }
*/
private String commissionCertificateType;
/**
*
*/
private String commissionPersonName;
/**
*
*/
private String commissionCardNo;
/**
*
*/
private LocalDateTime commissionBirthday;
/**
*
*/
private String commissionOperator;
/**
*
*/
private LocalDateTime commissionCardStart;
/**
*
*/
private LocalDateTime commissionCardEnd;
/**
*
*/
private String description;
}

@ -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,57 @@
package com.yunxi.scm.module.xxjj.dal.dataobject.materialquality;
import lombok.*;
import java.util.*;
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_material_quality")
@KeySequence("xxjj_material_quality_seq") // 用于 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库的主键自增。如果是 MySQL 等数据库,可不写。
@Data
@EqualsAndHashCode(callSuper = true)
@ToString(callSuper = true)
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class MaterialQualityDO extends BaseDO {
/**
*
*/
@TableId
private Long id;
/**
*
*/
private String name;
/**
*
*
* {@link TODO source }
*/
private String source;
/**
* (0 1)
*
* {@link TODO quality_type }
*/
private String type;
/**
* (0 1)
*
* {@link TODO business_state }
*/
private String state;
/**
*
*/
private String description;
}

@ -0,0 +1,61 @@
package com.yunxi.scm.module.xxjj.dal.dataobject.productionprocesses;
import lombok.*;
import java.util.*;
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_production_processes")
@KeySequence("xxjj_production_processes_seq") // 用于 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库的主键自增。如果是 MySQL 等数据库,可不写。
@Data
@EqualsAndHashCode(callSuper = true)
@ToString(callSuper = true)
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class ProductionProcessesDO extends BaseDO {
/**
*
*/
@TableId
private Long id;
/**
*
*/
private String name;
/**
*
*/
private String pictures;
/**
* (0 1)
*
* {@link TODO source }
*/
private String source;
/**
* (0 1)
*
* {@link TODO processes_type }
*/
private String type;
/**
* (0 1)
*
* {@link TODO business_state }
*/
private String state;
/**
*
*/
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));
}
}

@ -40,4 +40,9 @@ public interface ErrorCodeConstants {
ErrorCode MaterialCategory_EXISTS_USER = new ErrorCode(1002004005, "部门中存在员工,无法删除");
ErrorCode MaterialCategory_NOT_ENABLE = new ErrorCode(1002004006, "部门({})不处于开启状态,不允许选择");
ErrorCode MaterialCategory_PARENT_IS_CHILD = new ErrorCode(1002004007, "不能设置自己的子部门为父部门");
// ========== 企业信息 TODO 补充编号 ==========
ErrorCode ENTERPRISE_NOT_EXISTS = new ErrorCode(1002004015, "企业信息不存在");
// ========== 企业合约 TODO 补充编号 ==========
ErrorCode ENTERPRISE_CONTRACT_NOT_EXISTS = new ErrorCode(1002004016, "企业合约不存在");
}

@ -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,12 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.yunxi.scm.module.xxjj.dal.mysql.enterprise.EnterpriseMapper">
<!--
一般情况下,尽可能使用 Mapper 进行 CRUD 增删改查即可。
无法满足的场景,例如说多表关联查询,才使用 XML 编写 SQL。
代码生成器暂时只生成 Mapper XML 文件本身,更多推荐 MybatisX 快速开发插件来生成查询。
文档可见https://www.iocoder.cn/MyBatis/x-plugins/
-->
</mapper>

@ -0,0 +1,12 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.yunxi.scm.module.xxjj.dal.mysql.enterprisecontract.EnterpriseContractMapper">
<!--
一般情况下,尽可能使用 Mapper 进行 CRUD 增删改查即可。
无法满足的场景,例如说多表关联查询,才使用 XML 编写 SQL。
代码生成器暂时只生成 Mapper XML 文件本身,更多推荐 MybatisX 快速开发插件来生成查询。
文档可见https://www.iocoder.cn/MyBatis/x-plugins/
-->
</mapper>

@ -0,0 +1,12 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.yunxi.scm.module.xxjj.dal.mysql.materialquality.MaterialQualityMapper">
<!--
一般情况下,尽可能使用 Mapper 进行 CRUD 增删改查即可。
无法满足的场景,例如说多表关联查询,才使用 XML 编写 SQL。
代码生成器暂时只生成 Mapper XML 文件本身,更多推荐 MybatisX 快速开发插件来生成查询。
文档可见https://www.iocoder.cn/MyBatis/x-plugins/
-->
</mapper>

@ -0,0 +1,12 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.yunxi.scm.module.xxjj.dal.mysql.productionprocesses.ProductionProcessesMapper">
<!--
一般情况下,尽可能使用 Mapper 进行 CRUD 增删改查即可。
无法满足的场景,例如说多表关联查询,才使用 XML 编写 SQL。
代码生成器暂时只生成 Mapper XML 文件本身,更多推荐 MybatisX 快速开发插件来生成查询。
文档可见https://www.iocoder.cn/MyBatis/x-plugins/
-->
</mapper>

@ -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));
}
}

@ -42,11 +42,11 @@ public class ProjectReactor {
log.info("[main][原项目路劲改地址 ({})]", projectBaseDir);
// ========== 配置,需要你手动修改 ==========
String groupIdNew = "com.yunxi.scm";
String artifactIdNew = "yunxi";
String packageNameNew = "com.yunxi.scm";
String titleNew = "云息供应链管理平台";
String projectBaseDirNew = projectBaseDir + "-new"; // 一键改名后,“新”项目所在的目录
String groupIdNew = "com.yunxi.manage";
String artifactIdNew = "yunximanage";
String packageNameNew = "com.yunxi.manage";
String titleNew = "云息供应链管理平台后端";
String projectBaseDirNew = "D:\\changjiangyunxi\\YX-MANAGE"; // 一键改名后,“新”项目所在的目录
log.info("[main][检测新项目目录 ({})是否存在]", projectBaseDirNew);
if (FileUtil.exist(projectBaseDirNew)) {
log.error("[main][新项目目录检测 ({})已存在,请更改新的目录!程序退出]", projectBaseDirNew);

@ -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'
})
}

@ -114,6 +114,11 @@ export const DICT_TYPE = {
// ============= SUPPLIER 模块=================
SUPPLIER_TYPE: 'supplier_type', //供应商类型
SUPPLIER_NATURE1: 'supplier_nature', //供应商性质
SOURCE: 'source',//来源
QUALITY_TYPE: 'quality_type',//类型
BUSINESS_STATE: 'business_state',//状态
PROCESSES_TYPE: 'processes_type',//工序类型
}

@ -0,0 +1,453 @@
<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="code">
<el-input v-model="queryParams.code" placeholder="请输入企业代码" clearable @keyup.enter.native="handleQuery"/>
</el-form-item>
<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="mainType">
<el-select v-model="queryParams.mainType" placeholder="请选择主体类型" clearable size="small">
<el-option v-for="dict in this.getDictDatas(DICT_TYPE.MAIN_TYPE)"
: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:enterprise: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: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="code" />
<el-table-column label="企业名称" align="center" prop="name" />
<el-table-column label="企业简称" align="center" prop="shortName" />
<el-table-column label="主体类型" align="center" prop="mainType">
<template v-slot="scope">
<dict-tag :type="DICT_TYPE.MAIN_TYPE" :value="scope.row.mainType" />
</template>
</el-table-column>
<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:update']">修改</el-button>
<el-button size="mini" type="text" icon="el-icon-delete" @click="handleDelete(scope.row)"
v-hasPermi="['xxjj:enterprise: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="code">
<el-input v-model="form.code" placeholder="请输入企业代码" />
</el-form-item>
<el-form-item label="企业名称" prop="name">
<el-input v-model="form.name" placeholder="请输入企业名称" />
</el-form-item>
<el-form-item label="企业简称" prop="shortName">
<el-input v-model="form.shortName" placeholder="请输入企业简称" />
</el-form-item>
<el-form-item label="主体类型" prop="mainType">
<el-select v-model="form.mainType" placeholder="请选择主体类型">
<el-option v-for="dict in this.getDictDatas(DICT_TYPE.MAIN_TYPE)"
:key="dict.value" :label="dict.label" :value="dict.value" />
</el-select>
</el-form-item>
<el-form-item label="所在城市" prop="city">
<el-input v-model="form.city" placeholder="请输入所在城市" />
</el-form-item>
<el-form-item label="行业类型" prop="dutyType">
<el-select v-model="form.dutyType" placeholder="请选择行业类型">
<el-option v-for="dict in this.getDictDatas(DICT_TYPE.DUTY_TYPE)"
:key="dict.value" :label="dict.label" :value="dict.value" />
</el-select>
</el-form-item>
<el-form-item label="首联系人" prop="firstConcat">
<el-input v-model="form.firstConcat" placeholder="请输入首联系人" />
</el-form-item>
<el-form-item label="职位" prop="position">
<el-input v-model="form.position" placeholder="请输入职位" />
</el-form-item>
<el-form-item label="手机号码" prop="phone">
<el-input v-model="form.phone" placeholder="请输入手机号码" />
</el-form-item>
<el-form-item label="logo图片">
<imageUpload v-model="form.logo"/>
</el-form-item>
<el-form-item label="地址" prop="address">
<el-input v-model="form.address" placeholder="请输入地址" />
</el-form-item>
<el-form-item label="企业电话" prop="enterprisePhone">
<el-input v-model="form.enterprisePhone" placeholder="请输入企业电话" />
</el-form-item>
<el-form-item label="企业传真" prop="enterpriseFax">
<el-input v-model="form.enterpriseFax" placeholder="请输入企业传真" />
</el-form-item>
<el-form-item label="企业网址" prop="enterpriseWebsite">
<el-input v-model="form.enterpriseWebsite" placeholder="请输入企业网址" />
</el-form-item>
<el-form-item label="企业简介" prop="enterpriseRemark">
<el-input v-model="form.enterpriseRemark" type="textarea" placeholder="请输入内容" />
</el-form-item>
<el-form-item label="税号" prop="dutyParagraph">
<el-input v-model="form.dutyParagraph" placeholder="请输入税号" />
</el-form-item>
<el-form-item label="发票抬头" prop="invoiceHeader">
<el-input v-model="form.invoiceHeader" placeholder="请输入发票抬头" />
</el-form-item>
<el-form-item label="社会统一信息代码" prop="societyCode">
<el-input v-model="form.societyCode" placeholder="请输入社会统一信息代码" />
</el-form-item>
<el-form-item label="开户银行" prop="openBank">
<el-input v-model="form.openBank" placeholder="请输入开户银行" />
</el-form-item>
<el-form-item label="银行卡号" prop="bankAccount">
<el-input v-model="form.bankAccount" placeholder="请输入银行卡号" />
</el-form-item>
<el-form-item label="银行电话" prop="bankPhone">
<el-input v-model="form.bankPhone" placeholder="请输入银行电话" />
</el-form-item>
<el-form-item label="注册地址" prop="registerAddress">
<el-input v-model="form.registerAddress" placeholder="请输入注册地址" />
</el-form-item>
<el-form-item label="经营开始时间" prop="startDate">
<el-date-picker clearable v-model="form.startDate" type="date" value-format="timestamp" placeholder="选择经营开始时间" />
</el-form-item>
<el-form-item label="经营结束时间" prop="endDate">
<el-date-picker clearable v-model="form.endDate" type="date" value-format="timestamp" placeholder="选择经营结束时间" />
</el-form-item>
<el-form-item label="证件照">
<imageUpload v-model="form.photo"/>
</el-form-item>
<el-form-item label="经营范围" prop="businessScope">
<el-input v-model="form.businessScope" type="textarea" placeholder="请输入内容" />
</el-form-item>
<el-form-item label="邮箱" prop="email">
<el-input v-model="form.email" placeholder="请输入邮箱" />
</el-form-item>
<el-form-item label="办理人" prop="transactors">
<el-select v-model="form.transactors" placeholder="请选择办理人">
<el-option v-for="dict in this.getDictDatas(DICT_TYPE.TRANSACTORS)"
:key="dict.value" :label="dict.label" :value="dict.value" />
</el-select>
</el-form-item>
<el-form-item label="实际操作人" prop="operator">
<el-select v-model="form.operator" placeholder="请选择实际操作人">
<el-option v-for="dict in this.getDictDatas(DICT_TYPE.TRANSACTORS)"
:key="dict.value" :label="dict.label" :value="dict.value" />
</el-select>
</el-form-item>
<el-form-item label="法人证件照1">
<imageUpload v-model="form.legalPersonPhoto1"/>
</el-form-item>
<el-form-item label="法人证件照2">
<imageUpload v-model="form.legalPersonPhoto2"/>
</el-form-item>
<el-form-item label="法人证件照3">
<imageUpload v-model="form.legalPersonPhoto3"/>
</el-form-item>
<el-form-item label="法人证件类型(0身份证 1护照)" prop="legalCertificateType">
<el-select v-model="form.legalCertificateType" placeholder="请选择法人证件类型(0身份证 1护照)">
<el-option v-for="dict in this.getDictDatas(DICT_TYPE.CERTIFICATE_TYPE)"
:key="dict.value" :label="dict.label" :value="dict.value" />
</el-select>
</el-form-item>
<el-form-item label="法人姓名" prop="legalPersonName">
<el-input v-model="form.legalPersonName" placeholder="请输入法人姓名" />
</el-form-item>
<el-form-item label="法人证件号" prop="legalCardNo">
<el-input v-model="form.legalCardNo" placeholder="请输入法人证件号" />
</el-form-item>
<el-form-item label="法人生日" prop="legalBirthday">
<el-input v-model="form.legalBirthday" placeholder="请输入法人生日" />
</el-form-item>
<el-form-item label="法人证件有效期类型" prop="legalOperator">
<el-select v-model="form.legalOperator" placeholder="请选择法人证件有效期类型">
<el-option label="请选择字典生成" value="" />
</el-select>
</el-form-item>
<el-form-item label="法人证件有效开始时间" prop="legalCardStart">
<el-date-picker clearable v-model="form.legalCardStart" type="date" value-format="timestamp" placeholder="选择法人证件有效开始时间" />
</el-form-item>
<el-form-item label="法人证件有效结束时间" prop="legalCardEnd">
<el-date-picker clearable v-model="form.legalCardEnd" type="date" value-format="timestamp" placeholder="选择法人证件有效结束时间" />
</el-form-item>
<el-form-item label="代办人证件照1">
<imageUpload v-model="form.commissionPersonPhoto1"/>
</el-form-item>
<el-form-item label="代办人证件照2">
<imageUpload v-model="form.commissionPersonPhoto2"/>
</el-form-item>
<el-form-item label="代办人证件照3">
<imageUpload v-model="form.commissionPersonPhoto3"/>
</el-form-item>
<el-form-item label="代办人证件照4">
<imageUpload v-model="form.commissionPersonPhoto4"/>
</el-form-item>
<el-form-item label="代办人证件类型" prop="commissionCertificateType">
<el-select v-model="form.commissionCertificateType" placeholder="请选择代办人证件类型">
<el-option v-for="dict in this.getDictDatas(DICT_TYPE.CERTIFICATE_TYPE)"
:key="dict.value" :label="dict.label" :value="dict.value" />
</el-select>
</el-form-item>
<el-form-item label="代办人姓名" prop="commissionPersonName">
<el-input v-model="form.commissionPersonName" placeholder="请输入代办人姓名" />
</el-form-item>
<el-form-item label="代办人证件号" prop="commissionCardNo">
<el-input v-model="form.commissionCardNo" placeholder="请输入代办人证件号" />
</el-form-item>
<el-form-item label="代办人生日" prop="commissionBirthday">
<el-input v-model="form.commissionBirthday" placeholder="请输入代办人生日" />
</el-form-item>
<el-form-item label="代办人证件有效期类型" prop="commissionOperator">
<el-select v-model="form.commissionOperator" placeholder="请选择代办人证件有效期类型">
<el-option label="请选择字典生成" value="" />
</el-select>
</el-form-item>
<el-form-item label="代办人证件有效开始时间" prop="commissionCardStart">
<el-date-picker clearable v-model="form.commissionCardStart" type="date" value-format="timestamp" placeholder="选择代办人证件有效开始时间" />
</el-form-item>
<el-form-item label="代办人证件有效结束时间" prop="commissionCardEnd">
<el-date-picker clearable v-model="form.commissionCardEnd" type="date" value-format="timestamp" placeholder="选择代办人证件有效结束时间" />
</el-form-item>
<el-form-item label="描述" prop="description">
<el-input v-model="form.description" type="textarea" placeholder="请输入内容" />
</el-form-item>
</el-form>
<div slot="footer" class="dialog-footer">
<el-button type="primary" @click="submitForm"> </el-button>
<el-button @click="cancel"> </el-button>
</div>
</el-dialog>
</div>
</template>
<script>
import { createEnterprise, updateEnterprise, deleteEnterprise, getEnterprise, getEnterprisePage, exportEnterpriseExcel } from "@/api/xxjj/enterprise";
import ImageUpload from '@/components/ImageUpload';
export default {
name: "Enterprise",
components: {
ImageUpload,
},
data() {
return {
//
loading: true,
//
exportLoading: false,
//
showSearch: true,
//
total: 0,
//
list: [],
//
title: "",
//
open: false,
//
queryParams: {
pageNo: 1,
pageSize: 10,
code: null,
name: null,
mainType: null,
createTime: [],
},
//
form: {},
//
rules: {
code: [{ required: true, message: "企业代码不能为空", trigger: "blur" }],
name: [{ required: true, message: "企业名称不能为空", trigger: "blur" }],
societyCode: [{ required: true, message: "社会统一信息代码不能为空", trigger: "blur" }],
}
};
},
created() {
this.getList();
},
methods: {
/** 查询列表 */
getList() {
this.loading = true;
//
getEnterprisePage(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,
code: undefined,
name: undefined,
shortName: undefined,
mainType: undefined,
city: undefined,
dutyType: undefined,
firstConcat: undefined,
position: undefined,
phone: undefined,
logo: undefined,
address: undefined,
enterprisePhone: undefined,
enterpriseFax: undefined,
enterpriseWebsite: undefined,
enterpriseRemark: undefined,
dutyParagraph: undefined,
invoiceHeader: undefined,
societyCode: undefined,
openBank: undefined,
bankAccount: undefined,
bankPhone: undefined,
registerAddress: undefined,
startDate: undefined,
endDate: undefined,
photo: undefined,
businessScope: undefined,
email: undefined,
transactors: undefined,
operator: undefined,
legalPersonPhoto1: undefined,
legalPersonPhoto2: undefined,
legalPersonPhoto3: undefined,
legalCertificateType: undefined,
legalPersonName: undefined,
legalCardNo: undefined,
legalBirthday: undefined,
legalOperator: undefined,
legalCardStart: undefined,
legalCardEnd: undefined,
commissionPersonPhoto1: undefined,
commissionPersonPhoto2: undefined,
commissionPersonPhoto3: undefined,
commissionPersonPhoto4: undefined,
commissionCertificateType: undefined,
commissionPersonName: undefined,
commissionCardNo: undefined,
commissionBirthday: undefined,
commissionOperator: undefined,
commissionCardStart: undefined,
commissionCardEnd: 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;
getEnterprise(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) {
updateEnterprise(this.form).then(response => {
this.$modal.msgSuccess("修改成功");
this.open = false;
this.getList();
});
return;
}
//
createEnterprise(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 deleteEnterprise(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 exportEnterpriseExcel(params);
}).then(response => {
this.$download.excel(response, '企业信息.xls');
this.exportLoading = false;
}).catch(() => {});
}
}
};
</script>

@ -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…
Cancel
Save