feat(biz): 优化采购入库流程并新增库存管理功能
This commit is contained in:
parent
423118e774
commit
1820d623ce
@ -112,4 +112,6 @@ public class ProStorageInventoryRespVO {
|
|||||||
@ExcelProperty("生产计划号")
|
@ExcelProperty("生产计划号")
|
||||||
private String proNo;
|
private String proNo;
|
||||||
|
|
||||||
|
private String inventBillNo;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@ -57,4 +57,6 @@ public class SaleDeliveryDetailSaveReqVO {
|
|||||||
|
|
||||||
private Integer stockBag;
|
private Integer stockBag;
|
||||||
|
|
||||||
|
private String inventBillNo;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@ -142,4 +142,6 @@ public class ProStorageLogDO extends BaseDO {
|
|||||||
*/
|
*/
|
||||||
private String dpstNo;
|
private String dpstNo;
|
||||||
|
|
||||||
|
private String inventBillNo;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@ -53,5 +53,4 @@ public interface ProStorageLogService {
|
|||||||
PageResult<ProStorageLogDO> getProStorageLogPage(ProStorageLogPageReqVO pageReqVO);
|
PageResult<ProStorageLogDO> getProStorageLogPage(ProStorageLogPageReqVO pageReqVO);
|
||||||
|
|
||||||
void saveProStorageLog(ProStorageLogDO saveReqVO);
|
void saveProStorageLog(ProStorageLogDO saveReqVO);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@ -77,12 +77,8 @@ public class ProStorageLogServiceImpl implements ProStorageLogService {
|
|||||||
|
|
||||||
|
|
||||||
private String generatePurReceiptNo(String operatorType) {
|
private String generatePurReceiptNo(String operatorType) {
|
||||||
String prefix = "RK";
|
|
||||||
if ("2".equals(operatorType)) {
|
|
||||||
prefix = "CK";
|
|
||||||
}
|
|
||||||
String maxPurReceiptNo = proStorageLogMapper.selectMaxPurReceiptNo(operatorType);
|
String maxPurReceiptNo = proStorageLogMapper.selectMaxPurReceiptNo(operatorType);
|
||||||
return CodeGenerateUtils.generateBillNo(prefix, "yyyyMM", 3, maxPurReceiptNo);
|
return CodeGenerateUtils.generateBillNo("CK", maxPurReceiptNo);
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@ -22,11 +22,11 @@ import com.ningxia.yunxi.chemmes.module.biz.service.prostorage.ProStorageService
|
|||||||
import com.ningxia.yunxi.chemmes.module.biz.service.prostoragelog.ProStorageLogService;
|
import com.ningxia.yunxi.chemmes.module.biz.service.prostoragelog.ProStorageLogService;
|
||||||
import com.ningxia.yunxi.chemmes.module.system.dal.dataobject.user.AdminUserDO;
|
import com.ningxia.yunxi.chemmes.module.system.dal.dataobject.user.AdminUserDO;
|
||||||
import com.ningxia.yunxi.chemmes.module.system.dal.mysql.user.AdminUserMapper;
|
import com.ningxia.yunxi.chemmes.module.system.dal.mysql.user.AdminUserMapper;
|
||||||
|
import lombok.RequiredArgsConstructor;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
import org.springframework.transaction.annotation.Transactional;
|
import org.springframework.transaction.annotation.Transactional;
|
||||||
import org.springframework.validation.annotation.Validated;
|
import org.springframework.validation.annotation.Validated;
|
||||||
|
|
||||||
import javax.annotation.Resource;
|
|
||||||
import java.math.BigDecimal;
|
import java.math.BigDecimal;
|
||||||
import java.time.LocalDate;
|
import java.time.LocalDate;
|
||||||
import java.time.format.DateTimeFormatter;
|
import java.time.format.DateTimeFormatter;
|
||||||
@ -42,37 +42,19 @@ import static com.ningxia.yunxi.chemmes.framework.security.core.util.SecurityFra
|
|||||||
*/
|
*/
|
||||||
@Service
|
@Service
|
||||||
@Validated
|
@Validated
|
||||||
|
@RequiredArgsConstructor
|
||||||
public class SaleDeliveryServiceImpl implements SaleDeliveryService {
|
public class SaleDeliveryServiceImpl implements SaleDeliveryService {
|
||||||
|
|
||||||
@Resource
|
private final SaleDeliveryMapper saleDeliveryMapper;
|
||||||
private SaleDeliveryMapper saleDeliveryMapper;
|
private final SaleDeliveryDetailMapper saleDeliveryDetailMapper;
|
||||||
|
private final AdminUserMapper adminUserMapper;
|
||||||
@Resource
|
private final ProStorageInventoryMapper proStorageInventoryMapper;
|
||||||
private SaleDeliveryDetailMapper saleDeliveryDetailMapper;
|
private final ProStorageMapper proStorageMapper;
|
||||||
|
private final ProStorageMatMapper proStorageMatMapper;
|
||||||
@Resource
|
private final OrderItemMapper orderItemMapper;
|
||||||
private AdminUserMapper adminUserMapper;
|
private final OrderMapper orderMapper;
|
||||||
|
private final ProStorageService proStorageService;
|
||||||
@Resource
|
private final ProStorageLogService proStorageLogService;
|
||||||
private ProStorageInventoryMapper proStorageInventoryMapper;
|
|
||||||
|
|
||||||
@Resource
|
|
||||||
private ProStorageMapper proStorageMapper;
|
|
||||||
|
|
||||||
@Resource
|
|
||||||
private ProStorageMatMapper proStorageMatMapper;
|
|
||||||
|
|
||||||
@Resource
|
|
||||||
private OrderItemMapper orderItemMapper;
|
|
||||||
|
|
||||||
@Resource
|
|
||||||
private OrderMapper orderMapper;
|
|
||||||
|
|
||||||
@Resource
|
|
||||||
private ProStorageService proStorageService;
|
|
||||||
|
|
||||||
@Resource
|
|
||||||
private ProStorageLogService proStorageLogService;
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@Transactional(rollbackFor = Exception.class)
|
@Transactional(rollbackFor = Exception.class)
|
||||||
@ -123,7 +105,6 @@ public class SaleDeliveryServiceImpl implements SaleDeliveryService {
|
|||||||
List<SaleDeliveryDetailDO> saleDeliveryDetails = BeanUtils.toBean(list, SaleDeliveryDetailDO.class);
|
List<SaleDeliveryDetailDO> saleDeliveryDetails = BeanUtils.toBean(list, SaleDeliveryDetailDO.class);
|
||||||
saleDeliveryDetails.forEach(detail ->
|
saleDeliveryDetails.forEach(detail ->
|
||||||
detail.setSaleDeliveryId(saleDeliveryId)
|
detail.setSaleDeliveryId(saleDeliveryId)
|
||||||
.setInventBillNo(detail.getInventBillNo())
|
|
||||||
.setId(null)
|
.setId(null)
|
||||||
);
|
);
|
||||||
saleDeliveryDetailMapper.insertBatch(saleDeliveryDetails);
|
saleDeliveryDetailMapper.insertBatch(saleDeliveryDetails);
|
||||||
@ -235,7 +216,6 @@ public class SaleDeliveryServiceImpl implements SaleDeliveryService {
|
|||||||
}
|
}
|
||||||
// 存入 proStorageLogService
|
// 存入 proStorageLogService
|
||||||
for (SaleDeliveryDetailDO saleDeliveryDetailDO : detailList) {
|
for (SaleDeliveryDetailDO saleDeliveryDetailDO : detailList) {
|
||||||
|
|
||||||
ProStorageLogDO proStorageLogDO = ProStorageLogDO.builder()
|
ProStorageLogDO proStorageLogDO = ProStorageLogDO.builder()
|
||||||
.stockId(saleDeliveryDetailDO.getId())
|
.stockId(saleDeliveryDetailDO.getId())
|
||||||
.description("销售出库")
|
.description("销售出库")
|
||||||
@ -262,6 +242,7 @@ public class SaleDeliveryServiceImpl implements SaleDeliveryService {
|
|||||||
.relarionNo(saleDelivery.getSaleDeliveryNo())
|
.relarionNo(saleDelivery.getSaleDeliveryNo())
|
||||||
.relarionId(saleDelivery.getId())
|
.relarionId(saleDelivery.getId())
|
||||||
.relarionDetailId(saleDeliveryDetailDO.getId())
|
.relarionDetailId(saleDeliveryDetailDO.getId())
|
||||||
|
.inventBillNo(saleDeliveryDetailDO.getInventBillNo())
|
||||||
.build();
|
.build();
|
||||||
proStorageLogService.saveProStorageLog(proStorageLogDO);
|
proStorageLogService.saveProStorageLog(proStorageLogDO);
|
||||||
}
|
}
|
||||||
@ -370,5 +351,7 @@ public class SaleDeliveryServiceImpl implements SaleDeliveryService {
|
|||||||
saleDelivery.setDeliveryStatus("2");
|
saleDelivery.setDeliveryStatus("2");
|
||||||
// saleDelivery.setTwmStorageId(proStorage.getId());
|
// saleDelivery.setTwmStorageId(proStorage.getId());
|
||||||
saleDeliveryMapper.updateById(saleDelivery);
|
saleDeliveryMapper.updateById(saleDelivery);
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -32,27 +32,11 @@ declare module 'vue' {
|
|||||||
Echart: typeof import('./../components/Echart/src/Echart.vue')['default']
|
Echart: typeof import('./../components/Echart/src/Echart.vue')['default']
|
||||||
Editor: typeof import('./../components/Editor/src/Editor.vue')['default']
|
Editor: typeof import('./../components/Editor/src/Editor.vue')['default']
|
||||||
ElAlert: typeof import('element-plus/es')['ElAlert']
|
ElAlert: typeof import('element-plus/es')['ElAlert']
|
||||||
ElAside: typeof import('element-plus/es')['ElAside']
|
|
||||||
ElAutoResizer: typeof import('element-plus/es')['ElAutoResizer']
|
|
||||||
ElAvatar: typeof import('element-plus/es')['ElAvatar']
|
ElAvatar: typeof import('element-plus/es')['ElAvatar']
|
||||||
ElBadge: typeof import('element-plus/es')['ElBadge']
|
|
||||||
ElButton: typeof import('element-plus/es')['ElButton']
|
ElButton: typeof import('element-plus/es')['ElButton']
|
||||||
ElButtonGroup: typeof import('element-plus/es')['ElButtonGroup']
|
|
||||||
ElCard: typeof import('element-plus/es')['ElCard']
|
ElCard: typeof import('element-plus/es')['ElCard']
|
||||||
ElCarousel: typeof import('element-plus/es')['ElCarousel']
|
|
||||||
ElCarouselItem: typeof import('element-plus/es')['ElCarouselItem']
|
|
||||||
ElCascader: typeof import('element-plus/es')['ElCascader']
|
|
||||||
ElCheckbox: typeof import('element-plus/es')['ElCheckbox']
|
|
||||||
ElCheckboxGroup: typeof import('element-plus/es')['ElCheckboxGroup']
|
|
||||||
ElCol: typeof import('element-plus/es')['ElCol']
|
ElCol: typeof import('element-plus/es')['ElCol']
|
||||||
ElCollapse: typeof import('element-plus/es')['ElCollapse']
|
|
||||||
ElCollapseItem: typeof import('element-plus/es')['ElCollapseItem']
|
|
||||||
ElCollapseTransition: typeof import('element-plus/es')['ElCollapseTransition']
|
|
||||||
ElColorPicker: typeof import('element-plus/es')['ElColorPicker']
|
|
||||||
ElContainer: typeof import('element-plus/es')['ElContainer']
|
|
||||||
ElDatePicker: typeof import('element-plus/es')['ElDatePicker']
|
ElDatePicker: typeof import('element-plus/es')['ElDatePicker']
|
||||||
ElDescriptions: typeof import('element-plus/es')['ElDescriptions']
|
|
||||||
ElDescriptionsItem: typeof import('element-plus/es')['ElDescriptionsItem']
|
|
||||||
ElDialog: typeof import('element-plus/es')['ElDialog']
|
ElDialog: typeof import('element-plus/es')['ElDialog']
|
||||||
ElDivider: typeof import('element-plus/es')['ElDivider']
|
ElDivider: typeof import('element-plus/es')['ElDivider']
|
||||||
ElDrawer: typeof import('element-plus/es')['ElDrawer']
|
ElDrawer: typeof import('element-plus/es')['ElDrawer']
|
||||||
@ -68,41 +52,25 @@ declare module 'vue' {
|
|||||||
ElementTask: typeof import('./../components/bpmnProcessDesigner/package/penal/task/ElementTask.vue')['default']
|
ElementTask: typeof import('./../components/bpmnProcessDesigner/package/penal/task/ElementTask.vue')['default']
|
||||||
ElForm: typeof import('element-plus/es')['ElForm']
|
ElForm: typeof import('element-plus/es')['ElForm']
|
||||||
ElFormItem: typeof import('element-plus/es')['ElFormItem']
|
ElFormItem: typeof import('element-plus/es')['ElFormItem']
|
||||||
ElHeader: typeof import('element-plus/es')['ElHeader']
|
|
||||||
ElIcon: typeof import('element-plus/es')['ElIcon']
|
ElIcon: typeof import('element-plus/es')['ElIcon']
|
||||||
ElImage: typeof import('element-plus/es')['ElImage']
|
|
||||||
ElImageViewer: typeof import('element-plus/es')['ElImageViewer']
|
|
||||||
ElInput: typeof import('element-plus/es')['ElInput']
|
ElInput: typeof import('element-plus/es')['ElInput']
|
||||||
ElInputNumber: typeof import('element-plus/es')['ElInputNumber']
|
ElInputNumber: typeof import('element-plus/es')['ElInputNumber']
|
||||||
ElLink: typeof import('element-plus/es')['ElLink']
|
|
||||||
ElMain: typeof import('element-plus/es')['ElMain']
|
|
||||||
ElOption: typeof import('element-plus/es')['ElOption']
|
ElOption: typeof import('element-plus/es')['ElOption']
|
||||||
ElPagination: typeof import('element-plus/es')['ElPagination']
|
ElPagination: typeof import('element-plus/es')['ElPagination']
|
||||||
ElPopover: typeof import('element-plus/es')['ElPopover']
|
ElPopover: typeof import('element-plus/es')['ElPopover']
|
||||||
ElRadio: typeof import('element-plus/es')['ElRadio']
|
ElRadio: typeof import('element-plus/es')['ElRadio']
|
||||||
ElRadioButton: typeof import('element-plus/es')['ElRadioButton']
|
|
||||||
ElRadioGroup: typeof import('element-plus/es')['ElRadioGroup']
|
ElRadioGroup: typeof import('element-plus/es')['ElRadioGroup']
|
||||||
ElRate: typeof import('element-plus/es')['ElRate']
|
|
||||||
ElRow: typeof import('element-plus/es')['ElRow']
|
ElRow: typeof import('element-plus/es')['ElRow']
|
||||||
ElScrollbar: typeof import('element-plus/es')['ElScrollbar']
|
ElScrollbar: typeof import('element-plus/es')['ElScrollbar']
|
||||||
ElSelect: typeof import('element-plus/es')['ElSelect']
|
ElSelect: typeof import('element-plus/es')['ElSelect']
|
||||||
ElSkeleton: typeof import('element-plus/es')['ElSkeleton']
|
ElSkeleton: typeof import('element-plus/es')['ElSkeleton']
|
||||||
ElSlider: typeof import('element-plus/es')['ElSlider']
|
|
||||||
ElSpace: typeof import('element-plus/es')['ElSpace']
|
|
||||||
ElSwitch: typeof import('element-plus/es')['ElSwitch']
|
ElSwitch: typeof import('element-plus/es')['ElSwitch']
|
||||||
ElTable: typeof import('element-plus/es')['ElTable']
|
ElTable: typeof import('element-plus/es')['ElTable']
|
||||||
ElTableColumn: typeof import('element-plus/es')['ElTableColumn']
|
ElTableColumn: typeof import('element-plus/es')['ElTableColumn']
|
||||||
ElTableV2: typeof import('element-plus/es')['ElTableV2']
|
|
||||||
ElTabPane: typeof import('element-plus/es')['ElTabPane']
|
ElTabPane: typeof import('element-plus/es')['ElTabPane']
|
||||||
ElTabs: typeof import('element-plus/es')['ElTabs']
|
ElTabs: typeof import('element-plus/es')['ElTabs']
|
||||||
ElTag: typeof import('element-plus/es')['ElTag']
|
ElTag: typeof import('element-plus/es')['ElTag']
|
||||||
ElText: typeof import('element-plus/es')['ElText']
|
|
||||||
ElTimeline: typeof import('element-plus/es')['ElTimeline']
|
|
||||||
ElTimelineItem: typeof import('element-plus/es')['ElTimelineItem']
|
|
||||||
ElTimePicker: typeof import('element-plus/es')['ElTimePicker']
|
|
||||||
ElTimeSelect: typeof import('element-plus/es')['ElTimeSelect']
|
|
||||||
ElTooltip: typeof import('element-plus/es')['ElTooltip']
|
ElTooltip: typeof import('element-plus/es')['ElTooltip']
|
||||||
ElTransfer: typeof import('element-plus/es')['ElTransfer']
|
|
||||||
ElTree: typeof import('element-plus/es')['ElTree']
|
ElTree: typeof import('element-plus/es')['ElTree']
|
||||||
ElTreeSelect: typeof import('element-plus/es')['ElTreeSelect']
|
ElTreeSelect: typeof import('element-plus/es')['ElTreeSelect']
|
||||||
ElUpload: typeof import('element-plus/es')['ElUpload']
|
ElUpload: typeof import('element-plus/es')['ElUpload']
|
||||||
|
|||||||
@ -272,6 +272,7 @@ const handleSave = () => {
|
|||||||
spec: row.spec,
|
spec: row.spec,
|
||||||
unit: row.unit,
|
unit: row.unit,
|
||||||
materialId: row.materialId,
|
materialId: row.materialId,
|
||||||
|
inventBillNo: row.inventBillNo,
|
||||||
}))
|
}))
|
||||||
|
|
||||||
emit('select', selectData)
|
emit('select', selectData)
|
||||||
|
|||||||
@ -697,6 +697,7 @@ const handleInventorySelect = (data: any[]) => {
|
|||||||
deliveriedBag: '', // 发货袋数
|
deliveriedBag: '', // 发货袋数
|
||||||
deliveriedQty: '', // 发货数量
|
deliveriedQty: '', // 发货数量
|
||||||
remark: '', // 备注
|
remark: '', // 备注
|
||||||
|
inventBillNo: inventory.inventBillNo, // 库存单号
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
// 如果已存在,不做处理
|
// 如果已存在,不做处理
|
||||||
@ -833,6 +834,8 @@ const submitForm = async () => {
|
|||||||
deliveriedBagQty: item.deliveriedBag,
|
deliveriedBagQty: item.deliveriedBag,
|
||||||
deliveriedQty: item.deliveriedQty,
|
deliveriedQty: item.deliveriedQty,
|
||||||
remark: item.remark,
|
remark: item.remark,
|
||||||
|
inventBillNo: item.inventBillNo,
|
||||||
|
// 库存单号
|
||||||
}))
|
}))
|
||||||
|
|
||||||
// 只传递用户选择的联系人信息,不传递备用的联系人字段
|
// 只传递用户选择的联系人信息,不传递备用的联系人字段
|
||||||
@ -884,6 +887,8 @@ const submitAudit = async () => {
|
|||||||
deliveriedBagQty: item.deliveriedBag,
|
deliveriedBagQty: item.deliveriedBag,
|
||||||
deliveriedQty: item.deliveriedQty,
|
deliveriedQty: item.deliveriedQty,
|
||||||
remark: item.remark,
|
remark: item.remark,
|
||||||
|
inventBillNo: item.inventBillNo,
|
||||||
|
// 库存单号
|
||||||
}))
|
}))
|
||||||
|
|
||||||
// 只传递用户选择的联系人信息,不传递备用的联系人字段
|
// 只传递用户选择的联系人信息,不传递备用的联系人字段
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user