入库修改

This commit is contained in:
张松
2025-11-27 09:23:38 +08:00
parent a344469e61
commit e2e4265d1e
3 changed files with 31 additions and 17 deletions

View File

@@ -18,12 +18,13 @@ import com.czg.validator.group.DefaultGroup;
import com.mybatisflex.core.paginate.Page;
import lombok.AllArgsConstructor;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;
import java.io.IOException;
import java.io.InputStream;
import java.io.Serializable;
import java.net.URL;
import java.util.List;
import java.util.Map;
/**
@@ -68,11 +69,10 @@ public class ConsStockFlowController {
@OperationLog("耗材入库")
//@SaStaffCheckPermission("yun_xu_hao_cai_ru_ku")
//@SaAdminCheckPermission("consStockFlow:in")
public CzgResult<Void> inStock(@RequestBody ConsInOutStockHeadParam param) {
public CzgResult<Map<String, Serializable>> inStock(@RequestBody ConsInOutStockHeadParam param) {
ValidatorUtil.validateEntity(param, DefaultGroup.class);
ValidatorUtil.validateEntity(param.getBodyList(), DefaultGroup.class);
consStockFlowService.inStock(param);
return CzgResult.success();
return CzgResult.success(consStockFlowService.inStock(param));
}
/**

View File

@@ -11,7 +11,9 @@ import com.mybatisflex.core.paginate.Page;
import com.mybatisflex.core.service.IService;
import java.io.InputStream;
import java.io.Serializable;
import java.util.List;
import java.util.Map;
/**
* 耗材库存变动记录
@@ -25,8 +27,9 @@ public interface ConsStockFlowService extends IService<ConsStockFlow> {
* 手动入库
*
* @param param 手动出库入参
* @return
*/
void inStock(ConsInOutStockHeadParam param);
Map<String, Serializable> inStock(ConsInOutStockHeadParam param);
/**
* 手动出库

View File

@@ -39,9 +39,9 @@
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.io.ByteArrayInputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.Serializable;
import java.math.BigDecimal;
import java.time.LocalDate;
import java.util.*;
@@ -79,7 +79,7 @@
@Override
@Transactional(rollbackFor = Exception.class)
public void inStock(ConsInOutStockHeadParam param) {
public Map<String, Serializable> inStock(ConsInOutStockHeadParam param) {
Long shopId = StpKit.USER.getShopId(0L);
Long createUserId = StpKit.USER.getLoginIdAsLong();
String createUserName = StpKit.USER.getAccount();
@@ -87,7 +87,12 @@
List<ConsStockFlow> entityList = BeanUtil.copyToList(param.getBodyList(), ConsStockFlow.class);
List<ConsStockFlow> insertList = new ArrayList<>();
List<ConsInfo> updateStockList = new ArrayList<>();
ArrayList<ConsStockFlow> unInConList = new ArrayList<>();
for (ConsStockFlow entity : entityList) {
if (entity.getId() == null) {
unInConList.add(entity);
continue;
}
BeanUtil.copyProperties(head, entity, CopyOptions.create().ignoreNullValue());
entity.setShopId(shopId);
entity.setInOutType(InOutTypeEnum.IN.value());
@@ -97,7 +102,8 @@
Long conId = entity.getConId();
ConsInfo consInfo = consInfoMapper.selectOneById(conId);
if (consInfo == null) {
throw new CzgException(StrUtil.format("耗材{}不存在", entity.getConName()));
unInConList.add(entity);
continue;
}
entity.setBeforeNumber(consInfo.getStockNumber());
entity.setAfterNumber(NumberUtil.add(entity.getBeforeNumber(), entity.getInOutNumber()));
@@ -109,6 +115,11 @@
for (ConsInfo consInfo : updateStockList) {
consInfoMapper.update(consInfo);
}
return Map.of(
"reason", "成功入库" + (entityList.size() - unInConList.size()) + "个耗材, " + unInConList.size() + "个耗材未入库",
"unInConList", unInConList
);
}
@Override
@@ -300,18 +311,18 @@
}
ArrayList<SaleOrderDTO.Item> unInCons = new ArrayList<>();
for (SaleOrderDTO.Item item : saleOrderDTO.getItems()) {
ConsInfo consInfo = consInfoMap.get(item.getConName());
if (consInfo == null) {
unInCons.add(item);
continue;
}
bodyList.add(new ConsInOutStockBodyParam()
.setConId(consInfo.getId().toString())
.setConName(consInfo.getConName())
ConsInOutStockBodyParam bodyParam = new ConsInOutStockBodyParam()
.setConName(item.getConName())
.setPurchasePrice(new BigDecimal(item.getPurchasePrice()))
.setUnitName(item.getUnitName())
.setSubTotal(new BigDecimal(item.getSubTotal()))
.setInOutNumber(new BigDecimal(item.getInOutNumber())));
.setInOutNumber(new BigDecimal(item.getInOutNumber()));
ConsInfo consInfo = consInfoMap.get(item.getConName());
if (consInfo != null) {
unInCons.add(item);
bodyParam.setConId(consInfo.getId().toString());
}
bodyList.add(bodyParam);
}
ConsInOutStockHeadParam headParam = new ConsInOutStockHeadParam();