diff --git a/mes-module-heli/mes-module-heli-api/src/main/java/com/chanko/yunxi/mes/module/heli/enums/ErrorCodeConstants.java b/mes-module-heli/mes-module-heli-api/src/main/java/com/chanko/yunxi/mes/module/heli/enums/ErrorCodeConstants.java index 595dc556..f9d52bbb 100644 --- a/mes-module-heli/mes-module-heli-api/src/main/java/com/chanko/yunxi/mes/module/heli/enums/ErrorCodeConstants.java +++ b/mes-module-heli/mes-module-heli-api/src/main/java/com/chanko/yunxi/mes/module/heli/enums/ErrorCodeConstants.java @@ -175,4 +175,8 @@ public interface ErrorCodeConstants { ErrorCode FOUND_NOT_EXISTS = new ErrorCode(1_013_010, "数据已过期,请重新修改"); ErrorCode YEAR_NUM_NOT_EXISTS = new ErrorCode(1_013_011, "数据已过期,请重新修改"); ErrorCode PROCESS_DETAIL_NOT_EXISTS = new ErrorCode(1_013_012, "数据已过期,请重新修改"); + + // ========== 物料大类编码维护 TODO 补充编号 ========== + ErrorCode MAT_CODE_NOT_EXISTS = new ErrorCode(1_014_001, "物料大类编码维护不存在"); + } diff --git a/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/controller/admin/matcode/MatCodeController.java b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/controller/admin/matcode/MatCodeController.java new file mode 100644 index 00000000..53dabda7 --- /dev/null +++ b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/controller/admin/matcode/MatCodeController.java @@ -0,0 +1,84 @@ +package com.chanko.yunxi.mes.module.heli.controller.admin.matcode; + +import com.chanko.yunxi.mes.module.heli.controller.admin.matcode.vo.MatCodePageReqVO; +import com.chanko.yunxi.mes.module.heli.controller.admin.matcode.vo.MatCodeRespVO; +import com.chanko.yunxi.mes.module.heli.controller.admin.matcode.vo.MatCodeSaveReqVO; +import com.chanko.yunxi.mes.module.heli.dal.dataobject.matcode.MatCodeDO; +import com.chanko.yunxi.mes.module.heli.service.matcode.MatCodeService; +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.*; +import javax.servlet.http.*; +import java.util.*; +import java.io.IOException; + +import com.chanko.yunxi.mes.framework.common.pojo.PageParam; +import com.chanko.yunxi.mes.framework.common.pojo.PageResult; +import com.chanko.yunxi.mes.framework.common.pojo.CommonResult; +import com.chanko.yunxi.mes.framework.common.util.object.BeanUtils; +import static com.chanko.yunxi.mes.framework.common.pojo.CommonResult.success; + +import com.chanko.yunxi.mes.framework.excel.core.util.ExcelUtils; + +import com.chanko.yunxi.mes.framework.operatelog.core.annotations.OperateLog; +import static com.chanko.yunxi.mes.framework.operatelog.core.enums.OperateTypeEnum.*; + + + +@Tag(name = "管理后台 - 物料大类编码维护") +@RestController +@RequestMapping("/heli/matcode") +@Validated +public class MatCodeController { + + @Resource + private MatCodeService matCodeService; + + @PostMapping("/create") + @Operation(summary = "创建物料大类编码维护") + @PreAuthorize("@ss.hasPermission('base:mat-code:create')") + public CommonResult createMatCode(@Valid @RequestBody MatCodeSaveReqVO createReqVO) { + return success(matCodeService.createMatCode(createReqVO)); + } + + @PutMapping("/update") + @Operation(summary = "更新物料大类编码维护") + @PreAuthorize("@ss.hasPermission('base:mat-code:update')") + public CommonResult updateMatCode(@Valid @RequestBody MatCodeSaveReqVO updateReqVO) { + matCodeService.updateMatCode(updateReqVO); + return success(true); + } + + @DeleteMapping("/delete") + @Operation(summary = "删除物料大类编码维护") + @Parameter(name = "id", description = "编号", required = true) + @PreAuthorize("@ss.hasPermission('base:mat-code:delete')") + public CommonResult deleteMatCode(@RequestParam("id") Long id) { + matCodeService.deleteMatCode(id); + return success(true); + } + + @GetMapping("/get") + @Operation(summary = "获得物料大类编码维护") + @Parameter(name = "id", description = "编号", required = true, example = "1024") + @PreAuthorize("@ss.hasPermission('base:mat-code:query')") + public CommonResult getMatCode(@RequestParam("id") Long id) { + MatCodeDO matCode = matCodeService.getMatCode(id); + return success(BeanUtils.toBean(matCode, MatCodeRespVO.class)); + } + + @GetMapping("/page") + @Operation(summary = "获得物料大类编码维护分页") + @PreAuthorize("@ss.hasPermission('base:mat-code:query')") + public CommonResult> getMatCodePage(@Valid MatCodePageReqVO pageReqVO) { + PageResult pageResult = matCodeService.getMatCodePage(pageReqVO); + return success(BeanUtils.toBean(pageResult, MatCodeRespVO.class)); + } + +} diff --git a/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/controller/admin/matcode/vo/MatCodePageReqVO.java b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/controller/admin/matcode/vo/MatCodePageReqVO.java new file mode 100644 index 00000000..5ada3c60 --- /dev/null +++ b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/controller/admin/matcode/vo/MatCodePageReqVO.java @@ -0,0 +1,36 @@ +package com.chanko.yunxi.mes.module.heli.controller.admin.matcode.vo; + +import lombok.*; +import io.swagger.v3.oas.annotations.media.Schema; +import com.chanko.yunxi.mes.framework.common.pojo.PageParam; +import org.springframework.format.annotation.DateTimeFormat; +import java.time.LocalDateTime; + +import static com.chanko.yunxi.mes.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 MatCodePageReqVO extends PageParam { + + @Schema(description = "物料大类编码") + private String matCatCode; + + @Schema(description = "物料物料大类名称", example = "芋艿") + private String matCatName; + + @Schema(description = "物料分类编码") + private String matTypeCode; + + @Schema(description = "当前最大流水号") + private String curMaxSeq; + + @Schema(description = "状态,1表示正常,2表示禁用", example = "2") + private Boolean status; + + @Schema(description = "创建时间") + @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) + private LocalDateTime[] createTime; + +} diff --git a/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/controller/admin/matcode/vo/MatCodeRespVO.java b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/controller/admin/matcode/vo/MatCodeRespVO.java new file mode 100644 index 00000000..65d104bb --- /dev/null +++ b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/controller/admin/matcode/vo/MatCodeRespVO.java @@ -0,0 +1,46 @@ +package com.chanko.yunxi.mes.module.heli.controller.admin.matcode.vo; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.*; +import java.util.*; +import java.util.*; +import org.springframework.format.annotation.DateTimeFormat; +import java.time.LocalDateTime; +import com.alibaba.excel.annotation.*; + +@Schema(description = "管理后台 - 物料大类编码维护 Response VO") +@Data +@ExcelIgnoreUnannotated +public class MatCodeRespVO { + + @Schema(description = "自增字段,唯一", requiredMode = Schema.RequiredMode.REQUIRED, example = "20351") + @ExcelProperty("自增字段,唯一") + private Long id; + + @Schema(description = "物料大类编码", requiredMode = Schema.RequiredMode.REQUIRED) + @ExcelProperty("物料大类编码") + private String matCatCode; + + @Schema(description = "物料物料大类名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "芋艿") + @ExcelProperty("物料物料大类名称") + private String matCatName; + + @Schema(description = "物料分类编码") + @ExcelProperty("物料分类编码") + private String matTypeCode; + + @Schema(description = "当前最大流水号") + @ExcelProperty("当前最大流水号") + private String curMaxSeq; + + @Schema(description = "状态,1表示正常,2表示禁用", requiredMode = Schema.RequiredMode.REQUIRED, example = "2") + @ExcelProperty("状态,1表示正常,2表示禁用") + private Boolean status; + + @Schema(description = "创建时间", requiredMode = Schema.RequiredMode.REQUIRED) + @ExcelProperty("创建时间") + private LocalDateTime createTime; + + private String creatorName; + +} diff --git a/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/controller/admin/matcode/vo/MatCodeSaveReqVO.java b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/controller/admin/matcode/vo/MatCodeSaveReqVO.java new file mode 100644 index 00000000..d586363d --- /dev/null +++ b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/controller/admin/matcode/vo/MatCodeSaveReqVO.java @@ -0,0 +1,34 @@ +package com.chanko.yunxi.mes.module.heli.controller.admin.matcode.vo; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.*; +import java.util.*; +import javax.validation.constraints.*; +import java.util.*; + +@Schema(description = "管理后台 - 物料大类编码维护新增/修改 Request VO") +@Data +public class MatCodeSaveReqVO { + + @Schema(description = "自增字段,唯一", requiredMode = Schema.RequiredMode.REQUIRED, example = "20351") + private Long id; + + @Schema(description = "物料大类编码", requiredMode = Schema.RequiredMode.REQUIRED) +// @NotEmpty(message = "物料大类编码不能为空") + private String matCatCode; + + @Schema(description = "物料大类名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "刚材") +// @NotEmpty(message = "大类名称不能为空") + private String matCatName; + + @Schema(description = "物料分类编码") + private String matTypeCode; + + @Schema(description = "当前最大流水号") + private String curMaxSeq; + + @Schema(description = "状态,1表示正常,0表示禁用", requiredMode = Schema.RequiredMode.REQUIRED, example = "1") +// @NotNull(message = "状态不能为空") + private Boolean status; + +} diff --git a/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/controller/admin/supplier/vo/SupplierSaveReqVO.java b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/controller/admin/supplier/vo/SupplierSaveReqVO.java index 3e8b1613..e2ab37e9 100644 --- a/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/controller/admin/supplier/vo/SupplierSaveReqVO.java +++ b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/controller/admin/supplier/vo/SupplierSaveReqVO.java @@ -2,6 +2,8 @@ package com.chanko.yunxi.mes.module.heli.controller.admin.supplier.vo; import io.swagger.v3.oas.annotations.media.Schema; import lombok.*; + +import java.math.BigDecimal; import java.util.*; import javax.validation.constraints.*; import java.util.*; @@ -107,6 +109,6 @@ public class SupplierSaveReqVO { private String taxNo; @Schema(description = "税率") - private Integer taxRate; + private String taxRate; } diff --git a/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/dal/dataobject/matcode/MatCodeDO.java b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/dal/dataobject/matcode/MatCodeDO.java new file mode 100644 index 00000000..d0985405 --- /dev/null +++ b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/dal/dataobject/matcode/MatCodeDO.java @@ -0,0 +1,55 @@ +package com.chanko.yunxi.mes.module.heli.dal.dataobject.matcode; + +import lombok.*; +import java.util.*; +import java.time.LocalDateTime; +import java.time.LocalDateTime; +import com.baomidou.mybatisplus.annotation.*; +import com.chanko.yunxi.mes.framework.mybatis.core.dataobject.BaseDO; + +/** + * 物料大类编码维护 DO + * + * @author 管理员 + */ +@TableName("base_mat_code") +@KeySequence("base_mat_code_seq") // 用于 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库的主键自增。如果是 MySQL 等数据库,可不写。 +@Data +@EqualsAndHashCode(callSuper = true) +@ToString(callSuper = true) +@Builder +@NoArgsConstructor +@AllArgsConstructor +public class MatCodeDO extends BaseDO { + + /** + * 自增字段,唯一 + */ + @TableId + private Long id; + /** + * 物料大类编码 + */ + private String matCatCode; + /** + * 物料物料大类名称 + */ + private String matCatName; + /** + * 物料分类编码 + */ + private String matTypeCode; + /** + * 当前最大流水号 + */ + private String curMaxSeq; + /** + * 状态,1表示正常,2表示禁用 + */ + private Boolean status; + + @TableField(exist = false) + private String creatorName; + + +} diff --git a/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/dal/dataobject/supplier/SupplierDO.java b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/dal/dataobject/supplier/SupplierDO.java index c8107e93..884fa024 100644 --- a/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/dal/dataobject/supplier/SupplierDO.java +++ b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/dal/dataobject/supplier/SupplierDO.java @@ -1,9 +1,7 @@ package com.chanko.yunxi.mes.module.heli.dal.dataobject.supplier; import lombok.*; -import java.util.*; -import java.time.LocalDateTime; -import java.time.LocalDateTime; + import com.baomidou.mybatisplus.annotation.*; import com.chanko.yunxi.mes.framework.mybatis.core.dataobject.BaseDO; @@ -153,6 +151,7 @@ public class SupplierDO extends BaseDO { */ private String taxNo; - private Integer taxRate; + @TableField(updateStrategy = FieldStrategy.ALWAYS) + private String taxRate; } diff --git a/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/dal/mysql/matcode/MatCodeMapper.java b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/dal/mysql/matcode/MatCodeMapper.java new file mode 100644 index 00000000..cf11ef45 --- /dev/null +++ b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/dal/mysql/matcode/MatCodeMapper.java @@ -0,0 +1,31 @@ +package com.chanko.yunxi.mes.module.heli.dal.mysql.matcode; + + + +import com.chanko.yunxi.mes.framework.common.pojo.PageResult; +import com.chanko.yunxi.mes.framework.mybatis.core.mapper.BaseMapperX; +import com.chanko.yunxi.mes.framework.mybatis.core.query.LambdaQueryWrapperX; +import com.chanko.yunxi.mes.module.heli.controller.admin.matcode.vo.MatCodePageReqVO; +import com.chanko.yunxi.mes.module.heli.dal.dataobject.matcode.MatCodeDO; +import org.apache.ibatis.annotations.Mapper; + +/** + * 物料大类编码维护 Mapper + * + * @author 管理员 + */ +@Mapper +public interface MatCodeMapper extends BaseMapperX { + + default PageResult selectPage(MatCodePageReqVO reqVO) { + return selectPage(reqVO, new LambdaQueryWrapperX() + .eqIfPresent(MatCodeDO::getMatCatCode, reqVO.getMatCatCode()) + .likeIfPresent(MatCodeDO::getMatCatName, reqVO.getMatCatName()) + .eqIfPresent(MatCodeDO::getMatTypeCode, reqVO.getMatTypeCode()) + .eqIfPresent(MatCodeDO::getCurMaxSeq, reqVO.getCurMaxSeq()) + .eqIfPresent(MatCodeDO::getStatus, reqVO.getStatus()) + .betweenIfPresent(MatCodeDO::getCreateTime, reqVO.getCreateTime()) + .orderByDesc(MatCodeDO::getId)); + } + +} diff --git a/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/service/matcode/MatCodeService.java b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/service/matcode/MatCodeService.java new file mode 100644 index 00000000..1cd546bd --- /dev/null +++ b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/service/matcode/MatCodeService.java @@ -0,0 +1,57 @@ +package com.chanko.yunxi.mes.module.heli.service.matcode; + +import com.chanko.yunxi.mes.framework.common.pojo.PageResult; +import com.chanko.yunxi.mes.module.heli.controller.admin.matcode.vo.MatCodePageReqVO; +import com.chanko.yunxi.mes.module.heli.controller.admin.matcode.vo.MatCodeRespVO; +import com.chanko.yunxi.mes.module.heli.controller.admin.matcode.vo.MatCodeSaveReqVO; +import com.chanko.yunxi.mes.module.heli.dal.dataobject.matcode.MatCodeDO; + +import javax.validation.*; + + +/** + * 物料大类编码维护 Service 接口 + * + * @author 管理员 + */ +public interface MatCodeService { + + /** + * 创建物料大类编码维护 + * + * @param createReqVO 创建信息 + * @return 编号 + */ + Long createMatCode(@Valid MatCodeSaveReqVO createReqVO); + + /** + * 更新物料大类编码维护 + * + * @param updateReqVO 更新信息 + */ + void updateMatCode(@Valid MatCodeSaveReqVO updateReqVO); + + /** + * 删除物料大类编码维护 + * + * @param id 编号 + */ + void deleteMatCode(Long id); + + /** + * 获得物料大类编码维护 + * + * @param id 编号 + * @return 物料大类编码维护 + */ + MatCodeDO getMatCode(Long id); + + /** + * 获得物料大类编码维护分页 + * + * @param pageReqVO 分页查询 + * @return 物料大类编码维护分页 + */ + PageResult getMatCodePage(MatCodePageReqVO pageReqVO); + +} diff --git a/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/service/matcode/MatCodeServiceImpl.java b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/service/matcode/MatCodeServiceImpl.java new file mode 100644 index 00000000..a260c87d --- /dev/null +++ b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/service/matcode/MatCodeServiceImpl.java @@ -0,0 +1,85 @@ +package com.chanko.yunxi.mes.module.heli.service.matcode; + +import com.chanko.yunxi.mes.framework.common.pojo.PageResult; +import com.chanko.yunxi.mes.framework.common.util.object.BeanUtils; +import com.chanko.yunxi.mes.module.heli.controller.admin.matcode.vo.MatCodePageReqVO; +import com.chanko.yunxi.mes.module.heli.controller.admin.matcode.vo.MatCodeSaveReqVO; +import com.chanko.yunxi.mes.module.heli.dal.dataobject.matcode.MatCodeDO; +import com.chanko.yunxi.mes.module.heli.dal.mysql.matcode.MatCodeMapper; +import com.chanko.yunxi.mes.module.system.dal.dataobject.user.AdminUserDO; +import com.chanko.yunxi.mes.module.system.dal.mysql.user.AdminUserMapper; +import org.springframework.stereotype.Service; +import org.springframework.validation.annotation.Validated; + +import javax.annotation.Resource; + +import static com.chanko.yunxi.mes.framework.common.exception.util.ServiceExceptionUtil.exception; +import static com.chanko.yunxi.mes.module.heli.enums.ErrorCodeConstants.MAT_CODE_NOT_EXISTS; + +/** + * 物料大类编码维护 Service 实现类 + * + * @author 管理员 + */ +@Service +@Validated +public class MatCodeServiceImpl implements MatCodeService { + + @Resource + private MatCodeMapper matCodeMapper; + @Resource + private AdminUserMapper userMapper; + + @Override + public Long createMatCode(MatCodeSaveReqVO createReqVO) { + // 插入 + MatCodeDO matCode = BeanUtils.toBean(createReqVO, MatCodeDO.class); + matCodeMapper.insert(matCode); + // 返回 + return matCode.getId(); + } + + @Override + public void updateMatCode(MatCodeSaveReqVO updateReqVO) { + // 校验存在 + validateMatCodeExists(updateReqVO.getId()); + // 更新 + MatCodeDO updateObj = BeanUtils.toBean(updateReqVO, MatCodeDO.class); + matCodeMapper.updateById(updateObj); + } + + @Override + public void deleteMatCode(Long id) { + // 校验存在 + validateMatCodeExists(id); + // 删除 + matCodeMapper.deleteById(id); + } + + private void validateMatCodeExists(Long id) { + if (matCodeMapper.selectById(id) == null) { + throw exception(MAT_CODE_NOT_EXISTS); + } + } + + @Override + public MatCodeDO getMatCode(Long id) { + return matCodeMapper.selectById(id); + } + + @Override + public PageResult getMatCodePage(MatCodePageReqVO pageReqVO) { + PageResult matCodeDOPageResult = matCodeMapper.selectPage(pageReqVO); + // 查询创建人,根据creator字段,查询用户信息 + matCodeDOPageResult.getList().forEach(matCodeDO -> { + if (matCodeDO.getCreator() != null) { + AdminUserDO user = userMapper.selectById(matCodeDO.getCreator()); + if (user != null) { + matCodeDO.setCreatorName(user.getUsername()); + } + } + }); + return matCodeDOPageResult; + } + +} diff --git a/mes-module-heli/mes-module-heli-biz/src/main/resources/mapper/matcode/MatCodeMapper.xml b/mes-module-heli/mes-module-heli-biz/src/main/resources/mapper/matcode/MatCodeMapper.xml new file mode 100644 index 00000000..cb9f1f4b --- /dev/null +++ b/mes-module-heli/mes-module-heli-biz/src/main/resources/mapper/matcode/MatCodeMapper.xml @@ -0,0 +1,12 @@ + + + + + + + \ No newline at end of file diff --git a/mes-ui/mes-ui-admin-vue3/src/api/heli/matcode/index.ts b/mes-ui/mes-ui-admin-vue3/src/api/heli/matcode/index.ts new file mode 100644 index 00000000..07403b8f --- /dev/null +++ b/mes-ui/mes-ui-admin-vue3/src/api/heli/matcode/index.ts @@ -0,0 +1,40 @@ +import request from '@/config/axios' + +export interface MatCodeVO { + id: number + matCatCode: string + matCatName: string + matTypeCode: string + curMaxSeq: string + status: boolean +} + +// 查询物料大类编码维护分页 +export const getMatCodePage = async (params) => { + return await request.get({ url: `/heli/matcode/page`, params }) +} + +// 查询物料大类编码维护详情 +export const getMatCode = async (id: number) => { + return await request.get({ url: `/heli/matcode/get?id=` + id }) +} + +// 新增物料大类编码维护 +export const createMatCode = async (data: MatCodeVO) => { + return await request.post({ url: `/heli/matcode/create`, data }) +} + +// 修改物料大类编码维护 +export const updateMatCode = async (data: MatCodeVO) => { + return await request.put({ url: `/heli/matcode/update`, data }) +} + +// 删除物料大类编码维护 +export const deleteMatCode = async (id: number) => { + return await request.delete({ url: `/heli/matcode/delete?id=` + id }) +} + +// 导出物料大类编码维护 Excel +export const exportMatCode = async (params) => { + return await request.download({ url: `/heli/matcode/export-excel`, params }) +} diff --git a/mes-ui/mes-ui-admin-vue3/src/api/heli/supplier/index.ts b/mes-ui/mes-ui-admin-vue3/src/api/heli/supplier/index.ts index 4b09ae8f..7d9f49ed 100644 --- a/mes-ui/mes-ui-admin-vue3/src/api/heli/supplier/index.ts +++ b/mes-ui/mes-ui-admin-vue3/src/api/heli/supplier/index.ts @@ -8,6 +8,7 @@ export interface SupplierVO { industry: string level: number category: number + taxRate: number userId: number description: string contact1Name: string diff --git a/mes-ui/mes-ui-admin-vue3/src/utils/dict.ts b/mes-ui/mes-ui-admin-vue3/src/utils/dict.ts index 5e3b4fb2..14b0374d 100644 --- a/mes-ui/mes-ui-admin-vue3/src/utils/dict.ts +++ b/mes-ui/mes-ui-admin-vue3/src/utils/dict.ts @@ -215,6 +215,8 @@ export enum DICT_TYPE { HELI_SUPPLIER_CATEGORY = 'heli_supplier_category', //供应商分类 HELI_MATERIAL_TYPE = 'heli_material_type', // 物料类型 HELI_MATERIAL_UNIT = 'heli_material_unit', // 物料单位 + HELI_MATERIAL_CODE = 'heli_mat_code', // 物料单位 + HELI_MATERIAL_ORIGINAL = 'heli_material_original', // 物料主要来源 HELE_BOM_EDIT_STATUS = 'heli_bom_edit_status', // 物料主要来源 HELI_COMMON_IS_OR_NOT = 'heli_common_is_or_not', // 是否数字类型 diff --git a/mes-ui/mes-ui-admin-vue3/src/views/heli/matcode/MatCodeForm.vue b/mes-ui/mes-ui-admin-vue3/src/views/heli/matcode/MatCodeForm.vue new file mode 100644 index 00000000..62ddea3e --- /dev/null +++ b/mes-ui/mes-ui-admin-vue3/src/views/heli/matcode/MatCodeForm.vue @@ -0,0 +1,135 @@ + + diff --git a/mes-ui/mes-ui-admin-vue3/src/views/heli/matcode/index.vue b/mes-ui/mes-ui-admin-vue3/src/views/heli/matcode/index.vue new file mode 100644 index 00000000..8718e956 --- /dev/null +++ b/mes-ui/mes-ui-admin-vue3/src/views/heli/matcode/index.vue @@ -0,0 +1,204 @@ + + + diff --git a/mes-ui/mes-ui-admin-vue3/src/views/heli/material/MaterialForm.vue b/mes-ui/mes-ui-admin-vue3/src/views/heli/material/MaterialForm.vue index 205fd0c8..3e59b8cc 100644 --- a/mes-ui/mes-ui-admin-vue3/src/views/heli/material/MaterialForm.vue +++ b/mes-ui/mes-ui-admin-vue3/src/views/heli/material/MaterialForm.vue @@ -36,6 +36,16 @@ /> + + + + + @@ -143,6 +153,7 @@ const formData = ref({ mainSupplierId: undefined, mainFrom: undefined, unit: undefined, + matCate: undefined, invSafe: undefined, invUpperLimit: undefined, invLowerLimit: undefined, @@ -250,6 +261,7 @@ const resetForm = () => { mainSupplierId: undefined, mainFrom: undefined, unit: undefined, + matCate: undefined, invSafe: undefined, invUpperLimit: undefined, invLowerLimit: undefined, diff --git a/mes-ui/mes-ui-admin-vue3/src/views/heli/storage/StorageForm.vue b/mes-ui/mes-ui-admin-vue3/src/views/heli/storage/StorageForm.vue index cbdd9f2c..1ccd741d 100644 --- a/mes-ui/mes-ui-admin-vue3/src/views/heli/storage/StorageForm.vue +++ b/mes-ui/mes-ui-admin-vue3/src/views/heli/storage/StorageForm.vue @@ -92,12 +92,12 @@ v-model="formData.whId" placeholder="下拉选择" clearable class="!w-400px" @c - + - + - + { const enableHeadNo = ref(false) const handleStockType = async (typeid) => { formData.value.headerNo = '' + formData.value.headerId = undefined + // 清空供应商信息 + formData.value.supplierId = undefined if (typeid == 1) { enableHeadNo.value = false } else { diff --git a/mes-ui/mes-ui-admin-vue3/src/views/heli/supplier/SupplierForm.vue b/mes-ui/mes-ui-admin-vue3/src/views/heli/supplier/SupplierForm.vue index bc8568a6..4acb2d38 100644 --- a/mes-ui/mes-ui-admin-vue3/src/views/heli/supplier/SupplierForm.vue +++ b/mes-ui/mes-ui-admin-vue3/src/views/heli/supplier/SupplierForm.vue @@ -327,7 +327,7 @@ const formData = ref({ industry: undefined, level: undefined, category: undefined, - taxRate: undefined, + taxRate: null, userId: undefined, description: undefined, contact1Name: undefined, @@ -358,6 +358,24 @@ const formRules = reactive({ brief: [{ required: true, message: '供应商简称不能为空', trigger: 'blur' }], name: [{ required: true, message: '供应商全称不能为空', trigger: 'blur' }], // status: [{ required: true, message: '状态,1 表示正常,2 表示禁用不能为空', trigger: 'blur' }], + taxRate: [ + { + validator: (rule, value, callback) => { + if (value === '' || value === null || value === undefined) { + callback() + return + } + // 验证格式:最大三位整数,最多1位小数 + const regex = /^(?!0\d)\d{0,2}(\.\d{0,1})?$/ + if (!regex.test(value)) { + callback(new Error('输入税率格式不正确,请确认!')) + } else { + callback() + } + }, + trigger: 'blur' + } + ] }) const formRef = ref() // 表单 Ref const userList = ref([]) // 用户列表 @@ -397,6 +415,11 @@ const submitForm = async () => { try { const data = formData.value as unknown as SupplierApi.SupplierVO + // 如果税率为空字符串,转换为 null + if (data.taxRate === '') { + data.taxRate = null + } + if (formType.value === 'create') { await SupplierApi.createSupplier(data) message.success(t('common.createSuccess')) @@ -422,6 +445,7 @@ const resetForm = () => { industry: undefined, level: undefined, category: undefined, + taxRate: null, userId: undefined, description: undefined, contact1Name: undefined,