今天主要做一个采购入库单的功能
这个是主从表,所以也是通过online表单设计完成基本功能
1、采购入库单

按照上面生成代码,基本的录入编辑等功能就可以了,当然一些细节需要后续完善

选择商品

2、审核通过
对于库存的更新,需要进行审核通过后才去更新库存,所以需要一些统一的逻辑与接口,同时vue界面也是。
2、1 后端代码
先实现审核标志,后续实现库存更新,库存更新以后通过统一的类来实现
- @Override
- @Transactional
- public Result approvePass(String id) {
- ErpInSheet erpInSheet = erpInSheetMapper.selectById(id);
- if (erpInSheet == null) {
- return Result.error("采购入库单不存在!");
- }
- if (erpInSheet.getStatus() == 2 ) {
- return Result.error("采购入库单已审核通过,不能再次审核!");
- }
-
- erpInSheet.setStatus(2); //审核通过标志 2代表通过
- SysUser loginUser = iErpThirdService.getLoginUser();
- LambdaUpdateWrapper
updateOrderWrapper = Wrappers.lambdaUpdate(ErpInSheet.class) - .set(ErpInSheet::getApproveBy, loginUser.getUsername())
- .set(ErpInSheet::getApproveTime, LocalDateTime.now())
- .eq(ErpInSheet::getId, erpInSheet.getId());
- if(erpInSheetMapper.update(erpInSheet, updateOrderWrapper) != 1) {
- return Result.error("采购入库单信息已过期,请刷新重试!");
- }
- return Result.OK("审核通过完成");
- }
2、2 前端实现
需要建立两个独立Mixns,分别是 NbcioListMixin.js 和NbcioTableModelMixin.js
目前在NbcioListMixin.js先增加下面代码,打开审批按钮的时候,需要修改一些form值,以便变成审核按钮及相关逻辑
- handleApprove:function(record){
- this.$refs.modalForm.approve=true;
- this.$refs.modalForm.edit(record);
- this.$refs.modalForm.title="审核详情";
- this.$refs.modalForm.okText="审核通过"
- this.$refs.modalForm.disableSubmit = true;
- },
目前在 NbcioTableModelMixin.js 先增加下面的审核通过后的逻辑
- /** 审核通过按钮点击事件 */
- handleApprove() {
- let url = this.url.approvePass, method = 'post'
- console.log("handleApprove this.model.id=",this.model.id)
- this.confirmLoading = true
- httpAction(url, this.model.id, method).then((res) => {
- if (res.success) {
- this.$message.success(res.message)
- this.$emit('ok')
- this.close()
- } else {
- this.$message.warning(res.message)
- }
- }).finally(() => {
- this.confirmLoading = false
- })
在采购入库单里进行修改,原先的minxs都要修改成新的,
原先的ErpInSheetModal.vue里的j-modal修改成如下:
if = "approve" - :title="title"
- :width="1200"
- :okText="okText"
- :visible="visible"
- :maskClosable="false"
- switchFullscreen
- @ok="handleApprove"
- @cancel="handleCancel">
- <erp-in-sheet-form ref="realForm" @ok="submitCallback" :disabled="disableSubmit"/>
-
- <j-modal v-else
- :title="title"
- :width="1200"
- :visible="visible"
- :maskClosable="false"
- switchFullscreen
- @ok="handleOk"
- :okButtonProps="{ class:{'jee-hidden': disableSubmit} }"
- @cancel="handleCancel">
- <erp-in-sheet-form ref="realForm" @ok="submitCallback" :disabled="disableSubmit"/>
- j-modal>
同时增加两个变量和一个方法
- data() {
- return {
- title:'',
- width:800,
- visible: false,
- disableSubmit: false,
- okText: "确定",
- approve: false,//审核
- }
- },
- methods:{
- handleApprove () {
- this.$refs.realForm.handleApprove();
- },
在ErpInSheetForm.vue文件里增加一个审批url
- url: {
- add: "/purchase/erpInSheet/add",
- edit: "/purchase/erpInSheet/edit",
- approvePass:"/purchase/erpInSheet/approvePass",
- queryById: "/purchase/erpInSheet/queryById",
- erpInSheetDetail: {
- list: '/purchase/erpInSheet/queryErpInSheetDetailByMainId'
- },
2、3 审核界面
