Merge branch 'master' of http://gitea.zianxin.com/zianxin-tec/biz-api-cloud
This commit is contained in:
commit
5ac930cd40
6 files changed
+61
-11
No files matched your search
+2
-1
@@ -15,7 +15,8 @@ import java.util.List;
|
|||||||
public enum OrderTypeEnum {
|
public enum OrderTypeEnum {
|
||||||
|
|
||||||
RK("1", "入库"),
|
RK("1", "入库"),
|
||||||
CK("2", "出库")
|
CK("2", "出库"),
|
||||||
|
No("0", "无盈亏")
|
||||||
;
|
;
|
||||||
private final String type;
|
private final String type;
|
||||||
private final String description;
|
private final String description;
|
||||||
|
|||||||
+6
@@ -165,6 +165,12 @@ public class SmErpInventoryRecordsEntity extends Model<SmErpInventoryRecordsEnti
|
|||||||
@Schema(description="设备类型")
|
@Schema(description="设备类型")
|
||||||
private Integer deviceType;
|
private Integer deviceType;
|
||||||
|
|
||||||
|
@Schema(description="流程实例id")
|
||||||
|
private String processInstanceId;
|
||||||
|
|
||||||
|
@Schema(description="审核原因")
|
||||||
|
private String checkReason;
|
||||||
|
|
||||||
@Schema(description="商品名称")
|
@Schema(description="商品名称")
|
||||||
@TableField(exist = false)
|
@TableField(exist = false)
|
||||||
private String productName;
|
private String productName;
|
||||||
|
|||||||
+1
-1
@@ -204,7 +204,7 @@ public class SmErpCgDdController {
|
|||||||
//只查询未关联的
|
//只查询未关联的
|
||||||
wrapper.eq(SmErpCgPlanEntity::getLinkStatus,"0");
|
wrapper.eq(SmErpCgPlanEntity::getLinkStatus,"0");
|
||||||
//todo 审核成功条件
|
//todo 审核成功条件
|
||||||
wrapper.eq(SmErpCgPlanEntity::getCheckStatus, TaskCheckStatusEnum.RESULT);
|
wrapper.eq(SmErpCgPlanEntity::getCheckStatus, TaskCheckStatusEnum.RESULT.getCode());
|
||||||
return R.ok(smErpCgPlanService.pageCgsqScope(page, wrapper));
|
return R.ok(smErpCgPlanService.pageCgsqScope(page, wrapper));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
+22
@@ -4,12 +4,17 @@ import cn.hutool.core.util.StrUtil;
|
|||||||
import cn.hutool.core.util.ArrayUtil;
|
import cn.hutool.core.util.ArrayUtil;
|
||||||
import cn.hutool.core.collection.CollUtil;
|
import cn.hutool.core.collection.CollUtil;
|
||||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||||
|
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
|
||||||
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
||||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||||
import com.bsd.pjcloud.common.core.util.BeanUtils;
|
import com.bsd.pjcloud.common.core.util.BeanUtils;
|
||||||
import com.bsd.pjcloud.common.core.util.R;
|
import com.bsd.pjcloud.common.core.util.R;
|
||||||
import com.bsd.pjcloud.common.log.annotation.SysLog;
|
import com.bsd.pjcloud.common.log.annotation.SysLog;
|
||||||
|
import com.bsd.pjcloud.common.security.annotation.Inner;
|
||||||
import com.bsd.pjcloud.common.security.util.SecurityUtils;
|
import com.bsd.pjcloud.common.security.util.SecurityUtils;
|
||||||
|
import com.bsd.pjcloud.flow.task.dto.ProcessNodeRecordParamDto;
|
||||||
|
import com.bsd.pjcloud.flow.task.utils.GetCheckReasonUtils;
|
||||||
|
import com.bsd.pjcloud.flow.task.vo.CheckStatusAndReasonVo;
|
||||||
import com.bsd.pjcloud.supermarket.dto.cgdd.CGPlanLinkQueryDTO;
|
import com.bsd.pjcloud.supermarket.dto.cgdd.CGPlanLinkQueryDTO;
|
||||||
import com.bsd.pjcloud.supermarket.dto.cgplan.ErpCgPlanDTO;
|
import com.bsd.pjcloud.supermarket.dto.cgplan.ErpCgPlanDTO;
|
||||||
import com.bsd.pjcloud.supermarket.dto.inventoryrecords.*;
|
import com.bsd.pjcloud.supermarket.dto.inventoryrecords.*;
|
||||||
@@ -27,6 +32,7 @@ import org.springframework.http.HttpHeaders;
|
|||||||
import io.swagger.v3.oas.annotations.tags.Tag;
|
import io.swagger.v3.oas.annotations.tags.Tag;
|
||||||
import io.swagger.v3.oas.annotations.Operation;
|
import io.swagger.v3.oas.annotations.Operation;
|
||||||
import lombok.RequiredArgsConstructor;
|
import lombok.RequiredArgsConstructor;
|
||||||
|
import org.springframework.transaction.annotation.Transactional;
|
||||||
import org.springframework.web.bind.annotation.*;
|
import org.springframework.web.bind.annotation.*;
|
||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
@@ -100,6 +106,22 @@ public class SmErpInventoryRecordsController {
|
|||||||
return R.ok(smErpInventoryRecordsService.saveInventoryRecord(inventoryRecordSaveDTO));
|
return R.ok(smErpInventoryRecordsService.saveInventoryRecord(inventoryRecordSaveDTO));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Operation(summary = "回调" , description = "回调" )
|
||||||
|
@SysLog("采购订单回调" )
|
||||||
|
@PostMapping("/flow-callback")
|
||||||
|
@Inner(value = false)
|
||||||
|
@Transactional
|
||||||
|
public R supermarketFlowCallback(@RequestBody ProcessNodeRecordParamDto processNodeRecordParamDto) {
|
||||||
|
String processInstanceId = processNodeRecordParamDto.getProcessInstanceId();
|
||||||
|
CheckStatusAndReasonVo checkReason = GetCheckReasonUtils.getCheckReason(processNodeRecordParamDto);
|
||||||
|
smErpInventoryRecordsService.update(
|
||||||
|
new LambdaUpdateWrapper<SmErpInventoryRecordsEntity>()
|
||||||
|
.eq(SmErpInventoryRecordsEntity::getProcessInstanceId, processInstanceId)
|
||||||
|
.set(SmErpInventoryRecordsEntity::getCheckStatus, checkReason.getCheckStatus())
|
||||||
|
.set(SmErpInventoryRecordsEntity::getCheckReason, checkReason.getCheckReason())
|
||||||
|
);
|
||||||
|
return R.ok();
|
||||||
|
}
|
||||||
/**
|
/**
|
||||||
* 修改出入库记录表
|
* 修改出入库记录表
|
||||||
* @param inventoryRecordEditDTO 出入库记录表
|
* @param inventoryRecordEditDTO 出入库记录表
|
||||||
|
|||||||
+30
-5
@@ -10,7 +10,12 @@ import com.bsd.pjcloud.common.core.util.BeanUtils;
|
|||||||
import com.bsd.pjcloud.common.core.util.R;
|
import com.bsd.pjcloud.common.core.util.R;
|
||||||
import com.bsd.pjcloud.common.data.datascope.DataScope;
|
import com.bsd.pjcloud.common.data.datascope.DataScope;
|
||||||
import com.bsd.pjcloud.common.security.util.SecurityUtils;
|
import com.bsd.pjcloud.common.security.util.SecurityUtils;
|
||||||
|
import com.bsd.pjcloud.flow.task.api.feign.RemoteFlowApiFlowService;
|
||||||
|
import com.bsd.pjcloud.flow.task.constant.TaskCheckStatusEnum;
|
||||||
|
import com.bsd.pjcloud.flow.task.dto.ProcessInstanceParamDto;
|
||||||
|
import com.bsd.pjcloud.flow.task.entity.Process;
|
||||||
import com.bsd.pjcloud.supermarket.constant.OrderTypeEnum;
|
import com.bsd.pjcloud.supermarket.constant.OrderTypeEnum;
|
||||||
|
import com.bsd.pjcloud.supermarket.constant.SupermarketFlowConstant;
|
||||||
import com.bsd.pjcloud.supermarket.dto.cgdd.SmCgDDSaveItemDTO;
|
import com.bsd.pjcloud.supermarket.dto.cgdd.SmCgDDSaveItemDTO;
|
||||||
import com.bsd.pjcloud.supermarket.dto.inventoryrecords.*;
|
import com.bsd.pjcloud.supermarket.dto.inventoryrecords.*;
|
||||||
import com.bsd.pjcloud.supermarket.entity.*;
|
import com.bsd.pjcloud.supermarket.entity.*;
|
||||||
@@ -53,6 +58,8 @@ public class SmErpInventoryRecordsServiceImpl extends ServiceImpl<SmErpInventory
|
|||||||
private final RemoteUserService remoteUserService;
|
private final RemoteUserService remoteUserService;
|
||||||
|
|
||||||
private final SmErpSupplierMapper smErpSupplierMapper;
|
private final SmErpSupplierMapper smErpSupplierMapper;
|
||||||
|
|
||||||
|
private final RemoteFlowApiFlowService remoteFlowApiFlowService;
|
||||||
@Override
|
@Override
|
||||||
@Transactional
|
@Transactional
|
||||||
public Object saveInventoryRecord(InventoryRecordSaveDTO inventoryRecordSaveDTO) {
|
public Object saveInventoryRecord(InventoryRecordSaveDTO inventoryRecordSaveDTO) {
|
||||||
@@ -67,6 +74,17 @@ public class SmErpInventoryRecordsServiceImpl extends ServiceImpl<SmErpInventory
|
|||||||
//计算主表总金额
|
//计算主表总金额
|
||||||
int sum = items.stream().mapToInt(InventoryRecordSaveItemDTO::getTotalAmount).sum();
|
int sum = items.stream().mapToInt(InventoryRecordSaveItemDTO::getTotalAmount).sum();
|
||||||
smErpCgDdEntity.setTotalAmount(sum);
|
smErpCgDdEntity.setTotalAmount(sum);
|
||||||
|
|
||||||
|
//发起流程
|
||||||
|
R<Process> processR = remoteFlowApiFlowService.getProcessByBusinessKey(SupermarketFlowConstant.SUPERMARKET_BHSQ_FLOW);
|
||||||
|
String flowId = processR.getData().getFlowId();
|
||||||
|
ProcessInstanceParamDto processInstanceParamDto = new ProcessInstanceParamDto();
|
||||||
|
processInstanceParamDto.setFlowId(flowId);
|
||||||
|
R<String> stringR = remoteFlowApiFlowService.startProcessInstance(processInstanceParamDto);
|
||||||
|
String processInstanceId = stringR.getData();
|
||||||
|
smErpCgDdEntity.setProcessInstanceId(processInstanceId);
|
||||||
|
smErpCgDdEntity.setCheckStatus(TaskCheckStatusEnum.PADDING.getCode());
|
||||||
|
|
||||||
int insert = baseMapper.insert(smErpCgDdEntity);
|
int insert = baseMapper.insert(smErpCgDdEntity);
|
||||||
|
|
||||||
List<SmErpInventoryRecordsItemEntity> cgPlanItemEntities = BeanUtils.toBean(items, SmErpInventoryRecordsItemEntity.class);
|
List<SmErpInventoryRecordsItemEntity> cgPlanItemEntities = BeanUtils.toBean(items, SmErpInventoryRecordsItemEntity.class);
|
||||||
@@ -85,19 +103,21 @@ public class SmErpInventoryRecordsServiceImpl extends ServiceImpl<SmErpInventory
|
|||||||
updateStockDTO.setIncrCount(quantity);
|
updateStockDTO.setIncrCount(quantity);
|
||||||
}else if (orderType.equals(OrderTypeEnum.CK.getType())){
|
}else if (orderType.equals(OrderTypeEnum.CK.getType())){
|
||||||
updateStockDTO.setIncrCount(-quantity);
|
updateStockDTO.setIncrCount(-quantity);
|
||||||
|
}else if (orderType.equals(OrderTypeEnum.No.getType())){
|
||||||
|
//无需更新库存
|
||||||
}else {
|
}else {
|
||||||
throw new RuntimeException("订单类型错误");
|
throw new RuntimeException("订单类型错误");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
updateStockDTOS.add(updateStockDTO);
|
updateStockDTOS.add(updateStockDTO);
|
||||||
}
|
}
|
||||||
smErpInventoryRecordsItemMapper.insert(cgPlanItemEntities);
|
smErpInventoryRecordsItemMapper.insert(cgPlanItemEntities);
|
||||||
|
|
||||||
//todo 实际上应该审批后才会入库
|
//todo 实际上应该审批后才会入库
|
||||||
//更新库存
|
//更新库存
|
||||||
smErpStockService.updateStock(updateStockDTOS);
|
if (!CollectionUtils.isEmpty(updateStockDTOS)){
|
||||||
|
smErpStockService.updateStock(updateStockDTOS);
|
||||||
|
}
|
||||||
//更新已关联的采购,标记为已使用
|
//更新已关联的采购,标记为已使用
|
||||||
LambdaQueryWrapper<SmErpCgDdEntity> queryWrapper = new LambdaQueryWrapper<>();
|
LambdaQueryWrapper<SmErpCgDdEntity> queryWrapper = new LambdaQueryWrapper<>();
|
||||||
queryWrapper.eq(SmErpCgDdEntity::getCode, inventoryRecordSaveDTO.getInventoryCode());
|
queryWrapper.eq(SmErpCgDdEntity::getCode, inventoryRecordSaveDTO.getInventoryCode());
|
||||||
@@ -466,10 +486,12 @@ public class SmErpInventoryRecordsServiceImpl extends ServiceImpl<SmErpInventory
|
|||||||
Double profit = item.getProfit();
|
Double profit = item.getProfit();
|
||||||
updateStockDTO.setIncrCount(profit);
|
updateStockDTO.setIncrCount(profit);
|
||||||
smErpInventoryRecordsItemEntity.setQuantity(profit);
|
smErpInventoryRecordsItemEntity.setQuantity(profit);
|
||||||
}else if (orderType.equals(OrderTypeEnum.CK.getType())){
|
}else if (orderType.equals(OrderTypeEnum.CK.getType())) {
|
||||||
Double loss = item.getLoss();
|
Double loss = item.getLoss();
|
||||||
updateStockDTO.setIncrCount(loss);
|
updateStockDTO.setIncrCount(loss);
|
||||||
smErpInventoryRecordsItemEntity.setQuantity(loss);
|
smErpInventoryRecordsItemEntity.setQuantity(loss);
|
||||||
|
}else if (orderType.equals(OrderTypeEnum.No.getType())){
|
||||||
|
//无需更新库存
|
||||||
}else {
|
}else {
|
||||||
throw new RuntimeException("订单类型错误");
|
throw new RuntimeException("订单类型错误");
|
||||||
}
|
}
|
||||||
@@ -540,10 +562,13 @@ public class SmErpInventoryRecordsServiceImpl extends ServiceImpl<SmErpInventory
|
|||||||
Double profit = item.getProfit();
|
Double profit = item.getProfit();
|
||||||
updateStockDTO.setIncrCount(profit);
|
updateStockDTO.setIncrCount(profit);
|
||||||
smErpInventoryRecordsItemEntity.setQuantity(profit);
|
smErpInventoryRecordsItemEntity.setQuantity(profit);
|
||||||
}else if (orderType.equals(OrderTypeEnum.CK.getType())){
|
}else if (orderType.equals(OrderTypeEnum.CK.getType())) {
|
||||||
Double loss = item.getLoss();
|
Double loss = item.getLoss();
|
||||||
updateStockDTO.setIncrCount(loss);
|
updateStockDTO.setIncrCount(loss);
|
||||||
smErpInventoryRecordsItemEntity.setQuantity(loss);
|
smErpInventoryRecordsItemEntity.setQuantity(loss);
|
||||||
|
} else if (orderType.equals(OrderTypeEnum.No.getType())){
|
||||||
|
//无需更新库存
|
||||||
|
|
||||||
}else {
|
}else {
|
||||||
throw new RuntimeException("订单类型错误");
|
throw new RuntimeException("订单类型错误");
|
||||||
}
|
}
|
||||||
|
|||||||
-4
@@ -131,8 +131,6 @@ public class SmErpSpuServiceImpl extends ServiceImpl<SmErpSpuMapper, SmErpSpuEnt
|
|||||||
if (CollectionUtils.isNotEmpty(smErpAuxiliaryCodeEntityList)) {
|
if (CollectionUtils.isNotEmpty(smErpAuxiliaryCodeEntityList)) {
|
||||||
smErpAuxiliaryCodeEntityList.forEach(supermarketAuxiliaryCodeEntity -> supermarketAuxiliaryCodeEntity.setSpuId(supermarketSpu.getId()));
|
smErpAuxiliaryCodeEntityList.forEach(supermarketAuxiliaryCodeEntity -> supermarketAuxiliaryCodeEntity.setSpuId(supermarketSpu.getId()));
|
||||||
smErpAuxiliaryCodeService.saveBatch(smErpAuxiliaryCodeEntityList);
|
smErpAuxiliaryCodeService.saveBatch(smErpAuxiliaryCodeEntityList);
|
||||||
} else {
|
|
||||||
return R.failed("辅助条码不能为空");
|
|
||||||
}
|
}
|
||||||
|
|
||||||
return R.ok();
|
return R.ok();
|
||||||
@@ -258,8 +256,6 @@ public class SmErpSpuServiceImpl extends ServiceImpl<SmErpSpuMapper, SmErpSpuEnt
|
|||||||
if (!toDeleteCodeIds.isEmpty()) {
|
if (!toDeleteCodeIds.isEmpty()) {
|
||||||
smErpAuxiliaryCodeService.removeByIds(toDeleteCodeIds);
|
smErpAuxiliaryCodeService.removeByIds(toDeleteCodeIds);
|
||||||
}
|
}
|
||||||
} else {
|
|
||||||
return R.failed("辅助条码不能为空");
|
|
||||||
}
|
}
|
||||||
|
|
||||||
return R.ok();
|
return R.ok();
|
||||||
|
|||||||
Reference in new issue
Block a user