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 aeb2e65f..71912a20 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 @@ -147,6 +147,7 @@ public interface ErrorCodeConstants { ErrorCode ZJ_BG_MASTER_LINE_NOT_EXISTS = new ErrorCode(1_011_001, "终检报工不存在"); ErrorCode MASTER_NOT_EXISTS = new ErrorCode(1_011_001, "借用主不存在"); + ErrorCode MASTER_LINE_NOT_EXISTS = new ErrorCode(1_011_002, "借用物料行不存在"); ErrorCode ORDER_YF_NOT_EXISTS = new ErrorCode(1_011_001, "应付记录不存在"); ErrorCode ORDER_YS_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/bdgzsomthing/bdgzsomthingController.java b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/controller/admin/bdgzsomthing/bdgzsomthingController.java index 93ad04af..864fa23e 100644 --- a/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/controller/admin/bdgzsomthing/bdgzsomthingController.java +++ b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/controller/admin/bdgzsomthing/bdgzsomthingController.java @@ -151,7 +151,7 @@ public class bdgzsomthingController { BeanUtils.toBean(list, bdgzsomthingRespVO.class)); } -// @Scheduled(fixedRate = 10800000) + @Scheduled(fixedRate = 10800000) public void scheduledTask() { bdgzsomthingService.selectds(); } @@ -159,8 +159,8 @@ public class bdgzsomthingController { //@Scheduled(cron = "0 2 0 * * ?") //每天十天执行一次 @PostConstruct public void init() { -// selectHasPrice(); -// selectSafeStorageAndDeliverOneYear(); + selectHasPrice(); + selectSafeStorageAndDeliverOneYear(); // bdgzsomthingService.selectds(); } @Scheduled(cron = "0 0 2 * * ?") diff --git a/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/controller/admin/master/MasterController.java b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/controller/admin/master/MasterController.java index c3cf8fa7..da3b7f73 100644 --- a/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/controller/admin/master/MasterController.java +++ b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/controller/admin/master/MasterController.java @@ -1,6 +1,7 @@ package com.chanko.yunxi.mes.module.heli.controller.admin.master; import cn.hutool.core.util.ObjectUtil; +import com.chanko.yunxi.mes.module.heli.dal.dataobject.masterline.MasterLineDO; import com.chanko.yunxi.mes.module.heli.dal.dataobject.material.MaterialDO; import com.chanko.yunxi.mes.module.heli.service.material.MaterialService; import org.springframework.web.bind.annotation.*; @@ -14,6 +15,7 @@ import io.swagger.v3.oas.annotations.Operation; import javax.validation.constraints.*; import javax.validation.*; import javax.servlet.http.*; +import java.math.BigDecimal; import java.util.*; import java.io.IOException; @@ -71,21 +73,21 @@ public class MasterController { @Operation(summary = "获得借用主") @Parameter(name = "id", description = "编号", required = true, example = "1024") @PreAuthorize("@ss.hasPermission('heli:master:query')") - public CommonResult getMaster(@RequestParam("id") Integer id) { + public CommonResult getMaster(@RequestParam("id") Integer id) { MasterDO master = masterService.getMaster(id); - MaterialDO material = materialService.getMaterial(Long.valueOf(master.getJyMaster())); - if (ObjectUtil.isNotEmpty( material)){ - master.setJyMasterName(material.getName()); - } - return success(BeanUtils.toBean(master, MasterRespVO.class)); +// MaterialDO material = materialService.getMaterial(Long.valueOf(master.getJyMaster())); +// if (ObjectUtil.isNotEmpty( material)){ +// master.setJyMasterName(material.getName()); +// } + return success(master); } @GetMapping("/page") @Operation(summary = "获得借用主分页") @PreAuthorize("@ss.hasPermission('heli:master:query')") - public CommonResult> getMasterPage(@Valid MasterPageReqVO pageReqVO) { + public CommonResult> getMasterPage(@Valid MasterPageReqVO pageReqVO) { PageResult pageResult = masterService.getMasterPage(pageReqVO); - return success(BeanUtils.toBean(pageResult, MasterRespVO.class)); + return success(pageResult); } @GetMapping("/export-excel") @@ -100,5 +102,31 @@ public class MasterController { ExcelUtils.write(response, "借用主.xls", "数据", MasterRespVO.class, BeanUtils.toBean(list, MasterRespVO.class)); } + @GetMapping("/getMasterLinePage") + @Operation(summary = "获得借用主分页") + @PreAuthorize("@ss.hasPermission('heli:master:query')") + public CommonResult> getMasterLinePage(@Valid MasterPageReqVO pageReqVO) { + PageResult pageResult = masterService.getMasterLinePage(pageReqVO); + return success(pageResult); + } + @GetMapping("/exportMasterLine") + @Operation(summary = "导出员工物料报表") + @OperateLog(type = EXPORT) + public void exportMasterLine(@Valid MasterPageReqVO pageReqVO, + HttpServletResponse response) throws IOException { + pageReqVO.setPageSize(PageParam.PAGE_SIZE_NONE); + List list = masterService.getMasterLinePage(pageReqVO).getList(); + list.forEach(item -> { + if ("1".equals(item.getJyTypes())) { + item.setQuantityLent(new BigDecimal(item.getJyNum())); + } else { + if (ObjectUtil.isNotEmpty(item.getJyNum())){ + item.setQuantityLent(new BigDecimal(item.getJyNum()).negate()); + } + } + }); // 导出 Excel + ExcelUtils.write(response, "员工借用物料报表.xlsx", "数据", MasterRespVO.class, + BeanUtils.toBean(list, MasterRespVO.class)); + } } \ 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/master/vo/MasterRespVO.java b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/controller/admin/master/vo/MasterRespVO.java index fd46cf39..06298b30 100644 --- a/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/controller/admin/master/vo/MasterRespVO.java +++ b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/controller/admin/master/vo/MasterRespVO.java @@ -1,6 +1,9 @@ package com.chanko.yunxi.mes.module.heli.controller.admin.master.vo; import com.baomidou.mybatisplus.annotation.TableField; +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.*; import java.util.*; @@ -14,55 +17,60 @@ import com.alibaba.excel.annotation.*; @Data @ExcelIgnoreUnannotated public class MasterRespVO { + @Schema(description = "责任人") + @ExcelProperty("责任人") + private String jyUsers; + @Schema(description = "部门") + @ExcelProperty("部门") + private String jyBms; + @Schema(description = "借用日期") + @ExcelProperty(value = "日期", converter = TimestampToDateConvert.class) + private LocalDateTime jyDate; + + @Schema(description = "类型", example = "1") + @ExcelProperty(value = "类型", converter = DictConvert.class) + @DictFormat("heli_borrow_type") + private String jyTypes; + @Schema(description = "用途") + @ExcelProperty(value = "用途", converter = DictConvert.class) + @DictFormat("heli_use") + private String jyYt; + @Schema(description = "物料名称") + @ExcelProperty("物料名称") + private String jyMasters; + @Schema(description = "数量") + @ExcelProperty("数量") + private BigDecimal jyNum; + @Schema(description = "数量") +// @ExcelProperty("数量") + private BigDecimal num; + @Schema(description = "借出数量") + @ExcelProperty("借出数量") + private BigDecimal quantityLent; + @Schema(description = "备注") + @ExcelProperty("备注") + private String rems; + @Schema(description = "备注") +// @ExcelProperty("备注") + private String rem; @Schema(description = "主键", requiredMode = Schema.RequiredMode.REQUIRED, example = "31322") - @ExcelProperty("主键") private Integer id; @Schema(description = "创建时间") - @ExcelProperty("创建时间") private LocalDateTime createTime; @Schema(description = "借用部门") - @ExcelProperty("借用部门") private Integer jyBm; - @Schema(description = "借用用途") - @ExcelProperty("借用用途") - private String jyYt; - @Schema(description = "备注") - @ExcelProperty("备注") - private String rem; @Schema(description = "借用物料名称") - @ExcelProperty("借用物料名称") - private Integer jyMaster; + private String jyMaster; @Schema(description = "借用人") - @ExcelProperty("借用人") private Long jyUser; - @Schema(description = "借用类型", example = "1") - @ExcelProperty("借用类型") - private String jyType; - - @Schema(description = "数量") - @ExcelProperty("数量") - private BigDecimal num; - @Schema(description = "借用日期") - @ExcelProperty("借用日期") - private LocalDateTime jyDate; - - @Schema(description = "借用人") - @ExcelProperty("借用人") - private String jyUsers; - @Schema(description = "借用部门") - @ExcelProperty("借用部门") - private String jyBms; - @Schema(description = "借用物料名称") - @ExcelProperty("借用物料名称") - private String jyMasters; @Schema(description = "借用物料名称") private String jyMasterName; } \ 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/master/vo/MasterSaveReqVO.java b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/controller/admin/master/vo/MasterSaveReqVO.java index 18ce49dd..a06d67b2 100644 --- a/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/controller/admin/master/vo/MasterSaveReqVO.java +++ b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/controller/admin/master/vo/MasterSaveReqVO.java @@ -1,5 +1,7 @@ package com.chanko.yunxi.mes.module.heli.controller.admin.master.vo; +import com.chanko.yunxi.mes.module.heli.dal.dataobject.master.MasterDO; +import com.chanko.yunxi.mes.module.heli.dal.dataobject.masterline.MasterLineDO; import io.swagger.v3.oas.annotations.media.Schema; import lombok.*; @@ -38,6 +40,8 @@ public class MasterSaveReqVO { private BigDecimal num; @Schema(description = "借用时间") private LocalDateTime jyDate; + @Schema(description = "借用物料明细") + private List jyDetails; } \ 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/masterline/MasterLineController.java b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/controller/admin/masterline/MasterLineController.java new file mode 100644 index 00000000..ba7c7c05 --- /dev/null +++ b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/controller/admin/masterline/MasterLineController.java @@ -0,0 +1,102 @@ +package com.chanko.yunxi.mes.module.heli.controller.admin.masterline; + +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.masterline.vo.*; +import com.chanko.yunxi.mes.module.heli.dal.dataobject.masterline.MasterLineDO; +import com.chanko.yunxi.mes.module.heli.service.masterline.MasterLineService; + +@Tag(name = "管理后台 - 借用行") +@RestController +@RequestMapping("/heli/master-line") +@Validated +public class MasterLineController { + + @Resource + private MasterLineService masterLineService; + + @PostMapping("/create") + @Operation(summary = "创建借用行") + @PreAuthorize("@ss.hasPermission('heli:master-line:create')") + public CommonResult createMasterLine(@Valid @RequestBody MasterLineSaveReqVO createReqVO) { + return success(masterLineService.createMasterLine(createReqVO)); + } + + @PutMapping("/update") + @Operation(summary = "更新借用行") + @PreAuthorize("@ss.hasPermission('heli:master-line:update')") + public CommonResult updateMasterLine(@Valid @RequestBody MasterLineSaveReqVO updateReqVO) { + masterLineService.updateMasterLine(updateReqVO); + return success(true); + } + + @DeleteMapping("/delete") + @Operation(summary = "删除借用行") + @Parameter(name = "id", description = "编号", required = true) + @PreAuthorize("@ss.hasPermission('heli:master-line:delete')") + public CommonResult deleteMasterLine(@RequestParam("id") Integer id) { + masterLineService.deleteMasterLine(id); + return success(true); + } + + @GetMapping("/get") + @Operation(summary = "获得借用行") + @Parameter(name = "id", description = "编号", required = true, example = "1024") + @PreAuthorize("@ss.hasPermission('heli:master-line:query')") + public CommonResult getMasterLine(@RequestParam("id") Integer id) { + MasterLineDO masterLine = masterLineService.getMasterLine(id); + return success(BeanUtils.toBean(masterLine, MasterLineRespVO.class)); + } + + @GetMapping("/page") + @Operation(summary = "获得借用行分页") + @PreAuthorize("@ss.hasPermission('heli:master-line:query')") + public CommonResult> getMasterLinePage(@Valid MasterLinePageReqVO pageReqVO) { + PageResult pageResult = masterLineService.getMasterLinePage(pageReqVO); + return success(BeanUtils.toBean(pageResult, MasterLineRespVO.class)); + } + + @GetMapping("/export-excel") + @Operation(summary = "导出借用行 Excel") + @PreAuthorize("@ss.hasPermission('heli:master-line:export')") + @OperateLog(type = EXPORT) + public void exportMasterLineExcel(@Valid MasterLinePageReqVO pageReqVO, + HttpServletResponse response) throws IOException { + pageReqVO.setPageSize(PageParam.PAGE_SIZE_NONE); + List list = masterLineService.getMasterLinePage(pageReqVO).getList(); + // 导出 Excel + ExcelUtils.write(response, "借用行.xls", "数据", MasterLineRespVO.class, + BeanUtils.toBean(list, MasterLineRespVO.class)); + } + @GetMapping("/getByMasterId") + @Operation(summary = "获得借用行") + @Parameter(name = "id", description = "编号", required = true, example = "1024") + @PreAuthorize("@ss.hasPermission('heli:master-line:query')") + public CommonResult> getByMasterId(@RequestParam("id") Integer id) { + List list = masterLineService.getByMasterId(id); + return success(list); + } +} diff --git a/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/controller/admin/masterline/vo/MasterLinePageReqVO.java b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/controller/admin/masterline/vo/MasterLinePageReqVO.java new file mode 100644 index 00000000..affc1443 --- /dev/null +++ b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/controller/admin/masterline/vo/MasterLinePageReqVO.java @@ -0,0 +1,37 @@ +package com.chanko.yunxi.mes.module.heli.controller.admin.masterline.vo; + +import lombok.*; +import java.util.*; +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 MasterLinePageReqVO extends PageParam { + + @Schema(description = "创建时间") + @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) + private LocalDateTime[] createTime; + + @Schema(description = "借用id", example = "2559") + private Integer jyId; + + @Schema(description = "借用物料") + private String jyMaster; + + @Schema(description = "借用数量") + private String jyNum; + + @Schema(description = "备注") + private String rem; + + @Schema(description = "物料id", example = "22466") + private Long matId; + +} \ 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/masterline/vo/MasterLineRespVO.java b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/controller/admin/masterline/vo/MasterLineRespVO.java new file mode 100644 index 00000000..a572e5c9 --- /dev/null +++ b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/controller/admin/masterline/vo/MasterLineRespVO.java @@ -0,0 +1,44 @@ +package com.chanko.yunxi.mes.module.heli.controller.admin.masterline.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 MasterLineRespVO { + + @Schema(description = "主键", requiredMode = Schema.RequiredMode.REQUIRED, example = "25113") + @ExcelProperty("主键") + private Integer id; + + @Schema(description = "创建时间") + @ExcelProperty("创建时间") + private LocalDateTime createTime; + + @Schema(description = "借用id", example = "2559") + @ExcelProperty("借用id") + private Integer jyId; + + @Schema(description = "借用物料") + @ExcelProperty("借用物料") + private String jyMaster; + + @Schema(description = "借用数量") + @ExcelProperty("借用数量") + private String jyNum; + + @Schema(description = "备注") + @ExcelProperty("备注") + private String rem; + + @Schema(description = "物料id", example = "22466") + @ExcelProperty("物料id") + private Long matId; + +} \ 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/masterline/vo/MasterLineSaveReqVO.java b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/controller/admin/masterline/vo/MasterLineSaveReqVO.java new file mode 100644 index 00000000..4c03182c --- /dev/null +++ b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/controller/admin/masterline/vo/MasterLineSaveReqVO.java @@ -0,0 +1,31 @@ +package com.chanko.yunxi.mes.module.heli.controller.admin.masterline.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 MasterLineSaveReqVO { + + @Schema(description = "主键", requiredMode = Schema.RequiredMode.REQUIRED, example = "25113") + private Integer id; + + @Schema(description = "借用id", example = "2559") + private Integer jyId; + + @Schema(description = "借用物料") + private String jyMaster; + + @Schema(description = "借用数量") + private String jyNum; + + @Schema(description = "备注") + private String rem; + + @Schema(description = "物料id", example = "22466") + private Long matId; + +} \ 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/material/MaterialController.java b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/controller/admin/material/MaterialController.java index 75c76a8d..76482d08 100644 --- a/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/controller/admin/material/MaterialController.java +++ b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/controller/admin/material/MaterialController.java @@ -1,5 +1,7 @@ package com.chanko.yunxi.mes.module.heli.controller.admin.material; +import cn.hutool.core.util.ObjectUtil; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.chanko.yunxi.mes.framework.common.pojo.CommonResult; import com.chanko.yunxi.mes.framework.common.pojo.PageParam; import com.chanko.yunxi.mes.framework.common.pojo.PageResult; @@ -16,6 +18,7 @@ import com.chanko.yunxi.mes.module.heli.dal.dataobject.material.MaterialDO; import com.chanko.yunxi.mes.module.heli.dal.dataobject.storageinventory.StorageInventoryDO; import com.chanko.yunxi.mes.module.heli.dal.dataobject.storagelogNow.StorageLogNowDO; import com.chanko.yunxi.mes.module.heli.dal.dataobject.storagelogNow.StorageMaterialDO; +import com.chanko.yunxi.mes.module.heli.dal.mysql.material.MaterialMapper; import com.chanko.yunxi.mes.module.heli.service.material.MaterialService; import io.swagger.v3.oas.annotations.Operation; import io.swagger.v3.oas.annotations.Parameter; @@ -44,11 +47,16 @@ public class MaterialController { @Resource private MaterialService materialService; + @Resource + private MaterialMapper materialMapper; @PostMapping("/create") @Operation(summary = "创建物料") @PreAuthorize("@ss.hasPermission('heli:material:create')") public CommonResult createMaterial(@Valid @RequestBody MaterialSaveReqVO createReqVO) { + if (ObjectUtil.isNotEmpty(materialService.getMaterialId(createReqVO.getCode()))){ + return CommonResult.error(400,"物料编码"+createReqVO.getCode()+"已存在"); + } return success(materialService.createMaterial(createReqVO)); } @@ -56,6 +64,12 @@ public class MaterialController { @Operation(summary = "更新物料") @PreAuthorize("@ss.hasPermission('heli:material:update')") public CommonResult updateMaterial(@Valid @RequestBody MaterialSaveReqVO updateReqVO) { + LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); + queryWrapper.eq(MaterialDO::getCode, updateReqVO.getCode()); + queryWrapper.ne(MaterialDO::getId, updateReqVO.getId()); + if (ObjectUtil.isNotEmpty(materialMapper.selectOne(queryWrapper))){ + return CommonResult.error(400,"物料编码"+updateReqVO.getCode()+"已存在"); + } materialService.updateMaterial(updateReqVO); return success(true); } diff --git a/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/controller/admin/projectorder/ProjectOrderController.java b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/controller/admin/projectorder/ProjectOrderController.java index 3101daae..3f1aa69e 100644 --- a/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/controller/admin/projectorder/ProjectOrderController.java +++ b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/controller/admin/projectorder/ProjectOrderController.java @@ -18,10 +18,12 @@ import com.chanko.yunxi.mes.module.heli.dal.dataobject.purchaseorder.PurchaseOrd import com.chanko.yunxi.mes.module.heli.dal.dataobject.storage.StorageDO; import com.chanko.yunxi.mes.module.heli.dal.dataobject.taskdispatch.TaskDispatchDO; import com.chanko.yunxi.mes.module.heli.dal.mysql.orderys.OrderYsMapper; +import com.chanko.yunxi.mes.module.heli.dal.mysql.processbom.ProcessBomDetailMapper; import com.chanko.yunxi.mes.module.heli.enums.BusinesTypeEnum; import com.chanko.yunxi.mes.module.heli.manager.CrossOrderManager; import com.chanko.yunxi.mes.module.heli.service.deliverorder.DeliverOrderService; import com.chanko.yunxi.mes.module.heli.service.orderys.OrderYsService; +import com.chanko.yunxi.mes.module.heli.service.processbom.ProcessBomService; import com.chanko.yunxi.mes.module.heli.service.projectorder.ProjectOrderService; import com.chanko.yunxi.mes.module.heli.service.purchaseorder.PurchaseOrderService; import com.chanko.yunxi.mes.module.heli.service.storage.StorageService; @@ -66,13 +68,9 @@ public class ProjectOrderController { @Resource private OrderYsService orderYsService; @Resource + private ProcessBomService processBomService; + @Resource private DeliverOrderService deliverOrderService; - @Resource - private TaskDispatchService taskDispatchService; - @Resource - private StorageService storageService; - @Resource - private PurchaseOrderService purchaseOrderService; @PostMapping("/create") @Operation(summary = "创建项目订单") @PreAuthorize("@ss.hasPermission('heli:project-order:create')") @@ -155,6 +153,27 @@ public class ProjectOrderController { public CommonResult> getProjectOrderCostPage(@Valid ProjectOrderCostPageReqVO pageReqVO) { PageResult pageResult = projectOrderService.getProjectOrderCostPage(pageReqVO); for (ProjectOrderDO projectOrderDO :pageResult.getList()) { + //标准件成本 + BigDecimal standardPartsCost; + standardPartsCost=processBomService.StandardPartsCost(projectOrderDO.getId(),projectOrderDO.getProjectSubId()); + projectOrderDO.setBiaoZhunJianCost(standardPartsCost); + //材料成本 + BigDecimal materialCost; + materialCost=processBomService.materialCost(projectOrderDO.getId(),projectOrderDO.getProjectSubId()); + projectOrderDO.setCailiaoCost(materialCost); + + //外协加工费 + BigDecimal outsourcedProcessingFee; + outsourcedProcessingFee=processBomService.outsourcedProcessingFee(projectOrderDO.getId(),projectOrderDO.getProjectSubId()); + projectOrderDO.setWaixeiCost(outsourcedProcessingFee); + + //内部工时费 + BigDecimal internalLaborCost; + internalLaborCost=processBomService.internalLaborCost(projectOrderDO.getId(),projectOrderDO.getProjectSubId()); + projectOrderDO.setNeibuCost(internalLaborCost); + + + //运费成本 List deliverOrderDO = deliverOrderService.getListYf(projectOrderDO.getId(),projectOrderDO.getProjectSubId()); if (deliverOrderDO!=null&&deliverOrderDO.size()>0){ BigDecimal totalAmount = deliverOrderDO.stream() @@ -164,34 +183,26 @@ public class ProjectOrderController { }else { projectOrderDO.setYunFeiCost(BigDecimal.ZERO); } - List list= taskDispatchService.getListJg(projectOrderDO.getId(),projectOrderDO.getProjectSubId()); - if (list!=null&&list.size()>0){ - BigDecimal totalAmount = list.stream() - .map(TaskDispatchDO -> TaskDispatchDO.getZanGuMoney() != null ?new BigDecimal(TaskDispatchDO.getZanGuMoney()) : BigDecimal.ZERO) - .reduce(BigDecimal.ZERO, BigDecimal::add); - projectOrderDO.setJiaGongShiCost(totalAmount); - }else { - projectOrderDO.setJiaGongShiCost(BigDecimal.ZERO); - } - List list1= storageService.getList(projectOrderDO.getId(),projectOrderDO.getProjectSubId()); - if (list1!=null&&list1.size()>0){ - BigDecimal totalAmount = list1.stream() - .map(StorageDO -> StorageDO.getCaiGouMoney() != null ?StorageDO.getCaiGouMoney() : BigDecimal.ZERO) - .reduce(BigDecimal.ZERO, BigDecimal::add); - projectOrderDO.setBiaoZhunJianCost(totalAmount); - }else { - projectOrderDO.setBiaoZhunJianCost(BigDecimal.ZERO); - } - List list2 =purchaseOrderService.getListqt(projectOrderDO.getId(),projectOrderDO.getProjectSubId()); - if (list2!=null&&list2.size()>0){ - BigDecimal totalAmount = list2.stream() - .map(PurchaseOrderDO -> PurchaseOrderDO.getCaiGouMoney() != null ?PurchaseOrderDO.getCaiGouMoney() : BigDecimal.ZERO) - .reduce(BigDecimal.ZERO, BigDecimal::add); - projectOrderDO.setQitaCost(totalAmount); - }else { - projectOrderDO.setQitaCost(BigDecimal.ZERO); - } - BigDecimal sum = projectOrderDO.getYunFeiCost().add(projectOrderDO.getJiaGongShiCost()).add(projectOrderDO.getBiaoZhunJianCost()).add(projectOrderDO.getQitaCost()); +// List list= taskDispatchService.getListJg(projectOrderDO.getId(),projectOrderDO.getProjectSubId()); +// if (list!=null&&list.size()>0){ +// BigDecimal totalAmount = list.stream() +// .map(TaskDispatchDO -> TaskDispatchDO.getZanGuMoney() != null ?new BigDecimal(TaskDispatchDO.getZanGuMoney()) : BigDecimal.ZERO) +// .reduce(BigDecimal.ZERO, BigDecimal::add); +// projectOrderDO.setJiaGongShiCost(totalAmount); +// }else { +// projectOrderDO.setJiaGongShiCost(BigDecimal.ZERO); +// } + +// List list2 =purchaseOrderService.getListqt(projectOrderDO.getId(),projectOrderDO.getProjectSubId()); +// if (list2!=null&&list2.size()>0){ +// BigDecimal totalAmount = list2.stream() +// .map(PurchaseOrderDO -> PurchaseOrderDO.getCaiGouMoney() != null ?PurchaseOrderDO.getCaiGouMoney() : BigDecimal.ZERO) +// .reduce(BigDecimal.ZERO, BigDecimal::add); +// projectOrderDO.setQitaCost(totalAmount); +// }else { +// projectOrderDO.setQitaCost(BigDecimal.ZERO); +// } + BigDecimal sum = projectOrderDO.getYunFeiCost().add(projectOrderDO.getCailiaoCost()).add(projectOrderDO.getBiaoZhunJianCost()).add(projectOrderDO.getNeibuCost()).add(projectOrderDO.getWaixeiCost()); projectOrderDO.setSumCost(sum); } return success(BeanUtils.toBean(pageResult, ProjectOrderCostRespVO.class)); diff --git a/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/controller/admin/projectorder/vo/ProjectOrderCostRespVO.java b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/controller/admin/projectorder/vo/ProjectOrderCostRespVO.java index 9a3e4ebb..c58e2a9e 100644 --- a/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/controller/admin/projectorder/vo/ProjectOrderCostRespVO.java +++ b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/controller/admin/projectorder/vo/ProjectOrderCostRespVO.java @@ -57,11 +57,11 @@ public class ProjectOrderCostRespVO { @Schema(description = "外协加工费用") @ExcelProperty("外协加工费用") - private BigDecimal waiXieCost; + private BigDecimal waixeiCost; - @Schema(description = "加工工时换算成本") - @ExcelProperty("加工工时换算成本") - private BigDecimal jiaGongShiCost; + @Schema(description = "内部加工成本") + @ExcelProperty("内部加工成本") + private BigDecimal neibuCost; @Schema(description = "运费成本") @ExcelProperty("运费成本") private BigDecimal yunFeiCost; @@ -69,6 +69,8 @@ public class ProjectOrderCostRespVO { @ExcelProperty("合计成本") private BigDecimal sumCost; @ExcelProperty("其他成本") - private BigDecimal qitaCost; - + private BigDecimal cailiaoCost; + @Schema(description = "设备型号", requiredMode = Schema.RequiredMode.REQUIRED, example = "赵六") + @ExcelProperty("设备型号") + private String deviceModel; } diff --git a/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/dal/dataobject/masterline/MasterLineDO.java b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/dal/dataobject/masterline/MasterLineDO.java new file mode 100644 index 00000000..ee8cb898 --- /dev/null +++ b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/dal/dataobject/masterline/MasterLineDO.java @@ -0,0 +1,74 @@ +package com.chanko.yunxi.mes.module.heli.dal.dataobject.masterline; + +import lombok.*; + +import java.math.BigDecimal; +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("jy_master_line") +@KeySequence("jy_master_line_seq") // 用于 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库的主键自增。如果是 MySQL 等数据库,可不写。 +@Data +@EqualsAndHashCode(callSuper = true) +@ToString(callSuper = true) +@Builder +@NoArgsConstructor +@AllArgsConstructor +public class MasterLineDO extends BaseDO { + + /** + * 主键 + */ + @TableId + private Integer id; + /** + * 借用id + */ + private Integer jyId; + /** + * 借用物料 + */ + private String jyMaster; + /** + * 借用数量 + */ + private String jyNum; + /** + * 备注 + */ + private String rem; + /** + * 物料id + */ + private Long matId; + + @TableField(exist = false) + private String jyUsers; + @TableField(exist = false) + private String jyBms; + @TableField(exist = false) + private String jyTypes; + @TableField(exist = false) + private String jyMasters; + @TableField(exist = false) + private String jyMasterName; + @TableField(exist = false) + private BigDecimal quantityLent; + @TableField(exist = false) + private String jyYt; + @TableField(exist = false) + private LocalDateTime jyDate; + @TableField(exist = false) + private String rems; + + + +} \ 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/dataobject/projectorder/ProjectOrderDO.java b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/dal/dataobject/projectorder/ProjectOrderDO.java index 4a055250..8b5c5126 100644 --- a/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/dal/dataobject/projectorder/ProjectOrderDO.java +++ b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/dal/dataobject/projectorder/ProjectOrderDO.java @@ -271,6 +271,8 @@ public class ProjectOrderDO extends BaseDO { @TableField(exist = false) private int projectYear; + @TableField(exist = false) + private String deviceModel; @TableField(exist = false) private Long projectSubId; @@ -280,17 +282,19 @@ public class ProjectOrderDO extends BaseDO { @TableField(exist = false) private String unitName; + @TableField(exist = false) + private BigDecimal cailiaoCost; /* * 运费成本 * */ @TableField(exist = false) private BigDecimal yunFeiCost; @TableField(exist = false) - private BigDecimal jiaGongShiCost; + private BigDecimal neibuCost; @TableField(exist = false) private BigDecimal biaoZhunJianCost; @TableField(exist = false) - private BigDecimal qitaCost; + private BigDecimal waixeiCost; @TableField(exist = false) private BigDecimal sumCost; /** diff --git a/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/dal/mysql/master/MasterMapper.java b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/dal/mysql/master/MasterMapper.java index 5d7db219..72cc995a 100644 --- a/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/dal/mysql/master/MasterMapper.java +++ b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/dal/mysql/master/MasterMapper.java @@ -7,6 +7,7 @@ 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.master.MasterDO; +import com.chanko.yunxi.mes.module.heli.dal.dataobject.masterline.MasterLineDO; import com.chanko.yunxi.mes.module.heli.dal.dataobject.material.MaterialDO; import com.chanko.yunxi.mes.module.heli.dal.dataobject.plan.PlanDO; import com.chanko.yunxi.mes.module.system.dal.dataobject.dept.DeptDO; @@ -28,10 +29,14 @@ public interface MasterMapper extends BaseMapperX { MPJLambdaWrapper query = new MPJLambdaWrapper<>(); query.selectAll(MasterDO.class) .select("b.nickname as jyUsers,c.name as jyBms,d.name as jyMasters") + .leftJoin(MasterLineDO.class, "a", MasterLineDO::getJyId, MasterDO::getId) .leftJoin(AdminUserDO.class,"b",AdminUserDO::getId,MasterDO::getJyUser) .leftJoin(DeptDO.class,"c",DeptDO::getId,MasterDO::getJyBm) - .leftJoin(MaterialDO.class,"d",MaterialDO::getId,MasterDO::getJyMaster) + .leftJoin(MaterialDO.class,"d",MaterialDO::getId,MasterLineDO::getMatId) + .disableSubLogicDel() + .groupBy(MasterDO::getId) .orderByDesc(MasterDO::getId); + query.eq(!ObjectUtil.isEmpty(reqVO.getJyYt()), MasterDO::getJyYt, reqVO.getJyYt()) .eq(!ObjectUtil.isEmpty(reqVO.getJyType()), MasterDO::getJyType, reqVO.getJyType()) .like(!ObjectUtil.isEmpty(reqVO.getJyBm()), DeptDO::getName, reqVO.getJyBm()) @@ -40,4 +45,5 @@ public interface MasterMapper extends BaseMapperX { return selectPage(reqVO,query); } + } \ 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/masterline/MasterLineMapper.java b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/dal/mysql/masterline/MasterLineMapper.java new file mode 100644 index 00000000..2b946834 --- /dev/null +++ b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/dal/mysql/masterline/MasterLineMapper.java @@ -0,0 +1,59 @@ +package com.chanko.yunxi.mes.module.heli.dal.mysql.masterline; + +import java.util.*; + +import cn.hutool.core.util.ObjectUtil; +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.controller.admin.master.vo.MasterPageReqVO; +import com.chanko.yunxi.mes.module.heli.dal.dataobject.master.MasterDO; +import com.chanko.yunxi.mes.module.heli.dal.dataobject.masterline.MasterLineDO; +import com.chanko.yunxi.mes.module.heli.dal.dataobject.material.MaterialDO; +import com.chanko.yunxi.mes.module.system.dal.dataobject.dept.DeptDO; +import com.chanko.yunxi.mes.module.system.dal.dataobject.user.AdminUserDO; +import com.github.yulichang.wrapper.MPJLambdaWrapper; +import org.apache.ibatis.annotations.Mapper; +import com.chanko.yunxi.mes.module.heli.controller.admin.masterline.vo.*; + +/** + * 借用行 Mapper + * + * @author 管理员 + */ +@Mapper +public interface MasterLineMapper extends BaseMapperX { + + default PageResult selectPage(MasterLinePageReqVO reqVO) { + return selectPage(reqVO, new LambdaQueryWrapperX() + .betweenIfPresent(MasterLineDO::getCreateTime, reqVO.getCreateTime()) + .eqIfPresent(MasterLineDO::getJyId, reqVO.getJyId()) + .eqIfPresent(MasterLineDO::getJyMaster, reqVO.getJyMaster()) + .eqIfPresent(MasterLineDO::getJyNum, reqVO.getJyNum()) + .eqIfPresent(MasterLineDO::getRem, reqVO.getRem()) + .eqIfPresent(MasterLineDO::getMatId, reqVO.getMatId()) + .orderByDesc(MasterLineDO::getId)); + } + + default PageResult getMasterLinePage(MasterPageReqVO pageReqVO){ + MPJLambdaWrapper query = new MPJLambdaWrapper<>(); + query.selectAll(MasterLineDO.class) + .select("b.nickname as jyUsers,c.name as jyBms,d.name as jyMasters,a.jy_type as jyTypes") + .select("a.jy_yt as jyYt","a.jy_date as jyDate") + .select("a.rem as rems") + .leftJoin(MasterDO.class,"a",MasterDO::getId,MasterLineDO::getJyId) + .leftJoin(AdminUserDO.class,"b",AdminUserDO::getId,MasterDO::getJyUser) + .leftJoin(DeptDO.class,"c",DeptDO::getId,MasterDO::getJyBm) + .leftJoin(MaterialDO.class,"d",MaterialDO::getId,MasterLineDO::getMatId) + .disableSubLogicDel() + .groupBy(MasterLineDO::getId) + .orderByDesc(MasterLineDO::getId); + + query.eq(!ObjectUtil.isEmpty(pageReqVO.getJyYt()), MasterDO::getJyYt, pageReqVO.getJyYt()) + .eq(!ObjectUtil.isEmpty(pageReqVO.getJyType()), MasterDO::getJyType, pageReqVO.getJyType()) + .like(!ObjectUtil.isEmpty(pageReqVO.getJyBm()), DeptDO::getName, pageReqVO.getJyBm()) + .like(!ObjectUtil.isEmpty(pageReqVO.getJyMaster()), MaterialDO::getName, pageReqVO.getJyMaster()) + .like(!ObjectUtil.isEmpty(pageReqVO.getJyUser()), AdminUserDO::getNickname, pageReqVO.getJyUser()); + return selectPage(pageReqVO,query); + } +} \ 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/processbom/ProcessBomMapper.java b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/dal/mysql/processbom/ProcessBomMapper.java index 330e6386..fad89a7a 100644 --- a/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/dal/mysql/processbom/ProcessBomMapper.java +++ b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/dal/mysql/processbom/ProcessBomMapper.java @@ -17,6 +17,7 @@ import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Param; import org.springframework.util.StringUtils; +import java.math.BigDecimal; import java.util.List; /** @@ -184,4 +185,14 @@ public interface ProcessBomMapper extends BaseMapperX { } List getProcessBomPagesall(); PlanDO getplanid(Long id); + + BigDecimal StandardPartsCost(@Param("id") Long id,@Param("projectSubId") Long projectSubId); + + BigDecimal materialCost(@Param("id") Long id,@Param("projectSubId") Long projectSubId); + + BigDecimal outsourcedProcessingFee(@Param("id") Long id,@Param("projectSubId") Long projectSubId); + + BigDecimal bubbleFees(@Param("id") Long id,@Param("projectSubId") Long projectSubId); + + BigDecimal internalLaborCost(@Param("id") Long id,@Param("projectSubId") Long projectSubId); } diff --git a/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/dal/mysql/projectorder/ProjectOrderMapper.java b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/dal/mysql/projectorder/ProjectOrderMapper.java index d348efb9..2ddc7a18 100644 --- a/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/dal/mysql/projectorder/ProjectOrderMapper.java +++ b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/dal/mysql/projectorder/ProjectOrderMapper.java @@ -6,6 +6,7 @@ import com.chanko.yunxi.mes.framework.mybatis.core.mapper.BaseMapperX; import com.chanko.yunxi.mes.module.heli.controller.admin.projectorder.vo.ProjectOrderCostPageReqVO; import com.chanko.yunxi.mes.module.heli.controller.admin.projectorder.vo.ProjectOrderPageReqVO; import com.chanko.yunxi.mes.module.heli.dal.dataobject.customer.CustomerDO; +import com.chanko.yunxi.mes.module.heli.dal.dataobject.equip.EquipDO; import com.chanko.yunxi.mes.module.heli.dal.dataobject.plan.PlanDO; import com.chanko.yunxi.mes.module.heli.dal.dataobject.projectorder.ProjectOrderDO; import com.chanko.yunxi.mes.module.heli.dal.dataobject.projectorder.ProjectOrderSubDO; @@ -41,9 +42,10 @@ public interface ProjectOrderMapper extends BaseMapperX { MPJLambdaWrapper query = new MPJLambdaWrapper<>(); query.selectAll(ProjectOrderDO.class) .select("a.id as projectSubId,a.name as projectSubName") - .select("b.name as customerName") + .select("b.name as customerName,e.name as deviceModel") .leftJoin(ProjectOrderSubDO.class,"a",ProjectOrderSubDO::getProjectOrderId,ProjectOrderDO::getId) .leftJoin(CustomerDO.class,"b",CustomerDO::getId,ProjectOrderDO::getCustomerId) + .leftJoin(EquipDO.class,"e",EquipDO::getId,ProjectOrderSubDO::getDeviceModel) .like(!StringUtils.isEmpty(reqVO.getCode()),ProjectOrderDO::getCode,reqVO.getCode()) .like(!StringUtils.isEmpty(reqVO.getProjectName()),ProjectOrderDO::getProjectName,reqVO.getProjectName()) .like(!StringUtils.isEmpty(reqVO.getCustomerName()),"b.name",reqVO.getCustomerName()) diff --git a/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/dal/mysql/storage/StorageMapper.java b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/dal/mysql/storage/StorageMapper.java index 45544376..8a716611 100644 --- a/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/dal/mysql/storage/StorageMapper.java +++ b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/dal/mysql/storage/StorageMapper.java @@ -1,5 +1,6 @@ package com.chanko.yunxi.mes.module.heli.dal.mysql.storage; +import java.math.BigDecimal; import java.util.*; import com.chanko.yunxi.mes.framework.common.pojo.PageResult; @@ -17,6 +18,7 @@ import com.chanko.yunxi.mes.module.system.dal.dataobject.user.AdminUserDO; import com.github.yulichang.wrapper.MPJLambdaWrapper; import org.apache.ibatis.annotations.Mapper; import com.chanko.yunxi.mes.module.heli.controller.admin.storage.vo.*; +import org.apache.ibatis.annotations.Param; import org.springframework.util.StringUtils; /** @@ -93,4 +95,6 @@ public interface StorageMapper extends BaseMapperX { .ne(StorageDO::getStatus,3); return selectList(query); } + + BigDecimal StandardPartsCost(@Param("id") Long id, @Param("projectSubId") Long projectSubId); } \ 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/deliverorder/DeliverOrderServiceImpl.java b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/service/deliverorder/DeliverOrderServiceImpl.java index 97264113..51cdf637 100644 --- a/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/service/deliverorder/DeliverOrderServiceImpl.java +++ b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/service/deliverorder/DeliverOrderServiceImpl.java @@ -14,6 +14,7 @@ import com.chanko.yunxi.mes.module.heli.dal.dataobject.processbom.ProcessBomDO; 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.dataobject.storageinventory.StorageInventoryDO; import com.chanko.yunxi.mes.module.heli.dal.dataobject.storagemat.StorageMatDO; import com.chanko.yunxi.mes.module.heli.dal.mysql.deliverorder.DeliverOrderMapper; import com.chanko.yunxi.mes.module.heli.dal.mysql.deliverorder.DeliverOrderSubMapper; @@ -343,11 +344,17 @@ public class DeliverOrderServiceImpl implements DeliverOrderService { wrapper.eq(DeliverOrderDO::getDeliverStatus,2); wrapper.orderByDesc(DeliverOrderDO::getDeliverDate); List deliverOrderDOS = deliverOrderMapper.selectList(wrapper); - if (deliverOrderDOS!=null&&deliverOrderDOS.size()>0){ + LambdaQueryWrapper queryWrapper1 = new LambdaQueryWrapper<>(); + queryWrapper1.eq(ProjectOrderSubDO::getProjectOrderId,id); + List projectOrderSubDOS = projectOrderSubMapper.selectList(queryWrapper1); + if (deliverOrderDOS!=null&&deliverOrderDOS.size()>0&&projectOrderSubDOS!=null&&projectOrderSubDOS.size()>0){ + List ids = projectOrderSubDOS.stream() + .map(ProjectOrderSubDO::getId) + .collect(Collectors.toList()); for (DeliverOrderDO deliverOrderDO : deliverOrderDOS) { LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); queryWrapper.eq(DeliverOrderSubDO::getDeliveryOrderId,deliverOrderDO.getId()); - queryWrapper.eq(DeliverOrderSubDO::getSaleOrderSubId,projectSubId); + queryWrapper.in(DeliverOrderSubDO::getSaleOrderSubId,ids); List deliverOrderSubDOS = deliverOrderSubMapper.selectList(queryWrapper); BigDecimal totalAmount = deliverOrderSubDOS.stream() .map(deliverOrderSubDO -> deliverOrderSubDO.getYunFei() != null ? deliverOrderSubDO.getYunFei() : BigDecimal.ZERO) diff --git a/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/service/master/MasterService.java b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/service/master/MasterService.java index 981381e8..1be7d5cf 100644 --- a/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/service/master/MasterService.java +++ b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/service/master/MasterService.java @@ -6,6 +6,7 @@ import com.chanko.yunxi.mes.module.heli.controller.admin.master.vo.*; import com.chanko.yunxi.mes.module.heli.dal.dataobject.master.MasterDO; import com.chanko.yunxi.mes.framework.common.pojo.PageResult; import com.chanko.yunxi.mes.framework.common.pojo.PageParam; +import com.chanko.yunxi.mes.module.heli.dal.dataobject.masterline.MasterLineDO; /** * 借用主 Service 接口 @@ -52,4 +53,5 @@ public interface MasterService { */ PageResult getMasterPage(MasterPageReqVO pageReqVO); + PageResult getMasterLinePage(MasterPageReqVO pageReqVO); } \ 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/master/MasterServiceImpl.java b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/service/master/MasterServiceImpl.java index 0efab021..e0283665 100644 --- a/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/service/master/MasterServiceImpl.java +++ b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/service/master/MasterServiceImpl.java @@ -1,11 +1,17 @@ package com.chanko.yunxi.mes.module.heli.service.master; +import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; +import com.chanko.yunxi.mes.module.heli.dal.dataobject.masterline.MasterLineDO; +import com.chanko.yunxi.mes.module.heli.dal.dataobject.orderysdetail.OrderYsDetailDO; +import com.chanko.yunxi.mes.module.heli.dal.mysql.masterline.MasterLineMapper; 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 java.util.stream.Collectors; + import com.chanko.yunxi.mes.module.heli.controller.admin.master.vo.*; import com.chanko.yunxi.mes.module.heli.dal.dataobject.master.MasterDO; import com.chanko.yunxi.mes.framework.common.pojo.PageResult; @@ -28,12 +34,16 @@ public class MasterServiceImpl implements MasterService { @Resource private MasterMapper masterMapper; + @Resource + private MasterLineMapper masterLineMapper; @Override public Integer createMaster(MasterSaveReqVO createReqVO) { // 插入 MasterDO master = BeanUtils.toBean(createReqVO, MasterDO.class); masterMapper.insert(master); + createReqVO.getJyDetails().forEach(detail -> detail.setJyId(master.getId())); + masterLineMapper.insertBatch(createReqVO.getJyDetails()); // 返回 return master.getId(); } @@ -45,14 +55,24 @@ public class MasterServiceImpl implements MasterService { // 更新 MasterDO updateObj = BeanUtils.toBean(updateReqVO, MasterDO.class); masterMapper.updateById(updateObj); + updateReqVO.getJyDetails().forEach(detail -> detail.setJyId(updateObj.getId())); + createOrUpdateJyDetails(updateReqVO.getJyDetails()); } + private void createOrUpdateJyDetails(List JyDetails) { + // 分组更新与插入 + List updateList = JyDetails.stream().filter(o -> o.getId() != null).collect(Collectors.toList()); + List insertList = JyDetails.stream().filter(o -> o.getId() == null).collect(Collectors.toList()); + if(!updateList.isEmpty()) masterLineMapper.updateBatch(updateList); + if(!insertList.isEmpty()) masterLineMapper.insertBatch(insertList); + } @Override public void deleteMaster(Integer id) { // 校验存在 validateMasterExists(id); // 删除 masterMapper.deleteById(id); + masterLineMapper.delete(new UpdateWrapper().lambda().eq(MasterLineDO::getJyId, id)); } private void validateMasterExists(Integer id) { @@ -71,4 +91,9 @@ public class MasterServiceImpl implements MasterService { return masterMapper.selectPage(pageReqVO); } + @Override + public PageResult getMasterLinePage(MasterPageReqVO pageReqVO) { + return masterLineMapper.getMasterLinePage(pageReqVO); + } + } \ 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/masterline/MasterLineService.java b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/service/masterline/MasterLineService.java new file mode 100644 index 00000000..b0de813b --- /dev/null +++ b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/service/masterline/MasterLineService.java @@ -0,0 +1,56 @@ +package com.chanko.yunxi.mes.module.heli.service.masterline; + +import java.util.*; +import javax.validation.*; +import com.chanko.yunxi.mes.module.heli.controller.admin.masterline.vo.*; +import com.chanko.yunxi.mes.module.heli.dal.dataobject.masterline.MasterLineDO; +import com.chanko.yunxi.mes.framework.common.pojo.PageResult; +import com.chanko.yunxi.mes.framework.common.pojo.PageParam; + +/** + * 借用行 Service 接口 + * + * @author 管理员 + */ +public interface MasterLineService { + + /** + * 创建借用行 + * + * @param createReqVO 创建信息 + * @return 编号 + */ + Integer createMasterLine(@Valid MasterLineSaveReqVO createReqVO); + + /** + * 更新借用行 + * + * @param updateReqVO 更新信息 + */ + void updateMasterLine(@Valid MasterLineSaveReqVO updateReqVO); + + /** + * 删除借用行 + * + * @param id 编号 + */ + void deleteMasterLine(Integer id); + + /** + * 获得借用行 + * + * @param id 编号 + * @return 借用行 + */ + MasterLineDO getMasterLine(Integer id); + + /** + * 获得借用行分页 + * + * @param pageReqVO 分页查询 + * @return 借用行分页 + */ + PageResult getMasterLinePage(MasterLinePageReqVO pageReqVO); + + List getByMasterId(Integer id); +} diff --git a/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/service/masterline/MasterLineServiceImpl.java b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/service/masterline/MasterLineServiceImpl.java new file mode 100644 index 00000000..3ccf2574 --- /dev/null +++ b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/service/masterline/MasterLineServiceImpl.java @@ -0,0 +1,80 @@ +package com.chanko.yunxi.mes.module.heli.service.masterline; + +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +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.masterline.vo.*; +import com.chanko.yunxi.mes.module.heli.dal.dataobject.masterline.MasterLineDO; +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.masterline.MasterLineMapper; + +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 MasterLineServiceImpl implements MasterLineService { + + @Resource + private MasterLineMapper masterLineMapper; + + @Override + public Integer createMasterLine(MasterLineSaveReqVO createReqVO) { + // 插入 + MasterLineDO masterLine = BeanUtils.toBean(createReqVO, MasterLineDO.class); + masterLineMapper.insert(masterLine); + // 返回 + return masterLine.getId(); + } + + @Override + public void updateMasterLine(MasterLineSaveReqVO updateReqVO) { + // 校验存在 + validateMasterLineExists(updateReqVO.getId()); + // 更新 + MasterLineDO updateObj = BeanUtils.toBean(updateReqVO, MasterLineDO.class); + masterLineMapper.updateById(updateObj); + } + + @Override + public void deleteMasterLine(Integer id) { + // 校验存在 + validateMasterLineExists(id); + // 删除 + masterLineMapper.deleteById(id); + } + + private void validateMasterLineExists(Integer id) { + if (masterLineMapper.selectById(id) == null) { + throw exception(MASTER_LINE_NOT_EXISTS); + } + } + + @Override + public MasterLineDO getMasterLine(Integer id) { + return masterLineMapper.selectById(id); + } + + @Override + public PageResult getMasterLinePage(MasterLinePageReqVO pageReqVO) { + return masterLineMapper.selectPage(pageReqVO); + } + + @Override + public List getByMasterId(Integer id) { + return masterLineMapper.selectList(new LambdaQueryWrapper().eq(MasterLineDO::getJyId,id)); + } + +} diff --git a/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/service/material/MaterialServiceImpl.java b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/service/material/MaterialServiceImpl.java index 000709c3..60b317d8 100644 --- a/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/service/material/MaterialServiceImpl.java +++ b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/service/material/MaterialServiceImpl.java @@ -97,24 +97,24 @@ public class MaterialServiceImpl implements MaterialService { // 插入 MaterialDO material = BeanUtils.toBean(createReqVO, MaterialDO.class); - MaterialTypeEnum materialType = MaterialTypeEnum.getMaterialType(material.getMaterialType()); - SerialNumberDO serialNumberDO = serialNumberService.getSerialNumber(MATERIAL.name(), materialType.getPrefix()); - Long serialNumber = serialNumberDO.getSerialNumber(); - // 个位数不满5直接到5 满5到10 - String serialNumberStr = String.valueOf(serialNumber); - int serialLength = serialNumberStr.length(); - String prefix = serialNumberStr.substring(0, serialLength - 1); - String suffix = serialNumberStr.substring(serialLength-1); - long digit = Long.parseLong(suffix); - digit = digit < 5 ? 5 : 10; - serialNumber = Long.parseLong(prefix+"0") + digit; - serialNumberDO.setSerialNumber(serialNumber); - - material.setCode(CodeEnum.MATERIAL.getCode(materialType.getPrefix(), serialNumber.toString())); +// MaterialTypeEnum materialType = MaterialTypeEnum.getMaterialType(material.getMaterialType()); +// SerialNumberDO serialNumberDO = serialNumberService.getSerialNumber(MATERIAL.name(), materialType.getPrefix()); +// Long serialNumber = serialNumberDO.getSerialNumber(); +// // 个位数不满5直接到5 满5到10 +// String serialNumberStr = String.valueOf(serialNumber); +// int serialLength = serialNumberStr.length(); +// String prefix = serialNumberStr.substring(0, serialLength - 1); +// String suffix = serialNumberStr.substring(serialLength-1); +// long digit = Long.parseLong(suffix); +// digit = digit < 5 ? 5 : 10; +// serialNumber = Long.parseLong(prefix+"0") + digit; +// serialNumberDO.setSerialNumber(serialNumber); +// +// material.setCode(CodeEnum.MATERIAL.getCode(materialType.getPrefix(), serialNumber.toString())); materialMapper.insert(material); // 回写序列记录 - serialNumberService.updateSerialNumber(serialNumberDO); +// serialNumberService.updateSerialNumber(serialNumberDO); // 返回 return material.getId(); diff --git a/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/service/processbom/ProcessBomService.java b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/service/processbom/ProcessBomService.java index 3d9337b0..48d5d881 100644 --- a/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/service/processbom/ProcessBomService.java +++ b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/service/processbom/ProcessBomService.java @@ -12,6 +12,7 @@ import org.springframework.web.multipart.MultipartFile; import javax.validation.Valid; import java.io.IOException; +import java.math.BigDecimal; import java.util.Collection; import java.util.HashMap; import java.util.List; @@ -102,4 +103,12 @@ public interface ProcessBomService { PageResult planBbPage(TaskPlanJDBaoBiaoPageReqVO pageReqVO); PageResult planBZJPage(TaskPlanJDBaoBiaoPageReqVO pageReqVO); + + BigDecimal StandardPartsCost(Long id, Long projectSubId); + + BigDecimal materialCost(Long id, Long projectSubId); + + BigDecimal outsourcedProcessingFee(Long id, Long projectSubId); + + BigDecimal internalLaborCost(Long id, Long projectSubId); } diff --git a/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/service/processbom/ProcessBomServiceImpl.java b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/service/processbom/ProcessBomServiceImpl.java index b75b7b42..cd5337ac 100644 --- a/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/service/processbom/ProcessBomServiceImpl.java +++ b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/service/processbom/ProcessBomServiceImpl.java @@ -33,6 +33,7 @@ import com.chanko.yunxi.mes.module.heli.dal.dataobject.plantask.PlanTaskDO; import com.chanko.yunxi.mes.module.heli.dal.dataobject.plantaskbom.PlanTaskBomDO; import com.chanko.yunxi.mes.module.heli.dal.dataobject.processbom.ProcessBomDO; import com.chanko.yunxi.mes.module.heli.dal.dataobject.processbom.ProcessBomDetailDO; +import com.chanko.yunxi.mes.module.heli.dal.dataobject.purchaseordermakedetail.PurchaseOrderMakeDetailDO; import com.chanko.yunxi.mes.module.heli.dal.dataobject.serialnumber.SerialNumberDO; import com.chanko.yunxi.mes.module.heli.dal.dataobject.shenhe.ShenheDO; import com.chanko.yunxi.mes.module.heli.dal.dataobject.storagelogNow.StorageLogNowDO; @@ -47,7 +48,9 @@ import com.chanko.yunxi.mes.module.heli.dal.mysql.plan.PlanMapper; import com.chanko.yunxi.mes.module.heli.dal.mysql.plantask.PlanTaskMapper; import com.chanko.yunxi.mes.module.heli.dal.mysql.processbom.ProcessBomDetailMapper; import com.chanko.yunxi.mes.module.heli.dal.mysql.processbom.ProcessBomMapper; +import com.chanko.yunxi.mes.module.heli.dal.mysql.purchaseordermakedetail.PurchaseOrderMakeDetailMapper; import com.chanko.yunxi.mes.module.heli.dal.mysql.shenhe.ShenheMapper; +import com.chanko.yunxi.mes.module.heli.dal.mysql.storage.StorageMapper; import com.chanko.yunxi.mes.module.heli.dal.mysql.storagelog.StorageLogNowMapper; import com.chanko.yunxi.mes.module.heli.dal.mysql.taskdispatch.TaskDispatchDetailMapper; import com.chanko.yunxi.mes.module.heli.dal.mysql.taskreport.TaskReportMapper; @@ -141,6 +144,10 @@ public class ProcessBomServiceImpl implements ProcessBomService { private TaskReportMapper taskReportMapper; @Resource private BgMasterLineMapper bgMasterLineMapper; + @Resource + private StorageMapper storageMapper; + @Resource + private PurchaseOrderMakeDetailMapper purchaseOrderMakeDetailMapper; @Override @Transactional(rollbackFor = Exception.class) public Long createProcessBom(ProcessBomSaveReqVO createReqVO) { @@ -1273,6 +1280,50 @@ public class ProcessBomServiceImpl implements ProcessBomService { return processBomDetailMapper.planBZJPage(pageReqVO); } + @Override + public BigDecimal StandardPartsCost(Long id, Long projectSubId) { + BigDecimal cost=processBomMapper.StandardPartsCost(id,projectSubId); + BigDecimal cost1=storageMapper.StandardPartsCost(id,projectSubId); + if (ObjectUtil.isEmpty(cost)) cost=BigDecimal.ZERO; + if (ObjectUtil.isEmpty(cost1)) cost1=BigDecimal.ZERO; + return cost.add(cost1); + } + + @Override + public BigDecimal materialCost(Long id, Long projectSubId) { +// LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>(); +// wrapper.eq(PurchaseOrderMakeDetailDO::getProjectPlanSubId, projectSubId); +// wrapper.eq(PurchaseOrderMakeDetailDO::getIsFoam,"Y"); +// List purchaseOrderMakeDetailDOS = purchaseOrderMakeDetailMapper.selectList(wrapper); +// BigDecimal cost=BigDecimal.ZERO; +// if (purchaseOrderMakeDetailDOS!=null&&purchaseOrderMakeDetailDOS.size()>0) { +// cost = purchaseOrderMakeDetailDOS.stream() +// .map(purchaseOrderMakeDetailDO -> purchaseOrderMakeDetailDO.getFoamPrice() != null ? purchaseOrderMakeDetailDO.getFoamPrice() : BigDecimal.ZERO) +// .reduce(BigDecimal.ZERO, BigDecimal::add); +// } + BigDecimal cost= processBomMapper.bubbleFees(id,projectSubId); + + BigDecimal cost1=processBomMapper.materialCost(id,projectSubId); + if (ObjectUtil.isEmpty(cost1)) cost1=BigDecimal.ZERO; + if (ObjectUtil.isEmpty(cost)) cost=BigDecimal.ZERO; + + return cost.add(cost1); + } + + @Override + public BigDecimal outsourcedProcessingFee(Long id, Long projectSubId) { + BigDecimal cost=processBomMapper.outsourcedProcessingFee(id,projectSubId); + if (ObjectUtil.isEmpty(cost)) cost=BigDecimal.ZERO; + return cost; + } + + @Override + public BigDecimal internalLaborCost(Long id, Long projectSubId) { + BigDecimal cost=processBomMapper.internalLaborCost(id,projectSubId); + if (ObjectUtil.isEmpty(cost)) cost=BigDecimal.ZERO; + return cost; } + + private void createProcessBomDetailList(String bomCode,Long bomId, List list,Integer num) { LocalDateTime now = LocalDateTime.now(); /*list.forEach(o -> {o.setBomId(bomId);o.setUpdateTimes(now);} diff --git a/mes-module-heli/mes-module-heli-biz/src/main/resources/mapper/masterline/MasterLineMapper.xml b/mes-module-heli/mes-module-heli-biz/src/main/resources/mapper/masterline/MasterLineMapper.xml new file mode 100644 index 00000000..e808b479 --- /dev/null +++ b/mes-module-heli/mes-module-heli-biz/src/main/resources/mapper/masterline/MasterLineMapper.xml @@ -0,0 +1,12 @@ + + + + + + + \ No newline at end of file diff --git a/mes-module-heli/mes-module-heli-biz/src/main/resources/mapper/processbom/ProcessBomMapper.xml b/mes-module-heli/mes-module-heli-biz/src/main/resources/mapper/processbom/ProcessBomMapper.xml index ffdbce5f..9f2c846b 100644 --- a/mes-module-heli/mes-module-heli-biz/src/main/resources/mapper/processbom/ProcessBomMapper.xml +++ b/mes-module-heli/mes-module-heli-biz/src/main/resources/mapper/processbom/ProcessBomMapper.xml @@ -22,6 +22,46 @@ select * From project_plan where id =#{param1} + + + + + UPDATE pro_process_bom_detail diff --git a/mes-module-heli/mes-module-heli-biz/src/main/resources/mapper/storage/StorageMapper.xml b/mes-module-heli/mes-module-heli-biz/src/main/resources/mapper/storage/StorageMapper.xml index e8588bc5..ecf9604f 100644 --- a/mes-module-heli/mes-module-heli-biz/src/main/resources/mapper/storage/StorageMapper.xml +++ b/mes-module-heli/mes-module-heli-biz/src/main/resources/mapper/storage/StorageMapper.xml @@ -9,4 +9,12 @@ 文档可见:https://www.iocoder.cn/MyBatis/x-plugins/ --> + \ No newline at end of file diff --git a/mes-ui/mes-ui-admin-vue3/src/api/heli/master/index.ts b/mes-ui/mes-ui-admin-vue3/src/api/heli/master/index.ts index 1cbdc7f6..0e8921f3 100644 --- a/mes-ui/mes-ui-admin-vue3/src/api/heli/master/index.ts +++ b/mes-ui/mes-ui-admin-vue3/src/api/heli/master/index.ts @@ -41,3 +41,11 @@ export const deleteMaster = async (id: number) => { export const exportMaster = async (params) => { return await request.download({ url: `/heli/master/export-excel`, params }) } +// 查询借用主分页 +export const getMasterLinePage = async (params) => { + return await request.get({ url: `/heli/master/getMasterLinePage`, params }) +} +// 导出借用主 Excel +export const exportMasterLine = async (params) => { + return await request.download({ url: `/heli/master/exportMasterLine`, params }) +} diff --git a/mes-ui/mes-ui-admin-vue3/src/api/heli/masterline/index.ts b/mes-ui/mes-ui-admin-vue3/src/api/heli/masterline/index.ts new file mode 100644 index 00000000..06dbcc26 --- /dev/null +++ b/mes-ui/mes-ui-admin-vue3/src/api/heli/masterline/index.ts @@ -0,0 +1,44 @@ +import request from '@/config/axios' + +export interface MasterLineVO { + id: number + jyId: number + jyMaster: string + jyNum: string + rem: string + matId: number +} + +// 查询借用行分页 +export const getMasterLinePage = async (params) => { + return await request.get({ url: `/heli/master-line/page`, params }) +} + +// 查询借用行详情 +export const getMasterLine = async (id: number) => { + return await request.get({ url: `/heli/master-line/get?id=` + id }) +} + +// 新增借用行 +export const createMasterLine = async (data: MasterLineVO) => { + return await request.post({ url: `/heli/master-line/create`, data }) +} + +// 修改借用行 +export const updateMasterLine = async (data: MasterLineVO) => { + return await request.put({ url: `/heli/master-line/update`, data }) +} + +// 删除借用行 +export const deleteMasterLine = async (id: number) => { + return await request.delete({ url: `/heli/master-line/delete?id=` + id }) +} + +// 导出借用行 Excel +export const exportMasterLine = async (params) => { + return await request.download({ url: `/heli/master-line/export-excel`, params }) +} +// 查询借用行详情 +export const getByMasterId = async (id: number) => { + return await request.get({ url: `/heli/master-line/getByMasterId?id=` + id }) +} diff --git a/mes-ui/mes-ui-admin-vue3/src/views/heli/master/MasterForm.vue b/mes-ui/mes-ui-admin-vue3/src/views/heli/master/MasterForm.vue index 823ca8cc..f756cc51 100644 --- a/mes-ui/mes-ui-admin-vue3/src/views/heli/master/MasterForm.vue +++ b/mes-ui/mes-ui-admin-vue3/src/views/heli/master/MasterForm.vue @@ -1,29 +1,30 @@ - - + + - +