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 fce9082..59901f3 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 @@ -133,6 +133,7 @@ public interface ErrorCodeConstants { ErrorCode MASTER_NOT_EXISTS = new ErrorCode(1_011_001, "借用主不存在"); ErrorCode ORDER_YF_NOT_EXISTS = new ErrorCode(1_011_001, "应付记录不存在"); + ErrorCode ORDER_YS_NOT_EXISTS = new ErrorCode(1_011_001, "应收记录不存在"); ErrorCode SALE_ORDER_COST_DETAIL_NOT_EXISTS = new ErrorCode(1_011_001, "项目订单成本汇算明细不存在"); /************责任人管理***********/ diff --git a/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/controller/admin/orderys/OrderYsController.java b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/controller/admin/orderys/OrderYsController.java new file mode 100644 index 0000000..42c7dd6 --- /dev/null +++ b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/controller/admin/orderys/OrderYsController.java @@ -0,0 +1,95 @@ +package com.chanko.yunxi.mes.module.heli.controller.admin.orderys; + +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.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.*; + +import com.chanko.yunxi.mes.module.heli.controller.admin.orderys.vo.*; +import com.chanko.yunxi.mes.module.heli.dal.dataobject.orderys.OrderYsDO; +import com.chanko.yunxi.mes.module.heli.service.orderys.OrderYsService; + +@Tag(name = "管理后台 - 应收记录") +@RestController +@RequestMapping("/heli/order-ys") +@Validated +public class OrderYsController { + + @Resource + private OrderYsService orderYsService; + + @PostMapping("/create") + @Operation(summary = "创建应收记录") + @PreAuthorize("@ss.hasPermission('heli:order-ys:create')") + public CommonResult createOrderYs(@Valid @RequestBody OrderYsSaveReqVO createReqVO) { + return success(orderYsService.createOrderYs(createReqVO)); + } + + @PutMapping("/update") + @Operation(summary = "更新应收记录") + @PreAuthorize("@ss.hasPermission('heli:order-ys:update')") + public CommonResult updateOrderYs(@Valid @RequestBody OrderYsSaveReqVO updateReqVO) { + orderYsService.updateOrderYs(updateReqVO); + return success(true); + } + + @DeleteMapping("/delete") + @Operation(summary = "删除应收记录") + @Parameter(name = "id", description = "编号", required = true) + @PreAuthorize("@ss.hasPermission('heli:order-ys:delete')") + public CommonResult deleteOrderYs(@RequestParam("id") Integer id) { + orderYsService.deleteOrderYs(id); + return success(true); + } + + @GetMapping("/get") + @Operation(summary = "获得应收记录") + @Parameter(name = "id", description = "编号", required = true, example = "1024") + @PreAuthorize("@ss.hasPermission('heli:order-ys:query')") + public CommonResult getOrderYs(@RequestParam("id") Integer id) { + OrderYsDO orderYs = orderYsService.getOrderYs(id); + return success(BeanUtils.toBean(orderYs, OrderYsRespVO.class)); + } + + @GetMapping("/page") + @Operation(summary = "获得应收记录分页") + @PreAuthorize("@ss.hasPermission('heli:order-ys:query')") + public CommonResult> getOrderYsPage(@Valid OrderYsPageReqVO pageReqVO) { + PageResult pageResult = orderYsService.getOrderYsPage(pageReqVO); + return success(BeanUtils.toBean(pageResult, OrderYsRespVO.class)); + } + + @GetMapping("/export-excel") + @Operation(summary = "导出应收记录 Excel") + @PreAuthorize("@ss.hasPermission('heli:order-ys:export')") + @OperateLog(type = EXPORT) + public void exportOrderYsExcel(@Valid OrderYsPageReqVO pageReqVO, + HttpServletResponse response) throws IOException { + pageReqVO.setPageSize(PageParam.PAGE_SIZE_NONE); + List list = orderYsService.getOrderYsPage(pageReqVO).getList(); + // 导出 Excel + ExcelUtils.write(response, "应收记录.xls", "数据", OrderYsExportVO.class, + BeanUtils.toBean(list, OrderYsExportVO.class)); + } + +} diff --git a/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/controller/admin/orderys/vo/OrderYsExportVO.java b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/controller/admin/orderys/vo/OrderYsExportVO.java new file mode 100644 index 0000000..b74f758 --- /dev/null +++ b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/controller/admin/orderys/vo/OrderYsExportVO.java @@ -0,0 +1,49 @@ +package com.chanko.yunxi.mes.module.heli.controller.admin.orderys.vo; + +import com.alibaba.excel.annotation.ExcelIgnoreUnannotated; +import com.alibaba.excel.annotation.ExcelProperty; +import com.chanko.yunxi.mes.framework.excel.core.annotations.DictFormat; +import com.chanko.yunxi.mes.framework.excel.core.convert.DictConvert; +import com.chanko.yunxi.mes.framework.excel.core.convert.TimestampToDateConvert; +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; + +import java.math.BigDecimal; +import java.time.LocalDateTime; + +@Schema(description = "管理后台 - 应收管理 Export VO") +@Data +@ExcelIgnoreUnannotated +public class OrderYsExportVO { + + @Schema(description = "项目编号,唯一", requiredMode = Schema.RequiredMode.REQUIRED) + @ExcelProperty("项目编号") + private String code; + + @Schema(description = "项目名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "赵六") + @ExcelProperty("项目名称") + private String projectName; + @ExcelProperty(value = "生成日期", converter = TimestampToDateConvert.class) + private LocalDateTime cgTime; + @Schema(description = "客户名称", example = "王五") + @ExcelProperty("客户名称") + private String cgKhname; + @Schema(description = "预计回款日期") + @ExcelProperty(value = "预计回款日期", converter = TimestampToDateConvert.class) + private LocalDateTime paymentDate; + @Schema(description = "应收金额") + @ExcelProperty("应收金额") + private BigDecimal cgYs; + + @Schema(description = "已收金额") + @ExcelProperty("已收金额") + private BigDecimal cgYishou; + @Schema(description = "是否回款完成") + @ExcelProperty(value = "是否回款完成", converter = DictConvert.class) + @DictFormat("heli_yingfu_money") + private Integer cgTypee; + @Schema(description = "备注") + @ExcelProperty("备注") + private String rem; + +} diff --git a/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/controller/admin/orderys/vo/OrderYsPageReqVO.java b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/controller/admin/orderys/vo/OrderYsPageReqVO.java new file mode 100644 index 0000000..e2983bc --- /dev/null +++ b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/controller/admin/orderys/vo/OrderYsPageReqVO.java @@ -0,0 +1,50 @@ +package com.chanko.yunxi.mes.module.heli.controller.admin.orderys.vo; + +import lombok.*; +import java.util.*; +import io.swagger.v3.oas.annotations.media.Schema; +import com.chanko.yunxi.mes.framework.common.pojo.PageParam; +import java.math.BigDecimal; +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 OrderYsPageReqVO extends PageParam { + + @Schema(description = "创建时间") + @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) + private LocalDateTime[] createTime; + + @Schema(description = "项目编号") + private String code; + + @Schema(description = "项目名称", example = "赵六") + private String projectName; + + @Schema(description = "生成日期") + @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) + private LocalDateTime[] cgTime; + @Schema(description = "预计回款日期") + @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) + private LocalDateTime[] paymentDate; + @Schema(description = "客户名称", example = "王五") + private String cgKhname; + + @Schema(description = "应收金额") + private BigDecimal cgYs; + + @Schema(description = "已收金额") + private BigDecimal cgYishou; + + @Schema(description = "是否回款完成") + private Integer cgTypee; + + @Schema(description = "备注") + private String rem; + +} \ No newline at end of file diff --git a/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/controller/admin/orderys/vo/OrderYsRespVO.java b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/controller/admin/orderys/vo/OrderYsRespVO.java new file mode 100644 index 0000000..4a58a1e --- /dev/null +++ b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/controller/admin/orderys/vo/OrderYsRespVO.java @@ -0,0 +1,60 @@ +package com.chanko.yunxi.mes.module.heli.controller.admin.orderys.vo; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.*; +import java.util.*; +import java.util.*; +import java.math.BigDecimal; +import org.springframework.format.annotation.DateTimeFormat; +import java.time.LocalDateTime; +import com.alibaba.excel.annotation.*; + +@Schema(description = "管理后台 - 应收记录 Response VO") +@Data +@ExcelIgnoreUnannotated +public class OrderYsRespVO { + + @Schema(description = "自增字段,唯一", requiredMode = Schema.RequiredMode.REQUIRED, example = "20436") + @ExcelProperty("自增字段,唯一") + private Integer id; + + @Schema(description = "创建时间") + @ExcelProperty("创建时间") + private LocalDateTime createTime; + + @Schema(description = "项目编号") + @ExcelProperty("项目编号") + private String code; + + @Schema(description = "项目名称", example = "赵六") + @ExcelProperty("项目名称") + private String projectName; + + @Schema(description = "生成日期") + @ExcelProperty("生成日期") + private LocalDateTime cgTime; + @Schema(description = "预计回款日期") + @ExcelProperty("预计回款日期") + private LocalDateTime paymentDate; + + @Schema(description = "客户名称", example = "王五") + @ExcelProperty("客户名称") + private String cgKhname; + + @Schema(description = "应收金额") + @ExcelProperty("应收金额") + private BigDecimal cgYs; + + @Schema(description = "已收金额") + @ExcelProperty("已收金额") + private BigDecimal cgYishou; + + @Schema(description = "是否回款完成") + @ExcelProperty("是否回款完成") + private Integer cgTypee; + + @Schema(description = "备注") + @ExcelProperty("备注") + private String rem; + +} \ No newline at end of file diff --git a/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/controller/admin/orderys/vo/OrderYsSaveReqVO.java b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/controller/admin/orderys/vo/OrderYsSaveReqVO.java new file mode 100644 index 0000000..7c26ea8 --- /dev/null +++ b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/controller/admin/orderys/vo/OrderYsSaveReqVO.java @@ -0,0 +1,44 @@ +package com.chanko.yunxi.mes.module.heli.controller.admin.orderys.vo; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.*; +import java.util.*; +import javax.validation.constraints.*; +import java.util.*; +import java.math.BigDecimal; +import org.springframework.format.annotation.DateTimeFormat; +import java.time.LocalDateTime; + +@Schema(description = "管理后台 - 应收记录新增/修改 Request VO") +@Data +public class OrderYsSaveReqVO { + + @Schema(description = "自增字段,唯一", requiredMode = Schema.RequiredMode.REQUIRED, example = "20436") + private Integer id; + + @Schema(description = "项目编号") + private String code; + + @Schema(description = "项目名称", example = "赵六") + private String projectName; + + @Schema(description = "生成日期") + private LocalDateTime cgTime; + @Schema(description = "生成日期") + private LocalDateTime paymentDate; + @Schema(description = "客户名称", example = "王五") + private String cgKhname; + + @Schema(description = "应收金额") + private BigDecimal cgYs; + + @Schema(description = "已收金额") + private BigDecimal cgYishou; + + @Schema(description = "是否回款完成") + private Integer cgTypee; + + @Schema(description = "备注") + private String rem; + +} diff --git a/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/dal/dataobject/orderys/OrderYsDO.java b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/dal/dataobject/orderys/OrderYsDO.java new file mode 100644 index 0000000..52ddc7f --- /dev/null +++ b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/dal/dataobject/orderys/OrderYsDO.java @@ -0,0 +1,70 @@ +package com.chanko.yunxi.mes.module.heli.dal.dataobject.orderys; + +import lombok.*; +import java.util.*; +import java.time.LocalDateTime; +import java.time.LocalDateTime; +import java.time.LocalDateTime; +import java.math.BigDecimal; +import java.math.BigDecimal; +import com.baomidou.mybatisplus.annotation.*; +import com.chanko.yunxi.mes.framework.mybatis.core.dataobject.BaseDO; + +/** + * 应收记录 DO + * + * @author 管理员 + */ +@TableName("cg_order_ys") +@KeySequence("cg_order_ys_seq") // 用于 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库的主键自增。如果是 MySQL 等数据库,可不写。 +@Data +@EqualsAndHashCode(callSuper = true) +@ToString(callSuper = true) +@Builder +@NoArgsConstructor +@AllArgsConstructor +public class OrderYsDO extends BaseDO { + + /** + * 自增字段,唯一 + */ + @TableId + private Integer id; + /** + * 项目编号 + */ + private String code; + /** + * 项目名称 + */ + private String projectName; + /** + * 生成日期 + */ + private LocalDateTime cgTime; + /** + * 预计回款日期 + */ + private LocalDateTime paymentDate; + /** + * 客户名称 + */ + private String cgKhname; + /** + * 应收金额 + */ + private BigDecimal cgYs; + /** + * 已收金额 + */ + private BigDecimal cgYishou; + /** + * 是否回款完成 + */ + private Integer cgTypee; + /** + * 备注 + */ + private String rem; + +} \ No newline at end of file diff --git a/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/dal/mysql/orderys/OrderYsMapper.java b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/dal/mysql/orderys/OrderYsMapper.java new file mode 100644 index 0000000..2d94aba --- /dev/null +++ b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/dal/mysql/orderys/OrderYsMapper.java @@ -0,0 +1,34 @@ +package com.chanko.yunxi.mes.module.heli.dal.mysql.orderys; + +import java.util.*; + +import com.chanko.yunxi.mes.framework.common.pojo.PageResult; +import com.chanko.yunxi.mes.framework.mybatis.core.query.LambdaQueryWrapperX; +import com.chanko.yunxi.mes.framework.mybatis.core.mapper.BaseMapperX; +import com.chanko.yunxi.mes.module.heli.dal.dataobject.orderys.OrderYsDO; +import org.apache.ibatis.annotations.Mapper; +import com.chanko.yunxi.mes.module.heli.controller.admin.orderys.vo.*; + +/** + * 应收记录 Mapper + * + * @author 管理员 + */ +@Mapper +public interface OrderYsMapper extends BaseMapperX { + + default PageResult selectPage(OrderYsPageReqVO reqVO) { + return selectPage(reqVO, new LambdaQueryWrapperX() + .betweenIfPresent(OrderYsDO::getCreateTime, reqVO.getCreateTime()) + .eqIfPresent(OrderYsDO::getCode, reqVO.getCode()) + .likeIfPresent(OrderYsDO::getProjectName, reqVO.getProjectName()) + .betweenIfPresent(OrderYsDO::getCgTime, reqVO.getCgTime()) + .likeIfPresent(OrderYsDO::getCgKhname, reqVO.getCgKhname()) + .eqIfPresent(OrderYsDO::getCgYs, reqVO.getCgYs()) + .eqIfPresent(OrderYsDO::getCgYishou, reqVO.getCgYishou()) + .eqIfPresent(OrderYsDO::getCgTypee, reqVO.getCgTypee()) + .eqIfPresent(OrderYsDO::getRem, reqVO.getRem()) + .orderByDesc(OrderYsDO::getId)); + } + +} \ No newline at end of file diff --git a/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/service/orderys/OrderYsService.java b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/service/orderys/OrderYsService.java new file mode 100644 index 0000000..58fc542 --- /dev/null +++ b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/service/orderys/OrderYsService.java @@ -0,0 +1,55 @@ +package com.chanko.yunxi.mes.module.heli.service.orderys; + +import java.util.*; +import javax.validation.*; +import com.chanko.yunxi.mes.module.heli.controller.admin.orderys.vo.*; +import com.chanko.yunxi.mes.module.heli.dal.dataobject.orderys.OrderYsDO; +import com.chanko.yunxi.mes.framework.common.pojo.PageResult; +import com.chanko.yunxi.mes.framework.common.pojo.PageParam; + +/** + * 应收记录 Service 接口 + * + * @author 管理员 + */ +public interface OrderYsService { + + /** + * 创建应收记录 + * + * @param createReqVO 创建信息 + * @return 编号 + */ + Integer createOrderYs(@Valid OrderYsSaveReqVO createReqVO); + + /** + * 更新应收记录 + * + * @param updateReqVO 更新信息 + */ + void updateOrderYs(@Valid OrderYsSaveReqVO updateReqVO); + + /** + * 删除应收记录 + * + * @param id 编号 + */ + void deleteOrderYs(Integer id); + + /** + * 获得应收记录 + * + * @param id 编号 + * @return 应收记录 + */ + OrderYsDO getOrderYs(Integer id); + + /** + * 获得应收记录分页 + * + * @param pageReqVO 分页查询 + * @return 应收记录分页 + */ + PageResult getOrderYsPage(OrderYsPageReqVO pageReqVO); + +} diff --git a/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/service/orderys/OrderYsServiceImpl.java b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/service/orderys/OrderYsServiceImpl.java new file mode 100644 index 0000000..383fbad --- /dev/null +++ b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/service/orderys/OrderYsServiceImpl.java @@ -0,0 +1,77 @@ +package com.chanko.yunxi.mes.module.heli.service.orderys; + +import org.springframework.stereotype.Service; +import javax.annotation.Resource; +import org.springframework.validation.annotation.Validated; +import org.springframework.transaction.annotation.Transactional; + +import java.util.*; +import com.chanko.yunxi.mes.module.heli.controller.admin.orderys.vo.*; +import com.chanko.yunxi.mes.module.heli.dal.dataobject.orderys.OrderYsDO; +import com.chanko.yunxi.mes.framework.common.pojo.PageResult; +import com.chanko.yunxi.mes.framework.common.pojo.PageParam; +import com.chanko.yunxi.mes.framework.common.util.object.BeanUtils; + +import com.chanko.yunxi.mes.module.heli.dal.mysql.orderys.OrderYsMapper; + +import static com.chanko.yunxi.mes.framework.common.exception.util.ServiceExceptionUtil.exception; +import static com.chanko.yunxi.mes.module.heli.enums.ErrorCodeConstants.*; + +/** + * 应收记录 Service 实现类 + * + * @author 管理员 + */ +@Service +@Validated +public class OrderYsServiceImpl implements OrderYsService { + + @Resource + private OrderYsMapper orderYsMapper; + + @Override + public Integer createOrderYs(OrderYsSaveReqVO createReqVO) { + // 插入 + OrderYsDO orderYs = BeanUtils.toBean(createReqVO, OrderYsDO.class); + orderYsMapper.insert(orderYs); + // 返回 + return orderYs.getId(); + } + + @Override + public void updateOrderYs(OrderYsSaveReqVO updateReqVO) { + // 校验存在 + validateOrderYsExists(updateReqVO.getId()); + if (updateReqVO.getCgYishou().compareTo(updateReqVO.getCgYs())>=0){ + updateReqVO.setCgTypee(2); + } + // 更新 + OrderYsDO updateObj = BeanUtils.toBean(updateReqVO, OrderYsDO.class); + orderYsMapper.updateById(updateObj); + } + + @Override + public void deleteOrderYs(Integer id) { + // 校验存在 + validateOrderYsExists(id); + // 删除 + orderYsMapper.deleteById(id); + } + + private void validateOrderYsExists(Integer id) { + if (orderYsMapper.selectById(id) == null) { + throw exception(ORDER_YS_NOT_EXISTS); + } + } + + @Override + public OrderYsDO getOrderYs(Integer id) { + return orderYsMapper.selectById(id); + } + + @Override + public PageResult getOrderYsPage(OrderYsPageReqVO pageReqVO) { + return orderYsMapper.selectPage(pageReqVO); + } + +} diff --git a/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/service/projectorder/ProjectOrderServiceImpl.java b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/service/projectorder/ProjectOrderServiceImpl.java index 4a0fec8..5cd12bc 100644 --- a/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/service/projectorder/ProjectOrderServiceImpl.java +++ b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/service/projectorder/ProjectOrderServiceImpl.java @@ -1,9 +1,11 @@ package com.chanko.yunxi.mes.module.heli.service.projectorder; import cn.hutool.core.collection.CollUtil; +import cn.hutool.core.util.ObjectUtil; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.chanko.yunxi.mes.framework.common.pojo.PageResult; import com.chanko.yunxi.mes.framework.common.util.object.BeanUtils; +import com.chanko.yunxi.mes.framework.common.util.object.ObjectUtils; import com.chanko.yunxi.mes.framework.operatelog.core.enums.OperateTypeEnum; import com.chanko.yunxi.mes.framework.security.core.LoginUser; import com.chanko.yunxi.mes.framework.security.core.util.SecurityFrameworkUtils; @@ -17,10 +19,12 @@ import com.chanko.yunxi.mes.module.heli.dal.dataobject.bdgzsomthing.bdgzsomthing import com.chanko.yunxi.mes.module.heli.dal.dataobject.customer.CustomerDO; import com.chanko.yunxi.mes.module.heli.dal.dataobject.deliverorder.DeliverOrderDO; import com.chanko.yunxi.mes.module.heli.dal.dataobject.deliverorder.DeliverOrderSubDO; +import com.chanko.yunxi.mes.module.heli.dal.dataobject.orderys.OrderYsDO; import com.chanko.yunxi.mes.module.heli.dal.dataobject.projectorder.ProjectOrderDO; import com.chanko.yunxi.mes.module.heli.dal.dataobject.projectorder.ProjectOrderSubDO; import com.chanko.yunxi.mes.module.heli.dal.dataobject.serialnumber.SerialNumberDO; import com.chanko.yunxi.mes.module.heli.dal.mysql.deliverorder.DeliverOrderSubMapper; +import com.chanko.yunxi.mes.module.heli.dal.mysql.orderys.OrderYsMapper; import com.chanko.yunxi.mes.module.heli.dal.mysql.projectorder.ProjectOrderMapper; import com.chanko.yunxi.mes.module.heli.dal.mysql.projectorder.ProjectOrderSubMapper; import com.chanko.yunxi.mes.module.heli.enums.BusinesTypeEnum; @@ -48,6 +52,7 @@ import org.springframework.transaction.annotation.Transactional; import org.springframework.validation.annotation.Validated; import javax.annotation.Resource; +import java.math.BigDecimal; import java.text.SimpleDateFormat; import java.time.LocalDateTime; import java.util.*; @@ -91,6 +96,8 @@ public class ProjectOrderServiceImpl implements ProjectOrderService { @Resource private DeliverOrderSubMapper deliverOrderSubMapper; + @Resource + private OrderYsMapper orderYsMapper; @Autowired private StorageLogService storageLogService; @Autowired @@ -381,11 +388,16 @@ public class ProjectOrderServiceImpl implements ProjectOrderService { public void operateProjectOrder(ProjectOrderSaveReqVO operateReqVO) { if(operateReqVO.getId() == null){ createProjectOrder(operateReqVO); + OrderYsDO orderYsDO = new OrderYsDO(); + orderYsDO.setCode(operateReqVO.getCode()); + orderYsDO.setProjectName(operateReqVO.getProjectName()); + orderYsDO.setCgTime(LocalDateTime.now()); + orderYsDO.setCgKhname(customerService.getCustomer(operateReqVO.getCustomerId()).getName()); if(operateReqVO.getHasPrice().equals(1)&&(operateReqVO.getPrice()==null)){ //订单有价格但是没录价格 String nickname = userApi.getUser( SecurityFrameworkUtils.getLoginUser().getId()).getNickname(); - + orderYsDO.setCgYs(new BigDecimal(0)); List attentiontodook = attentiontodoService.getAttentiontodolist(1);//查找该类型的待办和关注人 改 AttentiontodoDO attentiontodoDO = attentiontodook.get(0); @@ -461,7 +473,24 @@ public class ProjectOrderServiceImpl implements ProjectOrderService { } + }else { + orderYsDO.setCgYs(operateReqVO.getPrice()); + LocalDateTime[] paymentTimes = { + operateReqVO.getSixFuKuanTime(), + operateReqVO.getFiveFuKuanTime(), + operateReqVO.getFourFuKuanTime(), + operateReqVO.getThreeFuKuanTime(), + operateReqVO.getTwoFuKuanTime(), + operateReqVO.getShouFuKuanTime() + }; + for (LocalDateTime paymentTime : paymentTimes) { + if (!ObjectUtil.isEmpty(paymentTime)) { + orderYsDO.setPaymentDate(paymentTime); + break; + } + } } + orderYsMapper.insert(orderYsDO); }else{ if ("PRICE".equals(operateReqVO.getActive())){ updateProjectOrderPrice(operateReqVO); @@ -469,14 +498,79 @@ public class ProjectOrderServiceImpl implements ProjectOrderService { updateProjectOrder(operateReqVO); } if(operateReqVO.getHasPrice().equals(1)&&(operateReqVO.getPrice()==null)){ - + LambdaQueryWrapper eq = new LambdaQueryWrapper().eq(OrderYsDO::getCode, operateReqVO.getCode()); + OrderYsDO orderYsDO = orderYsMapper.selectOne(eq); + if (ObjectUtil.isEmpty(orderYsDO)) { + orderYsDO = new OrderYsDO(); + orderYsDO.setCode(operateReqVO.getCode()); + orderYsDO.setProjectName(operateReqVO.getProjectName()); + orderYsDO.setCgTime(LocalDateTime.now()); + orderYsDO.setCgYs(new BigDecimal(0)); + LocalDateTime[] paymentTimes = { + operateReqVO.getSixFuKuanTime(), + operateReqVO.getFiveFuKuanTime(), + operateReqVO.getFourFuKuanTime(), + operateReqVO.getThreeFuKuanTime(), + operateReqVO.getTwoFuKuanTime(), + operateReqVO.getShouFuKuanTime() + }; + for (LocalDateTime paymentTime : paymentTimes) { + if (!ObjectUtil.isEmpty(paymentTime)) { + orderYsDO.setPaymentDate(paymentTime); + break; + } + } + orderYsMapper.insert(orderYsDO); + } }else{ bdgzsomthingDO abc= new bdgzsomthingDO(); abc.setThingname("订单有价格"); abc.setAttr12("0"); abc.setAttr3(operateReqVO.getId().toString()); bdgzsomthingMapper.updateok(abc); - } + LambdaQueryWrapper eq = new LambdaQueryWrapper().eq(OrderYsDO::getCode, operateReqVO.getCode()); + OrderYsDO orderYsDO = orderYsMapper.selectOne(eq); + if (ObjectUtil.isEmpty(orderYsDO)){ + orderYsDO = new OrderYsDO(); + orderYsDO.setCode(operateReqVO.getCode()); + orderYsDO.setProjectName(operateReqVO.getProjectName()); + orderYsDO.setCgTime(LocalDateTime.now()); + orderYsDO.setCgYs(operateReqVO.getPrice()); + LocalDateTime[] paymentTimes = { + operateReqVO.getSixFuKuanTime(), + operateReqVO.getFiveFuKuanTime(), + operateReqVO.getFourFuKuanTime(), + operateReqVO.getThreeFuKuanTime(), + operateReqVO.getTwoFuKuanTime(), + operateReqVO.getShouFuKuanTime() + }; + for (LocalDateTime paymentTime : paymentTimes) { + if (!ObjectUtil.isEmpty(paymentTime)) { + orderYsDO.setPaymentDate(paymentTime); + break; + } + } + orderYsMapper.insert(orderYsDO); + }else { + orderYsDO.setCgYs(operateReqVO.getPrice()); + LocalDateTime[] paymentTimes = { + operateReqVO.getSixFuKuanTime(), + operateReqVO.getFiveFuKuanTime(), + operateReqVO.getFourFuKuanTime(), + operateReqVO.getThreeFuKuanTime(), + operateReqVO.getTwoFuKuanTime(), + operateReqVO.getShouFuKuanTime() + }; + for (LocalDateTime paymentTime : paymentTimes) { + if (!ObjectUtil.isEmpty(paymentTime)) { + orderYsDO.setPaymentDate(paymentTime); + break; + } + } + orderYsMapper.updateById(orderYsDO); + } + + } } diff --git a/mes-ui/mes-ui-admin-vue3/src/api/heli/orderys/index.ts b/mes-ui/mes-ui-admin-vue3/src/api/heli/orderys/index.ts new file mode 100644 index 0000000..d7dcd04 --- /dev/null +++ b/mes-ui/mes-ui-admin-vue3/src/api/heli/orderys/index.ts @@ -0,0 +1,43 @@ +import request from '@/config/axios' + +export interface OrderYsVO { + id: number + code: string + projectName: string + cgTime: Date + cgKhname: string + cgYs: number + cgYishou: number + cgTypee: number + rem: string +} + +// 查询应收记录分页 +export const getOrderYsPage = async (params) => { + return await request.get({ url: `/heli/order-ys/page`, params }) +} + +// 查询应收记录详情 +export const getOrderYs = async (id: number) => { + return await request.get({ url: `/heli/order-ys/get?id=` + id }) +} + +// 新增应收记录 +export const createOrderYs = async (data: OrderYsVO) => { + return await request.post({ url: `/heli/order-ys/create`, data }) +} + +// 修改应收记录 +export const updateOrderYs = async (data: OrderYsVO) => { + return await request.put({ url: `/heli/order-ys/update`, data }) +} + +// 删除应收记录 +export const deleteOrderYs = async (id: number) => { + return await request.delete({ url: `/heli/order-ys/delete?id=` + id }) +} + +// 导出应收记录 Excel +export const exportOrderYs = async (params) => { + return await request.download({ url: `/heli/order-ys/export-excel`, params }) +} diff --git a/mes-ui/mes-ui-admin-vue3/src/views/heli/orderyf/index.vue b/mes-ui/mes-ui-admin-vue3/src/views/heli/orderyf/index.vue index 282a99a..00fb90f 100644 --- a/mes-ui/mes-ui-admin-vue3/src/views/heli/orderyf/index.vue +++ b/mes-ui/mes-ui-admin-vue3/src/views/heli/orderyf/index.vue @@ -242,4 +242,4 @@ const handleExport = async () => { onMounted(() => { getList() }) - \ No newline at end of file + diff --git a/mes-ui/mes-ui-admin-vue3/src/views/heli/orderys/OrderYsForm.vue b/mes-ui/mes-ui-admin-vue3/src/views/heli/orderys/OrderYsForm.vue new file mode 100644 index 0000000..b5fad5b --- /dev/null +++ b/mes-ui/mes-ui-admin-vue3/src/views/heli/orderys/OrderYsForm.vue @@ -0,0 +1,128 @@ + + diff --git a/mes-ui/mes-ui-admin-vue3/src/views/heli/orderys/index.vue b/mes-ui/mes-ui-admin-vue3/src/views/heli/orderys/index.vue new file mode 100644 index 0000000..1b1c6f5 --- /dev/null +++ b/mes-ui/mes-ui-admin-vue3/src/views/heli/orderys/index.vue @@ -0,0 +1,241 @@ + + + diff --git a/mes-ui/mes-ui-admin-vue3/src/views/heli/outsourcestock/edit.vue b/mes-ui/mes-ui-admin-vue3/src/views/heli/outsourcestock/edit.vue index f54daa6..d8df869 100644 --- a/mes-ui/mes-ui-admin-vue3/src/views/heli/outsourcestock/edit.vue +++ b/mes-ui/mes-ui-admin-vue3/src/views/heli/outsourcestock/edit.vue @@ -1124,10 +1124,13 @@ onMounted(async () => { const purchaseOrderDo = await PurchaseOrderApi.getPurchaseOrder(formData.value.purchaseId) formData.value.purchaseNo = purchaseOrderDo.purchaseNo // 获取物料需求计划信息 - const materialPlan = await MaterialPlanApi.getMaterialPlan(purchaseOrderDo.projectMaterialPlanId) - //获取物料需求计划中的生产计划id,去查询对应子项目 - // 获取生产计划单中子项目编号 - await handleInitPlanSub(materialPlan.projectPlanId) + if (purchaseOrderDo.projectMaterialPlanId!=null){ + const materialPlan = await MaterialPlanApi.getMaterialPlan(purchaseOrderDo.projectMaterialPlanId) + //获取物料需求计划中的生产计划id,去查询对应子项目 + // 获取生产计划单中子项目编号 + await handleInitPlanSub(materialPlan.projectPlanId) + } + } if ( formData.value.supplierId != undefined && diff --git a/mes-ui/mes-ui-admin-vue3/src/views/heli/purchaseorder/edit.vue b/mes-ui/mes-ui-admin-vue3/src/views/heli/purchaseorder/edit.vue index f43c275..47700a3 100644 --- a/mes-ui/mes-ui-admin-vue3/src/views/heli/purchaseorder/edit.vue +++ b/mes-ui/mes-ui-admin-vue3/src/views/heli/purchaseorder/edit.vue @@ -478,7 +478,7 @@ --> - +