yudao-module-erp/src/main/java/cn/iocoder/yudao/module/erp/controller/admin/sale/ErpSaleOrderController.java
@@ -10,6 +10,7 @@ import cn.iocoder.yudao.framework.excel.core.util.ExcelUtils; import cn.iocoder.yudao.module.crm.api.customer.CrmCustomerApi; import cn.iocoder.yudao.module.crm.api.customer.dto.CrmCustomerRespDTO; import cn.iocoder.yudao.module.erp.controller.admin.sale.vo.order.ErpSaleOrderItemRespVO; import cn.iocoder.yudao.module.erp.controller.admin.sale.vo.order.ErpSaleOrderPageReqVO; import cn.iocoder.yudao.module.erp.controller.admin.sale.vo.order.ErpSaleOrderRespVO; import cn.iocoder.yudao.module.erp.controller.admin.sale.vo.order.ErpSaleOrderSaveReqVO; @@ -119,6 +120,20 @@ return success(true); } @GetMapping("/item/list-by-order-id") @Operation(summary = "æ¥è¯¢éå®è®¢åçç©ææç»å表ï¼ç¨äºåè´§éç¥åå建ï¼") @Parameter(name = "orderId", description = "éå®è®¢åç¼å·", required = true, example = "1") @PreAuthorize("@ss.hasPermission('erp:sale-order:query')") public CommonResult<List<ErpSaleOrderItemRespVO>> getSaleOrderItemListByOrderId(@RequestParam("orderId") Long orderId) { List<ErpSaleOrderItemDO> itemList = saleOrderService.getSaleOrderItemListByOrderId(orderId); Map<Long, MdmItemRespDTO> itemMap = mdmItemApi.getItemMap( convertSet(itemList, ErpSaleOrderItemDO::getProductId)); return success(BeanUtils.toBean(itemList, ErpSaleOrderItemRespVO.class, vo -> { MapUtils.findAndThen(itemMap, vo.getProductId(), item -> vo.setProductName(item.getName()).setProductBarCode(item.getBarCode())); })); } @GetMapping("/get") @Operation(summary = "è·å¾éå®è®¢å") @Parameter(name = "id", description = "ç¼å·", required = true, example = "1024") yudao-module-erp/src/main/java/cn/iocoder/yudao/module/erp/controller/admin/sale/vo/order/ErpSaleOrderItemRespVO.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,48 @@ package cn.iocoder.yudao.module.erp.controller.admin.sale.vo.order; import io.swagger.v3.oas.annotations.media.Schema; import lombok.Data; import java.math.BigDecimal; /** * ERP éå®è®¢å项 Response VOï¼ä¾å端åè´§éç¥ååå»ºæ¶æ¥è¯¢è®¢åæç»ï¼ */ @Schema(description = "管çåå° - ERP éå®è®¢å项 Response VO") @Data public class ErpSaleOrderItemRespVO { @Schema(description = "ç¼å·ï¼éå®è®¢åè¡IDï¼", requiredMode = Schema.RequiredMode.REQUIRED, example = "1") private Long id; @Schema(description = "éå®è®¢åç¼å·", example = "1") private Long orderId; @Schema(description = "ç©æç¼å·", requiredMode = Schema.RequiredMode.REQUIRED, example = "1") private Long productId; @Schema(description = "ç©æåç§°", example = "产åA") private String productName; @Schema(description = "ç©ææ¡ç ", example = "12345678") private String productBarCode; @Schema(description = "计éåä½ç¼å·", example = "1") private Long productUnitId; @Schema(description = "计éåä½åç§°", example = "个") private String productUnitName; @Schema(description = "产ååä»·", example = "100.00") private BigDecimal productPrice; @Schema(description = "æ°é", requiredMode = Schema.RequiredMode.REQUIRED, example = "10") private BigDecimal count; @Schema(description = "æ»ä»·", example = "1000.00") private BigDecimal totalPrice; @Schema(description = "夿³¨", example = "夿³¨") private String remark; } yudao-module-hrm/src/main/java/cn/iocoder/yudao/module/hrm/controller/admin/employee/vo/HrmEmployeeSaveReqVO.java
@@ -94,14 +94,14 @@ @Schema(description = "æè²ç»åå表") @Valid private List<HrmEmployeeEducationSaveReqVO> educationList; private List<HrmEmployeeEducationSaveReqVO> educations; @Schema(description = "å·¥ä½ç»åå表") @Valid private List<HrmEmployeeWorkHistorySaveReqVO> workHistoryList; private List<HrmEmployeeWorkHistorySaveReqVO> workHistories; @Schema(description = "ç´§æ¥è系人å表") @Valid private List<HrmEmployeeEmergencyContactSaveReqVO> emergencyContactList; private List<HrmEmployeeEmergencyContactSaveReqVO> emergencyContacts; } yudao-module-hrm/src/main/java/cn/iocoder/yudao/module/hrm/dal/mysql/employee/HrmEmployeeEducationMapper.java
@@ -19,4 +19,8 @@ return selectList(HrmEmployeeEducationDO::getEmployeeId, employeeId); } default void deleteByEmployeeId(Long employeeId) { delete(HrmEmployeeEducationDO::getEmployeeId, employeeId); } } yudao-module-hrm/src/main/java/cn/iocoder/yudao/module/hrm/dal/mysql/employee/HrmEmployeeEmergencyContactMapper.java
@@ -21,4 +21,8 @@ .orderByAsc(HrmEmployeeEmergencyContactDO::getSort)); } default void deleteByEmployeeId(Long employeeId) { delete(HrmEmployeeEmergencyContactDO::getEmployeeId, employeeId); } } yudao-module-hrm/src/main/java/cn/iocoder/yudao/module/hrm/dal/mysql/employee/HrmEmployeeWorkHistoryMapper.java
@@ -19,4 +19,8 @@ return selectList(HrmEmployeeWorkHistoryDO::getEmployeeId, employeeId); } default void deleteByEmployeeId(Long employeeId) { delete(HrmEmployeeWorkHistoryDO::getEmployeeId, employeeId); } } yudao-module-hrm/src/main/java/cn/iocoder/yudao/module/hrm/service/employee/HrmEmployeeServiceImpl.java
@@ -113,24 +113,24 @@ employeeMapper.insert(employee); Long employeeId = employee.getId(); // 7. åæ¥æ·»å æè²ç»å if (CollUtil.isNotEmpty(createReqVO.getEducationList())) { createReqVO.getEducationList().forEach(educationVO -> { if (CollUtil.isNotEmpty(createReqVO.getEducations())) { createReqVO.getEducations().forEach(educationVO -> { HrmEmployeeEducationDO education = BeanUtils.toBean(educationVO, HrmEmployeeEducationDO.class); education.setEmployeeId(employeeId); educationMapper.insert(education); }); } // 8. åæ¥æ·»å å·¥ä½ç»å if (CollUtil.isNotEmpty(createReqVO.getWorkHistoryList())) { createReqVO.getWorkHistoryList().forEach(workHistoryVO -> { if (CollUtil.isNotEmpty(createReqVO.getWorkHistories())) { createReqVO.getWorkHistories().forEach(workHistoryVO -> { HrmEmployeeWorkHistoryDO workHistory = BeanUtils.toBean(workHistoryVO, HrmEmployeeWorkHistoryDO.class); workHistory.setEmployeeId(employeeId); workHistoryMapper.insert(workHistory); }); } // 9. åæ¥æ·»å ç´§æ¥è系人 if (CollUtil.isNotEmpty(createReqVO.getEmergencyContactList())) { createReqVO.getEmergencyContactList().forEach(emergencyContactVO -> { if (CollUtil.isNotEmpty(createReqVO.getEmergencyContacts())) { createReqVO.getEmergencyContacts().forEach(emergencyContactVO -> { HrmEmployeeEmergencyContactDO emergencyContact = BeanUtils.toBean(emergencyContactVO, HrmEmployeeEmergencyContactDO.class); emergencyContact.setEmployeeId(employeeId); emergencyContactMapper.insert(emergencyContact); @@ -148,6 +148,7 @@ } @Override @Transactional(rollbackFor = Exception.class) public void updateEmployee(HrmEmployeeSaveReqVO updateReqVO) { // æ ¡éªåå¨ HrmEmployeeDO employee = validateEmployeeExists(updateReqVO.getId()); @@ -160,20 +161,69 @@ && employeeMapper.selectByPhone(updateReqVO.getPhone()) != null) { throw exception(EMPLOYEE_PHONE_EXISTS); } // æ´æ° // æ´æ°å工主表 HrmEmployeeDO updateObj = BeanUtils.toBean(updateReqVO, HrmEmployeeDO.class); // roleIds åå¨ä¸º JSON if (CollUtil.isNotEmpty(updateReqVO.getRoleIds())) { updateObj.setRoleIds(JSONUtil.toJsonStr(updateReqVO.getRoleIds())); } employeeMapper.updateById(updateObj); Long employeeId = updateReqVO.getId(); // 忥æè²ç»å syncEducationList(employeeId, updateReqVO.getEducations()); // 忥工ä½ç»å syncWorkHistoryList(employeeId, updateReqVO.getWorkHistories()); // åæ¥ç´§æ¥è系人 syncEmergencyContactList(employeeId, updateReqVO.getEmergencyContacts()); } private void syncEducationList(Long employeeId, List<HrmEmployeeEducationSaveReqVO> newList) { educationMapper.deleteByEmployeeId(employeeId); if (CollUtil.isNotEmpty(newList)) { newList.forEach(vo -> { HrmEmployeeEducationDO education = BeanUtils.toBean(vo, HrmEmployeeEducationDO.class); education.setId(null); education.setEmployeeId(employeeId); educationMapper.insert(education); }); } } private void syncWorkHistoryList(Long employeeId, List<HrmEmployeeWorkHistorySaveReqVO> newList) { workHistoryMapper.deleteByEmployeeId(employeeId); if (CollUtil.isNotEmpty(newList)) { newList.forEach(vo -> { HrmEmployeeWorkHistoryDO workHistory = BeanUtils.toBean(vo, HrmEmployeeWorkHistoryDO.class); workHistory.setId(null); workHistory.setEmployeeId(employeeId); workHistoryMapper.insert(workHistory); }); } } private void syncEmergencyContactList(Long employeeId, List<HrmEmployeeEmergencyContactSaveReqVO> newList) { emergencyContactMapper.deleteByEmployeeId(employeeId); if (CollUtil.isNotEmpty(newList)) { newList.forEach(vo -> { HrmEmployeeEmergencyContactDO emergencyContact = BeanUtils.toBean(vo, HrmEmployeeEmergencyContactDO.class); emergencyContact.setId(null); emergencyContact.setEmployeeId(employeeId); emergencyContactMapper.insert(emergencyContact); }); } } @Override @Transactional(rollbackFor = Exception.class) public void deleteEmployee(Long id) { // æ ¡éªåå¨ validateEmployeeExists(id); // å é¤ // 级èå é¤å表 educationMapper.deleteByEmployeeId(id); workHistoryMapper.deleteByEmployeeId(id); emergencyContactMapper.deleteByEmployeeId(id); // å é¤åå·¥ employeeMapper.deleteById(id); } yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/wm/salesnotice/vo/line/MesWmSalesNoticeLineSaveReqVO.java
@@ -18,6 +18,9 @@ @NotNull(message = "åè´§éç¥åç¼å·ä¸è½ä¸ºç©º") private Long noticeId; @Schema(description = "éå®è®¢åæç»ID", example = "1") private Long saleOrderItemId; @Schema(description = "ç©æç¼å·", requiredMode = Schema.RequiredMode.REQUIRED, example = "1") @NotNull(message = "ç©æç¼å·ä¸è½ä¸ºç©º") private Long itemId;