• 基于Jeecgboot前后端分离的ERP系统开发代码生成(四)


        今天主要做一个采购入库单的功能

        这个是主从表,所以也是通过online表单设计完成基本功能

       1、采购入库单

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

     选择商品

    2、审核通过

          对于库存的更新,需要进行审核通过后才去更新库存,所以需要一些统一的逻辑与接口,同时vue界面也是。

        2、1 后端代码

           先实现审核标志,后续实现库存更新,库存更新以后通过统一的类来实现

       

    1. @Override
    2. @Transactional
    3. public Result approvePass(String id) {
    4. ErpInSheet erpInSheet = erpInSheetMapper.selectById(id);
    5. if (erpInSheet == null) {
    6. return Result.error("采购入库单不存在!");
    7. }
    8. if (erpInSheet.getStatus() == 2 ) {
    9. return Result.error("采购入库单已审核通过,不能再次审核!");
    10. }
    11. erpInSheet.setStatus(2); //审核通过标志 2代表通过
    12. SysUser loginUser = iErpThirdService.getLoginUser();
    13. LambdaUpdateWrapper updateOrderWrapper = Wrappers.lambdaUpdate(ErpInSheet.class)
    14. .set(ErpInSheet::getApproveBy, loginUser.getUsername())
    15. .set(ErpInSheet::getApproveTime, LocalDateTime.now())
    16. .eq(ErpInSheet::getId, erpInSheet.getId());
    17. if(erpInSheetMapper.update(erpInSheet, updateOrderWrapper) != 1) {
    18. return Result.error("采购入库单信息已过期,请刷新重试!");
    19. }
    20. return Result.OK("审核通过完成");
    21. }

        2、2 前端实现

             需要建立两个独立Mixns,分别是 NbcioListMixin.js 和NbcioTableModelMixin.js

            目前在NbcioListMixin.js先增加下面代码,打开审批按钮的时候,需要修改一些form值,以便变成审核按钮及相关逻辑

    1. handleApprove:function(record){
    2. this.$refs.modalForm.approve=true;
    3. this.$refs.modalForm.edit(record);
    4. this.$refs.modalForm.title="审核详情";
    5. this.$refs.modalForm.okText="审核通过"
    6. this.$refs.modalForm.disableSubmit = true;
    7. },

          目前在 NbcioTableModelMixin.js 先增加下面的审核通过后的逻辑

    1. /** 审核通过按钮点击事件 */
    2. handleApprove() {
    3. let url = this.url.approvePass, method = 'post'
    4. console.log("handleApprove this.model.id=",this.model.id)
    5. this.confirmLoading = true
    6. httpAction(url, this.model.id, method).then((res) => {
    7. if (res.success) {
    8. this.$message.success(res.message)
    9. this.$emit('ok')
    10. this.close()
    11. } else {
    12. this.$message.warning(res.message)
    13. }
    14. }).finally(() => {
    15. this.confirmLoading = false
    16. })

          在采购入库单里进行修改,原先的minxs都要修改成新的,

          

      原先的ErpInSheetModal.vue里的j-modal修改成如下:

    1. if = "approve"
    2. :title="title"
    3. :width="1200"
    4. :okText="okText"
    5. :visible="visible"
    6. :maskClosable="false"
    7. switchFullscreen
    8. @ok="handleApprove"
    9. @cancel="handleCancel">
    10. <erp-in-sheet-form ref="realForm" @ok="submitCallback" :disabled="disableSubmit"/>
    11. <j-modal v-else
    12. :title="title"
    13. :width="1200"
    14. :visible="visible"
    15. :maskClosable="false"
    16. switchFullscreen
    17. @ok="handleOk"
    18. :okButtonProps="{ class:{'jee-hidden': disableSubmit} }"
    19. @cancel="handleCancel">
    20. <erp-in-sheet-form ref="realForm" @ok="submitCallback" :disabled="disableSubmit"/>
    21. j-modal>

    同时增加两个变量和一个方法

    1. data() {
    2. return {
    3. title:'',
    4. width:800,
    5. visible: false,
    6. disableSubmit: false,
    7. okText: "确定",
    8. approve: false,//审核
    9. }
    10. },
    11. methods:{
    12. handleApprove () {
    13. this.$refs.realForm.handleApprove();
    14. },

    在ErpInSheetForm.vue文件里增加一个审批url

    1. url: {
    2. add: "/purchase/erpInSheet/add",
    3. edit: "/purchase/erpInSheet/edit",
    4. approvePass:"/purchase/erpInSheet/approvePass",
    5. queryById: "/purchase/erpInSheet/queryById",
    6. erpInSheetDetail: {
    7. list: '/purchase/erpInSheet/queryErpInSheetDetailByMainId'
    8. },

      2、3 审核界面

     

  • 相关阅读:
    java生成excel,uniapp微信小程序接收excel并打开
    Linux_7_软件管理
    【Shell】Shell脚本入门
    Java的虚拟线程(协程)特性开启预览阶段,多线程开发的难度将大大降低
    Java回顾-泛型
    Kettle Spoon数据交换工具图文说明
    正则表达式基本概念及常用匹配模式代码
    跨域的五种解决方案
    什么是顶点颜色
    机器学习之信用卡欺诈识别(严重类失衡数据建模)
  • 原文地址:https://blog.csdn.net/qq_40032778/article/details/128019160