diff --git a/bonus-modules/bonus-material-mall/src/main/java/com/bonus/material/basic/controller/BmCompanyAddressController.java b/bonus-modules/bonus-material-mall/src/main/java/com/bonus/material/basic/controller/BmCompanyAddressController.java index 96cdcc2..f5dead5 100644 --- a/bonus-modules/bonus-material-mall/src/main/java/com/bonus/material/basic/controller/BmCompanyAddressController.java +++ b/bonus-modules/bonus-material-mall/src/main/java/com/bonus/material/basic/controller/BmCompanyAddressController.java @@ -28,7 +28,7 @@ import com.bonus.common.core.web.page.TableDataInfo; /** * 企业信息Controller - * + * * @author xsheng * @date 2024-12-16 */ @@ -58,7 +58,7 @@ public class BmCompanyAddressController extends BaseController { @ApiOperation(value = "导出企业信息列表") @PreventRepeatSubmit //@RequiresPermissions("basic:address:export") - @SysLog(title = "企业信息", businessType = OperaType.EXPORT, logType = 1,module = "仓储管理->导出企业信息") + @SysLog(title = "企业信息", businessType = OperaType.EXPORT, logType = 1, module = "仓储管理->导出企业信息") @PostMapping("/export") public void export(HttpServletResponse response, BmCompanyAddress bmCompanyAddress) { List list = bmCompanyAddressService.selectBmCompanyAddressList(bmCompanyAddress); @@ -82,7 +82,7 @@ public class BmCompanyAddressController extends BaseController { @ApiOperation(value = "新增企业信息") @PreventRepeatSubmit //@RequiresPermissions("basic:address:add") - @SysLog(title = "企业信息", businessType = OperaType.INSERT, logType = 1,module = "仓储管理->新增企业信息") + @SysLog(title = "企业信息", businessType = OperaType.INSERT, logType = 1, module = "仓储管理->新增企业信息") @PostMapping public AjaxResult add(@RequestBody BmCompanyAddress bmCompanyAddress) { try { @@ -98,7 +98,7 @@ public class BmCompanyAddressController extends BaseController { @ApiOperation(value = "修改企业信息") //@PreventRepeatSubmit //@RequiresPermissions("basic:address:edit") - @SysLog(title = "企业信息", businessType = OperaType.UPDATE, logType = 1,module = "仓储管理->修改企业信息") + @SysLog(title = "企业信息", businessType = OperaType.UPDATE, logType = 1, module = "仓储管理->修改企业信息") @PostMapping("/edit") public AjaxResult edit(@NotNull @RequestBody BmCompanyAddress bmCompanyAddress) { if (bmCompanyAddress == null || bmCompanyAddress.getId() == null) { @@ -118,9 +118,21 @@ public class BmCompanyAddressController extends BaseController { @ApiOperation(value = "删除企业信息") @PreventRepeatSubmit //@RequiresPermissions("basic:address:remove") - @SysLog(title = "企业信息", businessType = OperaType.DELETE, logType = 1,module = "仓储管理->删除企业信息") - @PostMapping("/del/{ids}") + @SysLog(title = "企业信息", businessType = OperaType.DELETE, logType = 1, module = "仓储管理->删除企业信息") + @PostMapping("/del/{ids}") public AjaxResult remove(@PathVariable Long[] ids) { return toAjax(bmCompanyAddressService.deleteBmCompanyAddressByIds(ids)); } + + + @ApiOperation(value = "删除企业信息") + @PreventRepeatSubmit + //@RequiresPermissions("basic:address:remove") + @SysLog(title = "企业信息", businessType = OperaType.DELETE, logType = 1, module = "仓储管理->删除企业信息") + @PostMapping("/delAddress") + public AjaxResult delAddress(Long id) { + return toAjax(bmCompanyAddressService.deleteBmCompanyAddressById(id)); + } + + } diff --git a/bonus-modules/bonus-material-mall/src/main/java/com/bonus/material/devchange/mapper/DevChangeMapper.java b/bonus-modules/bonus-material-mall/src/main/java/com/bonus/material/devchange/mapper/DevChangeMapper.java index 33ace23..5c2799d 100644 --- a/bonus-modules/bonus-material-mall/src/main/java/com/bonus/material/devchange/mapper/DevChangeMapper.java +++ b/bonus-modules/bonus-material-mall/src/main/java/com/bonus/material/devchange/mapper/DevChangeMapper.java @@ -9,6 +9,7 @@ import org.apache.ibatis.annotations.MapKey; import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Param; +import java.math.BigDecimal; import java.util.List; import java.util.Map; @@ -294,4 +295,7 @@ public interface DevChangeMapper { Integer orderOutCancelAll(CsDeviceDetails entity); List getOrderOutAllList(CsDeviceDetails entity); + + + BigDecimal getToolNum(CsDeviceDetails entity); } diff --git a/bonus-modules/bonus-material-mall/src/main/java/com/bonus/material/devchange/service/DevChangeServiceImpl.java b/bonus-modules/bonus-material-mall/src/main/java/com/bonus/material/devchange/service/DevChangeServiceImpl.java index 127fdb6..3f8b030 100644 --- a/bonus-modules/bonus-material-mall/src/main/java/com/bonus/material/devchange/service/DevChangeServiceImpl.java +++ b/bonus-modules/bonus-material-mall/src/main/java/com/bonus/material/devchange/service/DevChangeServiceImpl.java @@ -23,6 +23,7 @@ import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import javax.annotation.Resource; +import java.math.BigDecimal; import java.text.SimpleDateFormat; import java.time.LocalDate; import java.time.format.DateTimeFormatter; @@ -536,6 +537,18 @@ public class DevChangeServiceImpl implements DevChangeService { if (entity.getDevType().equals("1")) { mapper.updateZb(entity); } else { + BigDecimal toolNum = mapper.getToolNum(entity); + // BigDecimal 比较:库存 < 出库数量 + if (toolNum.compareTo(entity.getOutNum()) < 0) { + // 库存不足,计算差额 + BigDecimal shortage = entity.getOutNum().subtract(toolNum); + return AjaxResult.error(String.format( + "库存不足!当前可用:%s,需要出库:%s,短缺:%s", + toolNum.stripTrailingZeros().toPlainString(), + entity.getOutNum().stripTrailingZeros().toPlainString(), + shortage.stripTrailingZeros().toPlainString() + )); + } mapper.updateGj(entity); } Integer out = mapper.out(entity); @@ -584,25 +597,51 @@ public class DevChangeServiceImpl implements DevChangeService { */ @Override public AjaxResult outAll(CsDeviceDetails entity) { - try { + // 1. 首先查询需要出库的所有物品 List outAllList = mapper.getOutAllList(entity); - Integer out = mapper.outAll(entity); - if (out > 0) { - outAllList.forEach(item -> { - if (item.getDevType().equals("1")) { - mapper.updateZb(item); - } else { - mapper.updateGj(item); + // 2. 先检查所有工器具的库存是否充足 + for (CsDeviceDetails item : outAllList) { + if (!item.getDevType().equals("1")) { + // 工器具需要检查库存 + BigDecimal toolNum = mapper.getToolNum(item); // 注意:参数应该是 item + BigDecimal outNum = item.getOutNum(); + if (toolNum.compareTo(outNum) < 0) { + BigDecimal shortage = outNum.subtract(toolNum); + return AjaxResult.error(String.format( + "库存不足!工具:%s,当前可用:%s,需要出库:%s,短缺:%s", + item.getTypeName(), + toolNum.stripTrailingZeros().toPlainString(), + outNum.stripTrailingZeros().toPlainString(), + shortage.stripTrailingZeros().toPlainString() + )); } - }); + } } - return out > 0 ? AjaxResult.success("出库成功") : AjaxResult.error("出库失败"); + // 3. 所有库存检查通过后,执行出库 + Integer out = mapper.outAll(entity); + if (out <= 0) { + return AjaxResult.error("出库失败"); + } + + // 4. 更新库存 + for (CsDeviceDetails item : outAllList) { + if (item.getDevType().equals("1")) { + // 装备类型 + mapper.updateZb(item); + } else { + // 工器具类型 - 此时库存肯定是充足的 + mapper.updateGj(item); + } + } + + return AjaxResult.success("出库成功"); + } catch (Exception e) { - log.error(e.getMessage()); - return AjaxResult.error("出库失败"); + log.error("批量出库失败", e); + throw new RuntimeException("出库失败:" + e.getMessage()); } } @@ -671,6 +710,18 @@ public class DevChangeServiceImpl implements DevChangeService { if (entity.getDevType().equals("1")) { mapper.updateOrderZb(entity); } else { + BigDecimal toolNum = mapper.getToolNum(entity); + // BigDecimal 比较:库存 < 出库数量 + if (toolNum.compareTo(entity.getOutNum()) < 0) { + // 库存不足,计算差额 + BigDecimal shortage = entity.getOutNum().subtract(toolNum); + return AjaxResult.error(String.format( + "库存不足!当前可用:%s,需要出库:%s,短缺:%s", + toolNum.stripTrailingZeros().toPlainString(), + entity.getOutNum().stripTrailingZeros().toPlainString(), + shortage.stripTrailingZeros().toPlainString() + )); + } mapper.updateOrderGj(entity); } Integer out = mapper.orderOut(entity); @@ -686,23 +737,53 @@ public class DevChangeServiceImpl implements DevChangeService { * @return */ @Override + @Transactional(rollbackFor = Exception.class) public AjaxResult orderOutAll(CsDeviceDetails entity) { try { + // 1. 首先查询需要出库的所有物品 List outAllList = mapper.getOrderOutAllList(entity); - Integer out = mapper.orderOutAll(entity); - if (out > 0) { - outAllList.forEach(item -> { - if (item.getDevType().equals("0")) { - mapper.updateOrderZb(item); - } else { - mapper.updateOrderGj(item); + + // 2. 先检查所有工器具的库存是否充足 + for (CsDeviceDetails item : outAllList) { + if (!item.getDevType().equals("0")) { + // 工器具需要检查库存 + BigDecimal toolNum = mapper.getToolNum(item); // 注意:参数应该是 item + BigDecimal outNum = item.getOutNum(); + if (toolNum.compareTo(outNum) < 0) { + BigDecimal shortage = outNum.subtract(toolNum); + return AjaxResult.error(String.format( + "库存不足!工具:%s,当前可用:%s,需要出库:%s,短缺:%s", + item.getTypeName(), + toolNum.stripTrailingZeros().toPlainString(), + outNum.stripTrailingZeros().toPlainString(), + shortage.stripTrailingZeros().toPlainString() + )); } - }); + } } - return out > 0 ? AjaxResult.success("出库成功") : AjaxResult.error("出库失败"); + + // 3. 所有库存检查通过后,执行出库 + Integer out = mapper.orderOutAll(entity); + if (out <= 0) { + return AjaxResult.error("出库失败"); + } + + // 4. 更新库存 + for (CsDeviceDetails item : outAllList) { + if (item.getDevType().equals("0")) { + // 装备类型 + mapper.updateOrderZb(item); + } else { + // 工器具类型 - 此时库存肯定是充足的 + mapper.updateOrderGj(item); + } + } + + return AjaxResult.success("出库成功"); + } catch (Exception e) { - log.error(e.getMessage()); - return AjaxResult.error("出库失败"); + log.error("批量出库失败", e); + throw new RuntimeException("出库失败:" + e.getMessage()); } } diff --git a/bonus-modules/bonus-material-mall/src/main/java/com/bonus/material/toolLedger/domain/ToolLedgerAllEntity.java b/bonus-modules/bonus-material-mall/src/main/java/com/bonus/material/toolLedger/domain/ToolLedgerAllEntity.java index 2751944..e357899 100644 --- a/bonus-modules/bonus-material-mall/src/main/java/com/bonus/material/toolLedger/domain/ToolLedgerAllEntity.java +++ b/bonus-modules/bonus-material-mall/src/main/java/com/bonus/material/toolLedger/domain/ToolLedgerAllEntity.java @@ -47,7 +47,7 @@ public class ToolLedgerAllEntity implements Serializable { * 建议后续用枚举 */ @Excel(name = "管理模式", sort = 12) - private Integer manageMode; + private String manageMode; /** * 装备原值(仅编码设备) diff --git a/bonus-modules/bonus-material-mall/src/main/java/com/bonus/material/toolLedger/service/Impl/ToolLedgerServiceImpl.java b/bonus-modules/bonus-material-mall/src/main/java/com/bonus/material/toolLedger/service/Impl/ToolLedgerServiceImpl.java index 5cfbe4b..f18b085 100644 --- a/bonus-modules/bonus-material-mall/src/main/java/com/bonus/material/toolLedger/service/Impl/ToolLedgerServiceImpl.java +++ b/bonus-modules/bonus-material-mall/src/main/java/com/bonus/material/toolLedger/service/Impl/ToolLedgerServiceImpl.java @@ -133,6 +133,12 @@ public class ToolLedgerServiceImpl implements ToolLedgerService { */ @Override public List getToolByTypeId(ToolLedgerEntity entity) { + Long deptId = SecurityUtils.getLoginUser().getSysUser().getDeptId(); + Long userId = SecurityUtils.getLoginUser().getUserid(); + // 管理员和省公司可查看所有数据 + if (!userId.equals(ADMIN_ID) || !deptId.equals(PROVINCE_COMPANY_DEPT_ID)) { + entity.setCompanyId(deptId); + } return mapper.getToolByTypeId(entity); } @@ -142,6 +148,12 @@ public class ToolLedgerServiceImpl implements ToolLedgerService { */ @Override public List getToolByPro(ToolLedgerEntity entity) { + Long deptId = SecurityUtils.getLoginUser().getSysUser().getDeptId(); + Long userId = SecurityUtils.getLoginUser().getUserid(); + // 管理员和省公司可查看所有数据 + if (!userId.equals(ADMIN_ID) || !deptId.equals(PROVINCE_COMPANY_DEPT_ID)) { + entity.setCompanyId(deptId); + } return mapper.getToolByPro(entity); } } diff --git a/bonus-modules/bonus-material-mall/src/main/java/com/bonus/material/toolProcess/domain/ToolApplyDetailsEntity.java b/bonus-modules/bonus-material-mall/src/main/java/com/bonus/material/toolProcess/domain/ToolApplyDetailsEntity.java index ce15b88..3d9110a 100644 --- a/bonus-modules/bonus-material-mall/src/main/java/com/bonus/material/toolProcess/domain/ToolApplyDetailsEntity.java +++ b/bonus-modules/bonus-material-mall/src/main/java/com/bonus/material/toolProcess/domain/ToolApplyDetailsEntity.java @@ -1,5 +1,6 @@ package com.bonus.material.toolProcess.domain; +import com.bonus.material.devchange.domain.MaDevFile; import com.bonus.material.tool.domain.ToolEntity; import lombok.AllArgsConstructor; import lombok.Data; @@ -8,6 +9,7 @@ import lombok.NoArgsConstructor; import java.math.BigDecimal; import java.time.LocalDate; import java.time.LocalDateTime; +import java.util.List; @Data @AllArgsConstructor @@ -72,4 +74,26 @@ public class ToolApplyDetailsEntity extends ToolEntity { private String status; private String supplierName; + + + /** + * 合格证 + * 说明:装备合格证的URL列表,存储合格证扫描件或照片 + */ + private List certificates; + + /** + * 定期检验报告 + * 说明:装备定期检验报告的URL列表 + */ + private List inspectionReports; + + /** + * 采购发票 + * 说明:装备采购发票的URL列表,存储发票扫描件或照片 + */ + private List purchaseInvoices; + + + } diff --git a/bonus-modules/bonus-material-mall/src/main/java/com/bonus/material/toolProcess/mapper/ToolApplyMapper.java b/bonus-modules/bonus-material-mall/src/main/java/com/bonus/material/toolProcess/mapper/ToolApplyMapper.java index 25d8c0b..40969d0 100644 --- a/bonus-modules/bonus-material-mall/src/main/java/com/bonus/material/toolProcess/mapper/ToolApplyMapper.java +++ b/bonus-modules/bonus-material-mall/src/main/java/com/bonus/material/toolProcess/mapper/ToolApplyMapper.java @@ -48,7 +48,7 @@ public interface ToolApplyMapper { * @return 结果 */ - Integer addDetail(List entity); + Integer addDetail(ToolApplyDetailsEntity entity); /** * 工具录入申请单表格 diff --git a/bonus-modules/bonus-material-mall/src/main/java/com/bonus/material/toolProcess/service/Impl/ToolApplyServiceImpl.java b/bonus-modules/bonus-material-mall/src/main/java/com/bonus/material/toolProcess/service/Impl/ToolApplyServiceImpl.java index 8d1f5d1..86918a1 100644 --- a/bonus-modules/bonus-material-mall/src/main/java/com/bonus/material/toolProcess/service/Impl/ToolApplyServiceImpl.java +++ b/bonus-modules/bonus-material-mall/src/main/java/com/bonus/material/toolProcess/service/Impl/ToolApplyServiceImpl.java @@ -2,6 +2,8 @@ package com.bonus.material.toolProcess.service.Impl; import com.bonus.common.core.web.domain.AjaxResult; import com.bonus.common.security.utils.SecurityUtils; +import com.bonus.material.devchange.mapper.MaDevInfoMapper; +import com.bonus.material.device.mapper.DevMergeMapper; import com.bonus.material.tool.domain.ToolEntity; import com.bonus.material.toolLedger.domain.ToolLedgerEntity; import com.bonus.material.toolLedger.mapper.ToolLedgerMapper; @@ -11,6 +13,7 @@ import com.bonus.material.toolProcess.mapper.ToolApplyMapper; import com.bonus.material.toolProcess.service.ToolApplyService; import org.slf4j.Logger; import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import javax.annotation.Resource; @@ -29,6 +32,10 @@ public class ToolApplyServiceImpl implements ToolApplyService { private ToolApplyMapper toolApplyMapper; @Resource private ToolLedgerMapper toolLedgerMapper; + @Resource + private DevMergeMapper devMergeMapper; + @Autowired + private MaDevInfoMapper maDevInfoMapper; /** * 工具申请单表格 @@ -123,8 +130,36 @@ public class ToolApplyServiceImpl implements ToolApplyService { @Override public AjaxResult addDetail(List entity) { try { - Integer num = toolApplyMapper.addDetail(entity); - return num > 0 ? AjaxResult.success(entity) : AjaxResult.error("新增失败"); + for (ToolApplyDetailsEntity detail : entity) { + Integer num = toolApplyMapper.addDetail(detail); + if (num > 0) { + detail.getCertificates().forEach(item -> { + // 这里编写对每个 image 的处理逻辑,比如打印、处理等 + item.setFileType(2); + item.setMaId(detail.getId() + 200000); + item.setCreator(Math.toIntExact(SecurityUtils.getLoginUser().getUserid())); + devMergeMapper.interFile(item); + }); + + detail.getInspectionReports().forEach(item -> { + // 这里编写对每个 image 的处理逻辑,比如打印、处理等 + item.setFileType(3); + item.setMaId(detail.getId() + 200000); + item.setCreator(Math.toIntExact(SecurityUtils.getLoginUser().getUserid())); + devMergeMapper.interFile(item); + }); + + detail.getPurchaseInvoices().forEach(item -> { + // 这里编写对每个 image 的处理逻辑,比如打印、处理等 + item.setFileType(4); + item.setMaId(detail.getId() + 200000); + item.setCreator(Math.toIntExact(SecurityUtils.getLoginUser().getUserid())); + devMergeMapper.interFile(item); + }); + } + + } + return AjaxResult.success("新增成功"); } catch (Exception e) { log.error(e.getMessage()); return AjaxResult.error("新增失败"); @@ -200,6 +235,7 @@ public class ToolApplyServiceImpl implements ToolApplyService { private void addToolLedger(List toolApplyDetailsEntities) { toolApplyDetailsEntities.forEach(item -> { + if (item.getManageType().equals("0")) { ToolLedgerEntity toolLedgerEntity = new ToolLedgerEntity(); toolLedgerEntity.setTypeId(item.getTypeId()); @@ -214,6 +250,35 @@ public class ToolApplyServiceImpl implements ToolApplyService { toolLedgerEntity.setToolCode(toolLedgerMapper.getCode()); toolLedgerMapper.add(toolLedgerEntity); + toolLedgerEntity.setCertificates(maDevInfoMapper.getFileList(Math.toIntExact(item.getId() + 200000L), 2)); + maDevInfoMapper.delFileList(Math.toIntExact(item.getId() + 200000L), 2); + toolLedgerEntity.setInspectionReports(maDevInfoMapper.getFileList(Math.toIntExact(item.getId() + 200000L), 3)); + maDevInfoMapper.delFileList(Math.toIntExact(item.getId() + 200000L), 3); + toolLedgerEntity.setPurchaseInvoices(maDevInfoMapper.getFileList(Math.toIntExact(item.getId() + 200000L), 4)); + maDevInfoMapper.delFileList(Math.toIntExact(item.getId() + 200000L), 4); + toolLedgerEntity.getCertificates().forEach(file -> { + // 这里编写对每个 image 的处理逻辑,比如打印、处理等 + file.setFileType(2); + file.setMaId(Math.toIntExact(toolLedgerEntity.getId() + 100000L)); + file.setCreator(Math.toIntExact(SecurityUtils.getLoginUser().getUserid())); + devMergeMapper.interFile(file); + }); + + toolLedgerEntity.getInspectionReports().forEach(file -> { + // 这里编写对每个 image 的处理逻辑,比如打印、处理等 + file.setFileType(3); + file.setMaId(Math.toIntExact(toolLedgerEntity.getId() + 100000L)); + file.setCreator(Math.toIntExact(SecurityUtils.getLoginUser().getUserid())); + devMergeMapper.interFile(file); + }); + + toolLedgerEntity.getPurchaseInvoices().forEach(file -> { + // 这里编写对每个 image 的处理逻辑,比如打印、处理等 + file.setFileType(4); + file.setMaId(Math.toIntExact(toolLedgerEntity.getId() + 100000L)); + file.setCreator(Math.toIntExact(SecurityUtils.getLoginUser().getUserid())); + devMergeMapper.interFile(file); + }); } else { ToolLedgerEntity byType = toolLedgerMapper.getByType(item.getTypeId()); if (byType != null) { @@ -237,7 +302,38 @@ public class ToolApplyServiceImpl implements ToolApplyService { toolLedgerEntity.setTotalNum(item.getApplyNum()); toolLedgerEntity.setAvailableNum(item.getApplyNum()); toolLedgerEntity.setOriginCost(item.getToolPrice()); + toolLedgerMapper.add(toolLedgerEntity); + + toolLedgerEntity.setCertificates(maDevInfoMapper.getFileList(Math.toIntExact(item.getId() + 200000L), 2)); + maDevInfoMapper.delFileList(Math.toIntExact(item.getId() + 200000L), 2); + toolLedgerEntity.setInspectionReports(maDevInfoMapper.getFileList(Math.toIntExact(item.getId() + 200000L), 3)); + maDevInfoMapper.delFileList(Math.toIntExact(item.getId() + 200000L), 3); + toolLedgerEntity.setPurchaseInvoices(maDevInfoMapper.getFileList(Math.toIntExact(item.getId() + 200000L), 4)); + maDevInfoMapper.delFileList(Math.toIntExact(item.getId() + 200000L), 4); + toolLedgerEntity.getCertificates().forEach(file -> { + // 这里编写对每个 image 的处理逻辑,比如打印、处理等 + file.setFileType(2); + file.setMaId(Math.toIntExact(toolLedgerEntity.getId() + 100000L)); + file.setCreator(Math.toIntExact(SecurityUtils.getLoginUser().getUserid())); + devMergeMapper.interFile(file); + }); + + toolLedgerEntity.getInspectionReports().forEach(file -> { + // 这里编写对每个 image 的处理逻辑,比如打印、处理等 + file.setFileType(3); + file.setMaId(Math.toIntExact(toolLedgerEntity.getId() + 100000L)); + file.setCreator(Math.toIntExact(SecurityUtils.getLoginUser().getUserid())); + devMergeMapper.interFile(file); + }); + + toolLedgerEntity.getPurchaseInvoices().forEach(file -> { + // 这里编写对每个 image 的处理逻辑,比如打印、处理等 + file.setFileType(4); + file.setMaId(Math.toIntExact(toolLedgerEntity.getId() + 100000L)); + file.setCreator(Math.toIntExact(SecurityUtils.getLoginUser().getUserid())); + devMergeMapper.interFile(file); + }); } } }); diff --git a/bonus-modules/bonus-material-mall/src/main/resources/mapper/material/devchange/DevChangeMapper.xml b/bonus-modules/bonus-material-mall/src/main/resources/mapper/material/devchange/DevChangeMapper.xml index 91bc444..816fc9d 100644 --- a/bonus-modules/bonus-material-mall/src/main/resources/mapper/material/devchange/DevChangeMapper.xml +++ b/bonus-modules/bonus-material-mall/src/main/resources/mapper/material/devchange/DevChangeMapper.xml @@ -738,6 +738,14 @@ END, '' ) AS id, cdcd.dev_type AS devType, + COALESCE( + CASE + WHEN cdcd.dev_type = '1' THEN CONCAT(a.device_name, '') + WHEN cdcd.dev_type = '2' THEN CONCAT(tt1.type_name, '') + ELSE '' + END, '' + ) AS typeName, + COALESCE(cdcd.num, 0) - COALESCE(cdcd.real_num, 0) AS outNum FROM cs_device_change_details cdcd @@ -749,6 +757,8 @@ ON cdcd.dev_type = '2' AND cdcd.dev_type_id = b.type_id AND (cdcd.dev_code = '/' OR cdcd.dev_code = b.tool_code) + LEFT JOIN tool_type tt ON tt.type_id = b.type_id + LEFT JOIN tool_type tt1 ON tt.parent_id = tt1.type_id WHERE cdcd.del_flag = 0 AND cdcd.dev_type IN ('1', '2') AND cdcd.is_finished != '1' @@ -1064,6 +1074,11 @@ AND cdcd.ma_id = b.id WHERE cdcd.order_id = #{id} + diff --git a/bonus-modules/bonus-material-mall/src/main/resources/mapper/material/devchange/MaDevInfoMapper.xml b/bonus-modules/bonus-material-mall/src/main/resources/mapper/material/devchange/MaDevInfoMapper.xml index 37d1179..3bdd5c9 100644 --- a/bonus-modules/bonus-material-mall/src/main/resources/mapper/material/devchange/MaDevInfoMapper.xml +++ b/bonus-modules/bonus-material-mall/src/main/resources/mapper/material/devchange/MaDevInfoMapper.xml @@ -409,6 +409,13 @@ and mdi.buy_price >= #{minOriginalValue} and mdi.buy_price <= #{maxOriginalValue} + + + and mdi.buy_price = #{minOriginalValue} + + + and mdi.buy_price = #{maxOriginalValue} + and DATE_FORMAT(mdi.production_date,'%Y-%m-%d') between #{startProductionDate} and #{endProductionDate} @@ -630,6 +637,14 @@ and mdi.buy_price >= #{minOriginalValue} and mdi.buy_price <= #{maxOriginalValue} + + + and mdi.buy_price = #{minOriginalValue} + + + and mdi.buy_price = #{maxOriginalValue} + + and DATE_FORMAT(mdi.production_date,'%Y-%m-%d') between #{startProductionDate} and #{endProductionDate} diff --git a/bonus-modules/bonus-material-mall/src/main/resources/mapper/material/device/DevInfoMapper.xml b/bonus-modules/bonus-material-mall/src/main/resources/mapper/material/device/DevInfoMapper.xml index ae835b1..d20da46 100644 --- a/bonus-modules/bonus-material-mall/src/main/resources/mapper/material/device/DevInfoMapper.xml +++ b/bonus-modules/bonus-material-mall/src/main/resources/mapper/material/device/DevInfoMapper.xml @@ -49,7 +49,37 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" @@ -281,26 +278,29 @@ a.typeName, a.parentTypeName FROM ( - SELECT tl.tool_code AS toolCode, + SELECT tl.tool_code AS toolCode, tl.available_num AS totalNum, - tt.type_name AS typeName, - tt1.type_name AS parentTypeName + tt.type_name AS typeName, + tt1.type_name AS parentTypeName FROM tool_ledger tl INNER JOIN tool_type tt ON tt.type_id = tl.type_id INNER JOIN tool_type tt1 ON tt1.type_id = tt.parent_id WHERE tl.status = #{status} AND tl.type_id = #{typeId} AND tl.manage_mode = #{type} - ) a - WHERE 1=1 - - AND ( - a.toolCode LIKE CONCAT('%', #{keyWord}, '%') - OR a.typeName LIKE CONCAT('%', #{keyWord}, '%') - OR a.parentTypeName LIKE CONCAT('%', #{keyWord}, '%') - ) + + AND (tl.company_id = #{companyId} OR tl.company_id IS NULL) - + ) a + + + AND ( + a.toolCode LIKE CONCAT('%', #{keyWord}, '%') + OR a.typeName LIKE CONCAT('%', #{keyWord}, '%') + OR a.parentTypeName LIKE CONCAT('%', #{keyWord}, '%') + ) + +