修改库存开关导致数据缺失的问题
This commit is contained in:
@@ -1,6 +1,7 @@
|
|||||||
package cn.ysk.cashier.cons.service.impl;
|
package cn.ysk.cashier.cons.service.impl;
|
||||||
|
|
||||||
import cn.hutool.core.util.ObjectUtil;
|
import cn.hutool.core.util.ObjectUtil;
|
||||||
|
import cn.hutool.core.util.StrUtil;
|
||||||
import cn.ysk.cashier.cons.domain.*;
|
import cn.ysk.cashier.cons.domain.*;
|
||||||
import cn.ysk.cashier.cons.repository.TbConsInfoFlowRepository;
|
import cn.ysk.cashier.cons.repository.TbConsInfoFlowRepository;
|
||||||
import cn.ysk.cashier.cons.repository.TbConsInfoRepository;
|
import cn.ysk.cashier.cons.repository.TbConsInfoRepository;
|
||||||
@@ -71,7 +72,6 @@ public class TbConsInfoServiceImpl implements TbConsInfoService {
|
|||||||
private final TbProductStockOperateRepository tbProductStockOperateRepository;
|
private final TbProductStockOperateRepository tbProductStockOperateRepository;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public Map<String, Object> queryAll(TbConsInfoQueryCriteria criteria, Pageable pageable) {
|
public Map<String, Object> queryAll(TbConsInfoQueryCriteria criteria, Pageable pageable) {
|
||||||
Page<TbConsInfo> page = tbConsInfoRepository.findAll((root, criteriaQuery, criteriaBuilder) -> QueryHelp.getPredicate(root, criteria, criteriaBuilder), pageable);
|
Page<TbConsInfo> page = tbConsInfoRepository.findAll((root, criteriaQuery, criteriaBuilder) -> QueryHelp.getPredicate(root, criteria, criteriaBuilder), pageable);
|
||||||
@@ -81,9 +81,9 @@ public class TbConsInfoServiceImpl implements TbConsInfoService {
|
|||||||
@Override
|
@Override
|
||||||
public List<TbConsInfoDto> queryAll(TbConsInfoQueryCriteria criteria) {
|
public List<TbConsInfoDto> queryAll(TbConsInfoQueryCriteria criteria) {
|
||||||
|
|
||||||
List<TbConsInfoDto> list= tbConsInfoMapper.toDto(tbConsInfoRepository.findAll((root, criteriaQuery, criteriaBuilder) -> QueryHelp.getPredicate(root, criteria, criteriaBuilder)));
|
List<TbConsInfoDto> list = tbConsInfoMapper.toDto(tbConsInfoRepository.findAll((root, criteriaQuery, criteriaBuilder) -> QueryHelp.getPredicate(root, criteria, criteriaBuilder)));
|
||||||
if(Objects.nonNull(list)&&list.size()>0){
|
if (Objects.nonNull(list) && list.size() > 0) {
|
||||||
list.parallelStream().forEach(it->{
|
list.parallelStream().forEach(it -> {
|
||||||
it.setContypeCode(tbConsTypeRepository.findById(it.getConTypeId()).orElseGet(TbConsType::new).getConTypeCode());
|
it.setContypeCode(tbConsTypeRepository.findById(it.getConTypeId()).orElseGet(TbConsType::new).getConTypeCode());
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
@@ -115,14 +115,14 @@ public class TbConsInfoServiceImpl implements TbConsInfoService {
|
|||||||
// }
|
// }
|
||||||
|
|
||||||
|
|
||||||
resource.setConCode(StringCodeUtil.getRandom(8,LETTER_CAPITAL_NUMBER));
|
resource.setConCode(StringCodeUtil.getRandom(8, LETTER_CAPITAL_NUMBER));
|
||||||
resource.setConTypeName(tbConsType.getConTypeName());
|
resource.setConTypeName(tbConsType.getConTypeName());
|
||||||
resource.setLasterInStock(BigDecimal.ZERO);
|
resource.setLasterInStock(BigDecimal.ZERO);
|
||||||
resource.setStockNumber(BigDecimal.ZERO);
|
resource.setStockNumber(BigDecimal.ZERO);
|
||||||
resource.setStatus("1");
|
resource.setStatus("1");
|
||||||
resource.setStockConsume(BigDecimal.ZERO);
|
resource.setStockConsume(BigDecimal.ZERO);
|
||||||
resource.setCreateTime(new Timestamp(System.currentTimeMillis()));
|
resource.setCreateTime(new Timestamp(System.currentTimeMillis()));
|
||||||
resource=tbConsInfoRepository.save(resource);
|
resource = tbConsInfoRepository.save(resource);
|
||||||
|
|
||||||
|
|
||||||
TbConsInfoFlow flow = new TbConsInfoFlow();
|
TbConsInfoFlow flow = new TbConsInfoFlow();
|
||||||
@@ -140,7 +140,6 @@ public class TbConsInfoServiceImpl implements TbConsInfoService {
|
|||||||
tbConsInfoFlowRepository.save(flow);
|
tbConsInfoFlowRepository.save(flow);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
return tbConsInfoMapper.toDto(new TbConsInfo());
|
return tbConsInfoMapper.toDto(new TbConsInfo());
|
||||||
}
|
}
|
||||||
@@ -155,12 +154,24 @@ public class TbConsInfoServiceImpl implements TbConsInfoService {
|
|||||||
throw new Exception("耗材信息不存在");
|
throw new Exception("耗材信息不存在");
|
||||||
}
|
}
|
||||||
|
|
||||||
tbConsInfo.setConName(resource.getConName());
|
if (StrUtil.isNotBlank(resource.getConName())) {
|
||||||
tbConsInfo.setPrice(resource.getPrice());
|
tbConsInfo.setConName(resource.getConName());
|
||||||
tbConsInfo.setConUnit(resource.getConUnit());
|
}
|
||||||
tbConsInfo.setConWarning(resource.getConWarning());
|
if (resource.getPrice() != null) {
|
||||||
tbConsInfo.setStatus(resource.getStatus());
|
tbConsInfo.setPrice(resource.getPrice());
|
||||||
tbConsInfo.setIsCheck(resource.getIsCheck());
|
}
|
||||||
|
if (StrUtil.isNotBlank(resource.getConUnit())) {
|
||||||
|
tbConsInfo.setConUnit(resource.getConUnit());
|
||||||
|
}
|
||||||
|
if (resource.getConWarning() != null) {
|
||||||
|
tbConsInfo.setConWarning(resource.getConWarning());
|
||||||
|
}
|
||||||
|
if (StrUtil.isNotBlank(resource.getStatus())) {
|
||||||
|
tbConsInfo.setStatus(resource.getStatus());
|
||||||
|
}
|
||||||
|
if (StrUtil.isNotBlank(resource.getIsCheck())) {
|
||||||
|
tbConsInfo.setIsCheck(resource.getIsCheck());
|
||||||
|
}
|
||||||
tbConsInfo.setUpdateTime(new Timestamp(System.currentTimeMillis()));
|
tbConsInfo.setUpdateTime(new Timestamp(System.currentTimeMillis()));
|
||||||
|
|
||||||
tbConsInfoRepository.save(tbConsInfo);
|
tbConsInfoRepository.save(tbConsInfo);
|
||||||
@@ -184,9 +195,9 @@ public class TbConsInfoServiceImpl implements TbConsInfoService {
|
|||||||
map.put("耗材名称", tbConsInfo.getConName());
|
map.put("耗材名称", tbConsInfo.getConName());
|
||||||
map.put("耗材类型代码", tbConsInfo.getContypeCode());
|
map.put("耗材类型代码", tbConsInfo.getContypeCode());
|
||||||
map.put("单位", tbConsInfo.getConUnit());
|
map.put("单位", tbConsInfo.getConUnit());
|
||||||
map.put("价格",tbConsInfo.getPrice());
|
map.put("价格", tbConsInfo.getPrice());
|
||||||
map.put("耗材预警值",tbConsInfo.getConWarning());
|
map.put("耗材预警值", tbConsInfo.getConWarning());
|
||||||
map.put("库存",tbConsInfo.getStockNumber().subtract(tbConsInfo.getStockConsume()));
|
map.put("库存", tbConsInfo.getStockNumber().subtract(tbConsInfo.getStockConsume()));
|
||||||
list.add(map);
|
list.add(map);
|
||||||
}
|
}
|
||||||
FileUtil.downloadExcel(list, response);
|
FileUtil.downloadExcel(list, response);
|
||||||
@@ -195,7 +206,7 @@ public class TbConsInfoServiceImpl implements TbConsInfoService {
|
|||||||
@Override
|
@Override
|
||||||
@Transactional(rollbackFor = Exception.class)
|
@Transactional(rollbackFor = Exception.class)
|
||||||
public void stockInOut(SuppFlow resources) throws Exception {
|
public void stockInOut(SuppFlow resources) throws Exception {
|
||||||
log.info("resources:{}",JSON.toJSONString(resources));
|
log.info("resources:{}", JSON.toJSONString(resources));
|
||||||
if (Objects.isNull(resources)) {
|
if (Objects.isNull(resources)) {
|
||||||
throw new Exception("参数错误");
|
throw new Exception("参数错误");
|
||||||
}
|
}
|
||||||
@@ -205,9 +216,9 @@ public class TbConsInfoServiceImpl implements TbConsInfoService {
|
|||||||
throw new Exception("店铺信息不存在");
|
throw new Exception("店铺信息不存在");
|
||||||
}
|
}
|
||||||
|
|
||||||
TbShopPurveyor purveyor=null;
|
TbShopPurveyor purveyor = null;
|
||||||
TbProductStockOperate stockOperate = new TbProductStockOperate();
|
TbProductStockOperate stockOperate = new TbProductStockOperate();
|
||||||
if(Objects.nonNull(resources.getSupplierId())){
|
if (Objects.nonNull(resources.getSupplierId())) {
|
||||||
purveyor = tbShopPurveyorRepository.getById(resources.getSupplierId());
|
purveyor = tbShopPurveyorRepository.getById(resources.getSupplierId());
|
||||||
if (Objects.nonNull(purveyor)) {
|
if (Objects.nonNull(purveyor)) {
|
||||||
stockOperate.setPurveyorId(resources.getSupplierId().toString());
|
stockOperate.setPurveyorId(resources.getSupplierId().toString());
|
||||||
@@ -217,7 +228,7 @@ public class TbConsInfoServiceImpl implements TbConsInfoService {
|
|||||||
|
|
||||||
stockOperate.setShopId(tbShopInfo.getId().toString());
|
stockOperate.setShopId(tbShopInfo.getId().toString());
|
||||||
stockOperate.setStockSnap("");
|
stockOperate.setStockSnap("");
|
||||||
stockOperate.setType(resources.getType().equals("in")?"cons_in":"cons_out");
|
stockOperate.setType(resources.getType().equals("in") ? "cons_in" : "cons_out");
|
||||||
Map<String, String> operatorSnapMap = new HashMap<>();
|
Map<String, String> operatorSnapMap = new HashMap<>();
|
||||||
operatorSnapMap.put("name", tbShopInfo.getShopName());
|
operatorSnapMap.put("name", tbShopInfo.getShopName());
|
||||||
operatorSnapMap.put("account", tbShopInfo.getAccount());
|
operatorSnapMap.put("account", tbShopInfo.getAccount());
|
||||||
@@ -229,11 +240,11 @@ public class TbConsInfoServiceImpl implements TbConsInfoService {
|
|||||||
stockOperate.setUpdatedAt(System.currentTimeMillis());
|
stockOperate.setUpdatedAt(System.currentTimeMillis());
|
||||||
stockOperate.setStatus("normal");
|
stockOperate.setStatus("normal");
|
||||||
|
|
||||||
JSONArray array=new JSONArray();
|
JSONArray array = new JSONArray();
|
||||||
|
|
||||||
|
|
||||||
for (SuppFlow.ConInfos conInfos : resources.getList()) {
|
for (SuppFlow.ConInfos conInfos : resources.getList()) {
|
||||||
JSONObject object=new JSONObject();
|
JSONObject object = new JSONObject();
|
||||||
|
|
||||||
TbConsInfo info = tbConsInfoRepository.getById(conInfos.getConInfold());
|
TbConsInfo info = tbConsInfoRepository.getById(conInfos.getConInfold());
|
||||||
if (Objects.isNull(info)) {
|
if (Objects.isNull(info)) {
|
||||||
@@ -247,19 +258,19 @@ public class TbConsInfoServiceImpl implements TbConsInfoService {
|
|||||||
|
|
||||||
TbShopPurveyorTransact purveyorTransact = new TbShopPurveyorTransact();
|
TbShopPurveyorTransact purveyorTransact = new TbShopPurveyorTransact();
|
||||||
purveyorTransact.setShopId(tbShopInfo.getId().toString());
|
purveyorTransact.setShopId(tbShopInfo.getId().toString());
|
||||||
purveyorTransact.setPurveyorName(Objects.isNull(purveyor)?"":purveyor.getPurveyorName());
|
purveyorTransact.setPurveyorName(Objects.isNull(purveyor) ? "" : purveyor.getPurveyorName());
|
||||||
purveyorTransact.setPurveyorId(Objects.isNull(purveyor)?"":purveyor.getId().toString());
|
purveyorTransact.setPurveyorId(Objects.isNull(purveyor) ? "" : purveyor.getId().toString());
|
||||||
purveyorTransact.setRemark(resources.getRemark());
|
purveyorTransact.setRemark(resources.getRemark());
|
||||||
purveyorTransact.setCreatedAt(System.currentTimeMillis());
|
purveyorTransact.setCreatedAt(System.currentTimeMillis());
|
||||||
purveyorTransact.setUpdatedAt(System.currentTimeMillis());
|
purveyorTransact.setUpdatedAt(System.currentTimeMillis());
|
||||||
|
|
||||||
suppFlow.setConInfoId(info.getConTypeId());
|
suppFlow.setConInfoId(info.getConTypeId());
|
||||||
suppFlow.setShopId(resources.getShopId());
|
suppFlow.setShopId(resources.getShopId());
|
||||||
suppFlow.setSupplierId(Objects.isNull(resources.getSupplierId())?0: resources.getSupplierId());
|
suppFlow.setSupplierId(Objects.isNull(resources.getSupplierId()) ? 0 : resources.getSupplierId());
|
||||||
suppFlow.setType(resources.getType());
|
suppFlow.setType(resources.getType());
|
||||||
suppFlow.setStockNumber(conInfos.getStockNumber());
|
suppFlow.setStockNumber(conInfos.getStockNumber());
|
||||||
|
|
||||||
BigDecimal amount=info.getStockNumber().subtract(info.getStockConsume());
|
BigDecimal amount = info.getStockNumber().subtract(info.getStockConsume());
|
||||||
|
|
||||||
|
|
||||||
if ("in".equals(resources.getType())) {
|
if ("in".equals(resources.getType())) {
|
||||||
@@ -279,19 +290,17 @@ public class TbConsInfoServiceImpl implements TbConsInfoService {
|
|||||||
purveyorTransact.setWaitAmount((resources.getAccountsPayable().subtract(resources.getActualPayment())));
|
purveyorTransact.setWaitAmount((resources.getAccountsPayable().subtract(resources.getActualPayment())));
|
||||||
purveyorTransact.setType("cons_in");
|
purveyorTransact.setType("cons_in");
|
||||||
|
|
||||||
object.put("number",conInfos.getStockNumber());
|
object.put("number", conInfos.getStockNumber());
|
||||||
} else if("out".equals(resources.getType())) {
|
} else if ("out".equals(resources.getType())) {
|
||||||
stockOperate.setSubType(-1);
|
stockOperate.setSubType(-1);
|
||||||
|
|
||||||
if(conInfos.getStockNumber().compareTo(info.getStockNumber())>0){
|
if (conInfos.getStockNumber().compareTo(info.getStockNumber()) > 0) {
|
||||||
throw new BadRequestException("出库数量大于现有的库存数量");
|
throw new BadRequestException("出库数量大于现有的库存数量");
|
||||||
}
|
}
|
||||||
|
|
||||||
info.setStockNumber(info.getStockNumber().subtract(conInfos.getStockNumber()));
|
info.setStockNumber(info.getStockNumber().subtract(conInfos.getStockNumber()));
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
suppFlow.setBalance(info.getStockNumber().subtract(info.getStockConsume()).subtract(conInfos.getStockNumber()));
|
suppFlow.setBalance(info.getStockNumber().subtract(info.getStockConsume()).subtract(conInfos.getStockNumber()));
|
||||||
|
|
||||||
|
|
||||||
@@ -304,16 +313,16 @@ public class TbConsInfoServiceImpl implements TbConsInfoService {
|
|||||||
|
|
||||||
purveyorTransact.setWaitAmount((resources.getAccountsPayable().subtract(resources.getActualPayment())).negate());
|
purveyorTransact.setWaitAmount((resources.getAccountsPayable().subtract(resources.getActualPayment())).negate());
|
||||||
purveyorTransact.setType("cons_out");
|
purveyorTransact.setType("cons_out");
|
||||||
object.put("number",conInfos.getStockNumber());
|
object.put("number", conInfos.getStockNumber());
|
||||||
}else {
|
} else {
|
||||||
throw new BadRequestException("错误操作类型");
|
throw new BadRequestException("错误操作类型");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
object.put("stockNumber",amount);
|
object.put("stockNumber", amount);
|
||||||
|
|
||||||
object.put("name",info.getConName());
|
object.put("name", info.getConName());
|
||||||
object.put("unitName",info.getConUnit());
|
object.put("unitName", info.getConUnit());
|
||||||
array.add(object);
|
array.add(object);
|
||||||
|
|
||||||
suppFlow.setPrice(conInfos.getPrice());
|
suppFlow.setPrice(conInfos.getPrice());
|
||||||
@@ -367,7 +376,7 @@ public class TbConsInfoServiceImpl implements TbConsInfoService {
|
|||||||
XSSFSheet sheet = xssfWorkbook.getSheetAt(0);
|
XSSFSheet sheet = xssfWorkbook.getSheetAt(0);
|
||||||
XSSFRow row = null;
|
XSSFRow row = null;
|
||||||
|
|
||||||
List<TbConsInfo> consInfos=new ArrayList<>();
|
List<TbConsInfo> consInfos = new ArrayList<>();
|
||||||
for (int i = 1; i < sheet.getPhysicalNumberOfRows(); i++) {
|
for (int i = 1; i < sheet.getPhysicalNumberOfRows(); i++) {
|
||||||
row = sheet.getRow(i);
|
row = sheet.getRow(i);
|
||||||
if (row != null) {
|
if (row != null) {
|
||||||
@@ -431,7 +440,7 @@ public class TbConsInfoServiceImpl implements TbConsInfoService {
|
|||||||
TbConsInfo consInfo = tbConsInfoRepository.findByConCode(cell0.toString());
|
TbConsInfo consInfo = tbConsInfoRepository.findByConCode(cell0.toString());
|
||||||
if (ObjectUtil.isEmpty(consInfo) || ObjectUtil.isNull(consInfo)) {
|
if (ObjectUtil.isEmpty(consInfo) || ObjectUtil.isNull(consInfo)) {
|
||||||
consInfo = new TbConsInfo();
|
consInfo = new TbConsInfo();
|
||||||
consInfo.setConCode(StringCodeUtil.getRandom(8,LETTER_CAPITAL_NUMBER));
|
consInfo.setConCode(StringCodeUtil.getRandom(8, LETTER_CAPITAL_NUMBER));
|
||||||
consInfo.setShopId(Integer.valueOf(shopId));
|
consInfo.setShopId(Integer.valueOf(shopId));
|
||||||
consInfo.setConTypeId(tbConsType.getId());
|
consInfo.setConTypeId(tbConsType.getId());
|
||||||
consInfo.setConTypeName(tbConsType.getConTypeName());
|
consInfo.setConTypeName(tbConsType.getConTypeName());
|
||||||
@@ -487,7 +496,7 @@ public class TbConsInfoServiceImpl implements TbConsInfoService {
|
|||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
TbConsInfo consInfo = new TbConsInfo();
|
TbConsInfo consInfo = new TbConsInfo();
|
||||||
consInfo.setConCode(StringCodeUtil.getRandom(8,LETTER_CAPITAL_NUMBER));
|
consInfo.setConCode(StringCodeUtil.getRandom(8, LETTER_CAPITAL_NUMBER));
|
||||||
consInfo.setShopId(Integer.valueOf(shopId));
|
consInfo.setShopId(Integer.valueOf(shopId));
|
||||||
consInfo.setConTypeId(tbConsType.getId());
|
consInfo.setConTypeId(tbConsType.getId());
|
||||||
consInfo.setConTypeName(tbConsType.getConTypeName());
|
consInfo.setConTypeName(tbConsType.getConTypeName());
|
||||||
@@ -523,7 +532,7 @@ public class TbConsInfoServiceImpl implements TbConsInfoService {
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public static void main(String[] args){
|
public static void main(String[] args) {
|
||||||
System.out.println(UUID.randomUUID().toString());
|
System.out.println(UUID.randomUUID().toString());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user