入库修改
This commit is contained in:
@@ -18,12 +18,13 @@ import com.czg.validator.group.DefaultGroup;
|
|||||||
import com.mybatisflex.core.paginate.Page;
|
import com.mybatisflex.core.paginate.Page;
|
||||||
import lombok.AllArgsConstructor;
|
import lombok.AllArgsConstructor;
|
||||||
import org.springframework.web.bind.annotation.*;
|
import org.springframework.web.bind.annotation.*;
|
||||||
import org.springframework.web.multipart.MultipartFile;
|
|
||||||
|
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
import java.io.InputStream;
|
import java.io.InputStream;
|
||||||
|
import java.io.Serializable;
|
||||||
import java.net.URL;
|
import java.net.URL;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
import java.util.Map;
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -68,11 +69,10 @@ public class ConsStockFlowController {
|
|||||||
@OperationLog("耗材入库")
|
@OperationLog("耗材入库")
|
||||||
//@SaStaffCheckPermission("yun_xu_hao_cai_ru_ku")
|
//@SaStaffCheckPermission("yun_xu_hao_cai_ru_ku")
|
||||||
//@SaAdminCheckPermission("consStockFlow:in")
|
//@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, DefaultGroup.class);
|
||||||
ValidatorUtil.validateEntity(param.getBodyList(), DefaultGroup.class);
|
ValidatorUtil.validateEntity(param.getBodyList(), DefaultGroup.class);
|
||||||
consStockFlowService.inStock(param);
|
return CzgResult.success(consStockFlowService.inStock(param));
|
||||||
return CzgResult.success();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
@@ -11,7 +11,9 @@ import com.mybatisflex.core.paginate.Page;
|
|||||||
import com.mybatisflex.core.service.IService;
|
import com.mybatisflex.core.service.IService;
|
||||||
|
|
||||||
import java.io.InputStream;
|
import java.io.InputStream;
|
||||||
|
import java.io.Serializable;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
import java.util.Map;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 耗材库存变动记录
|
* 耗材库存变动记录
|
||||||
@@ -25,8 +27,9 @@ public interface ConsStockFlowService extends IService<ConsStockFlow> {
|
|||||||
* 手动入库
|
* 手动入库
|
||||||
*
|
*
|
||||||
* @param param 手动出库入参
|
* @param param 手动出库入参
|
||||||
|
* @return
|
||||||
*/
|
*/
|
||||||
void inStock(ConsInOutStockHeadParam param);
|
Map<String, Serializable> inStock(ConsInOutStockHeadParam param);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 手动出库
|
* 手动出库
|
||||||
|
|||||||
@@ -39,9 +39,9 @@
|
|||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
import org.springframework.transaction.annotation.Transactional;
|
import org.springframework.transaction.annotation.Transactional;
|
||||||
|
|
||||||
import java.io.ByteArrayInputStream;
|
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
import java.io.InputStream;
|
import java.io.InputStream;
|
||||||
|
import java.io.Serializable;
|
||||||
import java.math.BigDecimal;
|
import java.math.BigDecimal;
|
||||||
import java.time.LocalDate;
|
import java.time.LocalDate;
|
||||||
import java.util.*;
|
import java.util.*;
|
||||||
@@ -79,7 +79,7 @@
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
@Transactional(rollbackFor = Exception.class)
|
@Transactional(rollbackFor = Exception.class)
|
||||||
public void inStock(ConsInOutStockHeadParam param) {
|
public Map<String, Serializable> inStock(ConsInOutStockHeadParam param) {
|
||||||
Long shopId = StpKit.USER.getShopId(0L);
|
Long shopId = StpKit.USER.getShopId(0L);
|
||||||
Long createUserId = StpKit.USER.getLoginIdAsLong();
|
Long createUserId = StpKit.USER.getLoginIdAsLong();
|
||||||
String createUserName = StpKit.USER.getAccount();
|
String createUserName = StpKit.USER.getAccount();
|
||||||
@@ -87,7 +87,12 @@
|
|||||||
List<ConsStockFlow> entityList = BeanUtil.copyToList(param.getBodyList(), ConsStockFlow.class);
|
List<ConsStockFlow> entityList = BeanUtil.copyToList(param.getBodyList(), ConsStockFlow.class);
|
||||||
List<ConsStockFlow> insertList = new ArrayList<>();
|
List<ConsStockFlow> insertList = new ArrayList<>();
|
||||||
List<ConsInfo> updateStockList = new ArrayList<>();
|
List<ConsInfo> updateStockList = new ArrayList<>();
|
||||||
|
ArrayList<ConsStockFlow> unInConList = new ArrayList<>();
|
||||||
for (ConsStockFlow entity : entityList) {
|
for (ConsStockFlow entity : entityList) {
|
||||||
|
if (entity.getId() == null) {
|
||||||
|
unInConList.add(entity);
|
||||||
|
continue;
|
||||||
|
}
|
||||||
BeanUtil.copyProperties(head, entity, CopyOptions.create().ignoreNullValue());
|
BeanUtil.copyProperties(head, entity, CopyOptions.create().ignoreNullValue());
|
||||||
entity.setShopId(shopId);
|
entity.setShopId(shopId);
|
||||||
entity.setInOutType(InOutTypeEnum.IN.value());
|
entity.setInOutType(InOutTypeEnum.IN.value());
|
||||||
@@ -97,7 +102,8 @@
|
|||||||
Long conId = entity.getConId();
|
Long conId = entity.getConId();
|
||||||
ConsInfo consInfo = consInfoMapper.selectOneById(conId);
|
ConsInfo consInfo = consInfoMapper.selectOneById(conId);
|
||||||
if (consInfo == null) {
|
if (consInfo == null) {
|
||||||
throw new CzgException(StrUtil.format("耗材{}不存在", entity.getConName()));
|
unInConList.add(entity);
|
||||||
|
continue;
|
||||||
}
|
}
|
||||||
entity.setBeforeNumber(consInfo.getStockNumber());
|
entity.setBeforeNumber(consInfo.getStockNumber());
|
||||||
entity.setAfterNumber(NumberUtil.add(entity.getBeforeNumber(), entity.getInOutNumber()));
|
entity.setAfterNumber(NumberUtil.add(entity.getBeforeNumber(), entity.getInOutNumber()));
|
||||||
@@ -109,6 +115,11 @@
|
|||||||
for (ConsInfo consInfo : updateStockList) {
|
for (ConsInfo consInfo : updateStockList) {
|
||||||
consInfoMapper.update(consInfo);
|
consInfoMapper.update(consInfo);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
return Map.of(
|
||||||
|
"reason", "成功入库" + (entityList.size() - unInConList.size()) + "个耗材, " + unInConList.size() + "个耗材未入库",
|
||||||
|
"unInConList", unInConList
|
||||||
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@@ -300,18 +311,18 @@
|
|||||||
}
|
}
|
||||||
ArrayList<SaleOrderDTO.Item> unInCons = new ArrayList<>();
|
ArrayList<SaleOrderDTO.Item> unInCons = new ArrayList<>();
|
||||||
for (SaleOrderDTO.Item item : saleOrderDTO.getItems()) {
|
for (SaleOrderDTO.Item item : saleOrderDTO.getItems()) {
|
||||||
ConsInfo consInfo = consInfoMap.get(item.getConName());
|
ConsInOutStockBodyParam bodyParam = new ConsInOutStockBodyParam()
|
||||||
if (consInfo == null) {
|
.setConName(item.getConName())
|
||||||
unInCons.add(item);
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
bodyList.add(new ConsInOutStockBodyParam()
|
|
||||||
.setConId(consInfo.getId().toString())
|
|
||||||
.setConName(consInfo.getConName())
|
|
||||||
.setPurchasePrice(new BigDecimal(item.getPurchasePrice()))
|
.setPurchasePrice(new BigDecimal(item.getPurchasePrice()))
|
||||||
.setUnitName(item.getUnitName())
|
.setUnitName(item.getUnitName())
|
||||||
.setSubTotal(new BigDecimal(item.getSubTotal()))
|
.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();
|
ConsInOutStockHeadParam headParam = new ConsInOutStockHeadParam();
|
||||||
|
|||||||
Reference in New Issue
Block a user