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 5ec87de..451e1c7 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
@@ -510,9 +510,9 @@ public class DevChangeServiceImpl implements DevChangeService {
// && !deptId.equals(PROVINCE_COMPANY_DEPT_ID)) {
// dto.setCompanyId(deptId);
// }
- if(ADMIN_ID.equals(userId)){
+ if (ADMIN_ID.equals(userId)) {
dto.setCompanyId(1L);
- }else{
+ } else {
dto.setCompanyId(deptId);
}
return mapper.getList(dto);
@@ -737,17 +737,24 @@ public class DevChangeServiceImpl implements DevChangeService {
}
/**
- * @param entity 出库信息
- * @return 结果
+ * @param entity
+ * @return
*/
@Override
public AjaxResult orderOut(CsDeviceDetails entity) {
try {
//装备
if (entity.getDevType().equals("1")) {
- BigDecimal inStockNum = mapper.getMaNum(entity);
- if (inStockNum.compareTo(BigDecimal.ZERO) <= 0) {
- return AjaxResult.error("当前装备非在库状态,无法出库!");
+ BigDecimal toolNum = mapper.getMaNum(entity);
+ 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.updateOrderZb(entity);
} else {
@@ -786,7 +793,7 @@ public class DevChangeServiceImpl implements DevChangeService {
// 2. 先检查所有工器具的库存是否充足
for (CsDeviceDetails item : outAllList) {
- if (!item.getDevType().equals("0")) {
+ if (item.getDevType().equals("1")) {
// 工器具需要检查库存
BigDecimal toolNum = mapper.getToolNum(item); // 注意:参数应该是 item
BigDecimal outNum = item.getOutNum();
@@ -800,6 +807,20 @@ public class DevChangeServiceImpl implements DevChangeService {
shortage.stripTrailingZeros().toPlainString()
));
}
+ } else {
+ // 工器具需要检查库存
+ BigDecimal toolNum = mapper.getMaNum(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()
+ ));
+ }
}
}
@@ -828,6 +849,10 @@ public class DevChangeServiceImpl implements DevChangeService {
}
}
+ /**
+ * @param entity
+ * @return
+ */
@Override
public AjaxResult orderOutCancel(CsDeviceDetails entity) {
try {
@@ -839,6 +864,10 @@ public class DevChangeServiceImpl implements DevChangeService {
}
}
+ /**
+ * @param entity
+ * @return
+ */
@Override
public AjaxResult orderOutCancelAll(CsDeviceDetails entity) {
try {
diff --git a/bonus-modules/bonus-material-mall/src/main/resources/mapper/material/back/BackChangeMapper.xml b/bonus-modules/bonus-material-mall/src/main/resources/mapper/material/back/BackChangeMapper.xml
index 52f9a21..74a4553 100644
--- a/bonus-modules/bonus-material-mall/src/main/resources/mapper/material/back/BackChangeMapper.xml
+++ b/bonus-modules/bonus-material-mall/src/main/resources/mapper/material/back/BackChangeMapper.xml
@@ -195,7 +195,7 @@
- GROUP BY mdi.code,cd.order_id
+ GROUP BY mdi.code,cdc.change_id
HAVING useNum > 0 and useNum is not null
UNION ALL
@@ -345,7 +345,7 @@
- GROUP BY mdi.code,cd.order_id
+ GROUP BY mdi.code,cdc.order_id
HAVING useNum > 0 and useNum is not null
UNION ALL
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 f52356d..934018c 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
@@ -1098,6 +1098,13 @@
ELSE ''
END, ''
) AS id,
+ COALESCE(
+ CASE
+ WHEN cdcd.devType = '0' THEN CONCAT(a.device_name, '')
+ WHEN cdcd.devType = '1' THEN CONCAT(tt1.type_name, '')
+ ELSE ''
+ END, ''
+ ) AS typeName,
cdcd.devType AS devType,
COALESCE(cdcd.num, 0) - COALESCE(cdcd.real_num, 0) AS outNum,
moi.pro_code AS proCode,
@@ -1111,6 +1118,8 @@
LEFT JOIN tool_ledger b
ON cdcd.devType = '1'
AND cdcd.ma_id = b.id
+ 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.order_id = #{id}