当前位置: 首页 > news >正文

平定住房建设局网站四川城乡建设部网站首页

平定住房建设局网站,四川城乡建设部网站首页,华为邮箱注册,注册个网站怎么注册300rmb掏了个javavue2的小系统#xff0c;学习代码#xff0c;调整下申请流程。 原有的入库流程是#xff0c;库管#xff08;admin#xff09;提出采购申请给采购员#xff08;caigou#xff09;#xff0c;采购员采购入库时点击入库完成采购入库流程。 想弄清后端代…300rmb掏了个javavue2的小系统学习代码调整下申请流程。 原有的入库流程是库管admin提出采购申请给采购员caigou采购员采购入库时点击入库完成采购入库流程。 想弄清后端代码怎样流转申请需要一点点找。 从vue的采购申请页面找到请求的后端api地址 采购申请页面vue路由是 /admin/rurchase 对应的组件是 admin/rurchase/Rurchase 对应的vue代码地址是 src\views\admin\rurchase\RurchaseAdd.vue templatea-drawertitle新增采购申请:maskClosablefalseplacementright:closablefalse:visibleshow:width1200closeonClosestyleheight: calc(100% - 55px);overflow: auto;padding-bottom: 53px;a-form :formform layoutverticala-row :gutter20a-col :span12a-form-item label申请人 v-bindformItemLayouta-input v-decorator[applicant,{ rules: [{ required: true, message: 请输入申请人! }] }]//a-form-item/a-cola-col :span24a-form-item label备注消息 v-bindformItemLayouta-textarea :rows4 v-decorator[content,{ rules: [{ required: true, message: 请输入备注消息! }] }]//a-form-item/a-cola-col :span24a-table :columnscolumns :data-sourcedataListtemplate slotnameShow slot-scopetext, recorda-input v-modelrecord.name/a-input/templatetemplate slottypeShow slot-scopetext, recorda-input v-modelrecord.type/a-input/templatetemplate slottypeIdShow slot-scopetext, recorda-select v-modelrecord.typeId stylewidth: 100%a-select-option v-for(item, index) in consumableType :valueitem.id :keyindex{{ item.name }}/a-select-option/a-select/templatetemplate slotunitShow slot-scopetext, recorda-input v-modelrecord.unit/a-input/templatetemplate slotamountShow slot-scopetext, recorda-input-number v-modelrecord.amount :min1 :step1//templatetemplate slotpriceShow slot-scopetext, recorda-input-number v-modelrecord.price :min1//template/a-tablea-button clickdataAdd typeprimary ghost sizelarge stylemargin-top: 10px;width: 100%新增物品/a-button/a-col/a-row/a-formdiv classdrawer-bootom-buttona-popconfirm title确定放弃编辑 confirmonClose okText确定 cancelText取消a-button stylemargin-right: .8rem取消/a-button/a-popconfirma-button clickhandleSubmit typeprimary :loadingloading提交/a-button/div/a-drawer /templatescript import {mapState} from vuex const formItemLayout {labelCol: { span: 24 },wrapperCol: { span: 24 } } export default {name: RurchaseAdd,props: {rurchaseAddVisiable: {default: false}},computed: {...mapState({currentUser: state state.account.user}),show: {get: function () {return this.rurchaseAddVisiable},set: function () {}},columns () {return [{title: 物品名称,dataIndex: name,scopedSlots: {customRender: nameShow}}, {title: 型号,dataIndex: type,scopedSlots: {customRender: typeShow}}, {title: 数量,dataIndex: amount,scopedSlots: {customRender: amountShow}}, {title: 所属类型,dataIndex: typeId,width: 200,scopedSlots: {customRender: typeIdShow}}, {title: 单位,dataIndex: unit,scopedSlots: {customRender: unitShow}}, {title: 单价,dataIndex: price,scopedSlots: {customRender: priceShow}}]}},data () {return {formItemLayout,form: this.$form.createForm(this),loading: false,dataList: [],consumableType: []}},mounted () {this.getConsumableType()},methods: {getConsumableType () {this.$get(/cos/consumable-type/list).then((r) {this.consumableType r.data.data})},dataAdd () {this.dataList.push({name: , type: , typeId: , unit: , amount: , price: })},reset () {this.loading falsethis.form.resetFields()},onClose () {this.reset()this.$emit(close)},handleSubmit () {if (this.dataList.length ! 0) {let price 0this.dataList.forEach(item {price item.price * item.amount})this.form.validateFields((err, values) {if (!err) {values.price pricevalues.goods JSON.stringify(this.dataList)this.loading truethis.$post(/cos/rurchase-request, {...values}).then((r) {this.reset()this.$emit(success)}).catch(() {this.loading false})}})} else {this.$message.warning(请添加记录)}}} } /scriptstyle scoped/style在前端代码中找到提交申请的后台api接口地址是 /cos/rurchase-request 根据后台接口地址找到对应的java controller类和方法 cc.mrbird.febs.cos.controller.RurchaseRequestController#save 这里用到了RESTfultool插件 package cc.mrbird.febs.cos.controller;import cc.mrbird.febs.common.utils.R; import cc.mrbird.febs.cos.entity.RurchaseRequest; import cc.mrbird.febs.cos.service.IRurchaseRequestService; import cn.hutool.core.date.DateUtil; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import lombok.RequiredArgsConstructor; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*;import java.util.Date; import java.util.List;/*** author FanK*/ RestController RequestMapping(/cos/rurchase-request) RequiredArgsConstructor(onConstructor __(Autowired)) public class RurchaseRequestController {private final IRurchaseRequestService rurchaseRequestService;/*** 采购申请入库* param rurchaseRequest* return*/PostMapping(/rurchasePut)public R rurchasePut(RurchaseRequest rurchaseRequest) {return R.ok(rurchaseRequestService.rurchasePut(rurchaseRequest));}/*** 分页获取采购申请* param page* param rurchaseRequest* return*/GetMapping(/page)public R page(Page page, RurchaseRequest rurchaseRequest) {return R.ok(rurchaseRequestService.rurchaseRequestByPage(page, rurchaseRequest));}/*** 添加采购申请* param rurchaseRequest* return*/PostMappingpublic R save(RurchaseRequest rurchaseRequest) {rurchaseRequest.setCreateDate(DateUtil.formatDateTime(new Date()));return R.ok(rurchaseRequestService.rurchaseRequestAdd(rurchaseRequest));}/*** 修改采购申请* param rurchaseRequest* return*/PutMappingpublic R edit(RurchaseRequest rurchaseRequest) {return R.ok(rurchaseRequestService.updateById(rurchaseRequest));}/*** 删除采购申请* param ids* return*/DeleteMapping(/{ids})public R deleteByIds(PathVariable(ids) ListInteger ids) {return R.ok(rurchaseRequestService.removeByIds(ids));}}通过其调用的函数 rurchaseRequestService.rurchaseRequestAdd(rurchaseRequest) mybatis的mapper cc.mrbird.febs.cos.service.IRurchaseRequestService package cc.mrbird.febs.cos.service;import cc.mrbird.febs.cos.entity.RurchaseRequest; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.IService; import org.apache.ibatis.annotations.Param;import java.util.LinkedHashMap;/*** author FanK*/ public interface IRurchaseRequestService extends IServiceRurchaseRequest {// 分页获取采购申请IPageLinkedHashMapString, Object rurchaseRequestByPage(Page page, RurchaseRequest rurchaseRequest);// 添加采购申请Boolean rurchaseRequestAdd(RurchaseRequest rurchaseRequest);// 采购申请入库Boolean rurchasePut(RurchaseRequest rurchaseRequest); }IRurchaseRequestService的实现类 cc.mrbird.febs.cos.service.impl.RurchaseRequestServiceImpl package cc.mrbird.febs.cos.service.impl;import cc.mrbird.febs.cos.entity.GoodsBelong; import cc.mrbird.febs.cos.entity.RurchaseRequest; import cc.mrbird.febs.cos.dao.RurchaseRequestMapper; import cc.mrbird.febs.cos.entity.StockInfo; import cc.mrbird.febs.cos.entity.StockPut; import cc.mrbird.febs.cos.service.IGoodsBelongService; import cc.mrbird.febs.cos.service.IRurchaseRequestService; import cc.mrbird.febs.cos.service.IStockInfoService; import cc.mrbird.febs.cos.service.IStockPutService; import cn.hutool.core.date.DateUtil; import cn.hutool.json.JSONArray; import cn.hutool.json.JSONUtil; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import lombok.RequiredArgsConstructor; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service;import java.util.Date; import java.util.LinkedHashMap; import java.util.List;/*** author FanK*/ Service RequiredArgsConstructor(onConstructor __(Autowired)) public class RurchaseRequestServiceImpl extends ServiceImplRurchaseRequestMapper, RurchaseRequest implements IRurchaseRequestService {private final IGoodsBelongService goodsBelongService;private final IStockPutService stockPutService;private final IStockInfoService stockInfoService;Overridepublic IPageLinkedHashMapString, Object rurchaseRequestByPage(Page page, RurchaseRequest rurchaseRequest) {return baseMapper.rurchaseRequestByPage(page, rurchaseRequest);}Overridepublic Boolean rurchaseRequestAdd(RurchaseRequest rurchaseRequest) {rurchaseRequest.setNum(RUR-new Date().getTime());JSONArray array JSONUtil.parseArray(rurchaseRequest.getGoods());ListGoodsBelong goodsBelongList JSONUtil.toList(array, GoodsBelong.class);rurchaseRequest.setStep(0);this.save(rurchaseRequest);goodsBelongList.forEach(item - {item.setCreateDate(DateUtil.formatDateTime(new Date()));item.setNum(rurchaseRequest.getNum());});return goodsBelongService.saveBatch(goodsBelongList);}Overridepublic Boolean rurchasePut(RurchaseRequest rurchaseRequest) {JSONArray array JSONUtil.parseArray(rurchaseRequest.getGoods());ListGoodsBelong goodsBelongList JSONUtil.toList(array, GoodsBelong.class);// 添加入库单StockPut stockPut new StockPut();stockPut.setContent(rurchaseRequest.getRurchaseContent());stockPut.setCreateDate(DateUtil.formatDateTime(new Date()));stockPut.setCustodian(rurchaseRequest.getCustodian());stockPut.setPutUser(rurchaseRequest.getPutUser());stockPut.setPrice(rurchaseRequest.getPrice());stockPut.setNum(PUT-new Date().getTime());stockPutService.save(stockPut);goodsBelongList.forEach(item - {item.setCreateDate(DateUtil.formatDateTime(new Date()));item.setNum(stockPut.getNum());// 判断库房物品是否存在StockInfo stockInfo stockInfoService.getOne(Wrappers.StockInfolambdaQuery().eq(StockInfo::getName, item.getName()).eq(StockInfo::getTypeId, item.getTypeId()).eq(StockInfo::getIsIn, 0));if (stockInfo ! null) {// 更改库房数据stockInfoService.update(Wrappers.StockInfolambdaUpdate().set(StockInfo::getAmount, stockInfo.getAmount()item.getAmount()).set(StockInfo::getPrice, stockInfo.getPrice()).eq(StockInfo::getName, stockInfo.getName()));} else {// 重新添加库房数据StockInfo stock new StockInfo();stock.setName(item.getName());stock.setAmount(item.getAmount());stock.setCreateDate(DateUtil.formatDateTime(new Date()));stock.setType(item.getType());stock.setTypeId(item.getTypeId());stock.setUnit(item.getUnit());stock.setPrice(item.getPrice());stock.setIsIn(0);stockInfo stock;stockInfoService.save(stock);}// 添加入库记录StockInfo stockInfoPut new StockInfo();stockInfoPut.setParentId(stockInfo.getId());stockInfoPut.setName(item.getName());stockInfoPut.setAmount(item.getAmount());stockInfoPut.setCreateDate(DateUtil.formatDateTime(new Date()));stockInfoPut.setType(item.getType());stockInfoPut.setTypeId(item.getTypeId());stockInfoPut.setUnit(item.getUnit());stockInfoPut.setPrice(item.getPrice());stockInfoPut.setIsIn(1);stockInfoService.save(stockInfoPut);// 添加所属信息GoodsBelong goodsBelong new GoodsBelong();goodsBelong.setNum(stockPut.getNum());goodsBelong.setCreateDate(DateUtil.formatDateTime(new Date()));goodsBelong.setAmount(item.getAmount());goodsBelong.setName(item.getName());goodsBelong.setPrice(item.getPrice());goodsBelong.setType(item.getType());goodsBelong.setTypeId(item.getTypeId());goodsBelong.setUnit(item.getUnit());goodsBelongService.save(goodsBelong);});// 修改状态this.update(Wrappers.RurchaseRequestlambdaUpdate().set(RurchaseRequest::getStep, 1).eq(RurchaseRequest::getId, rurchaseRequest.getId()));return true;} }从RurchaseRequestServiceImpl#rurchaseRequestAdd方法中找到两个操作数据库的关键函数 this.save(rurchaseRequest); goodsBelongService.saveBatch(goodsBelongList); 这两个方法都是继承自mybatisplus的操作数据库的公共方法可以在类的定义中找到对应的java实体类 public class RurchaseRequestServiceImpl extends ServiceImplRurchaseRequestMapper, RurchaseRequest implements IRurchaseRequestService public interface IGoodsBelongService extends IServiceGoodsBelong 关于mybatisplus的使用方法参考 Mybatis-plus之IService的使用_iservice mybatisplus-CSDN博客 https://www.cnblogs.com/kaibindirver/p/16086336.html 不明白为什么extends ServiceImplRurchaseRequestMapper, RurchaseRequest后还要implements IRurchaseRequestService需要看源码 找到java实体类 cc.mrbird.febs.cos.entity.GoodsBelong cc.mrbird.febs.cos.entity.RurchaseRequest package cc.mrbird.febs.cos.entity;import java.io.Serializable; import java.math.BigDecimal;import com.baomidou.mybatisplus.annotation.IdType; import com.baomidou.mybatisplus.annotation.TableId; import lombok.Data; import lombok.EqualsAndHashCode; import lombok.experimental.Accessors;/*** 物品所属** author FanK*/ Data EqualsAndHashCode(callSuper false) Accessors(chain true) public class GoodsBelong implements Serializable {private static final long serialVersionUID 1L;TableId(value ID, type IdType.AUTO)private Integer id;/*** 物品名称*/private String name;/*** 型号*/private String type;/*** 单位*/private String unit;/*** 数量*/private Integer amount;/*** 耗材类型*/private Integer typeId;/*** 申请/入库单号*/private String num;/*** 单价*/private BigDecimal price;/*** 日期*/private String createDate;}package cc.mrbird.febs.cos.entity;import java.math.BigDecimal; import java.time.LocalDateTime; import java.io.Serializable;import com.baomidou.mybatisplus.annotation.IdType; import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableId; import lombok.Data; import lombok.EqualsAndHashCode; import lombok.experimental.Accessors;/*** 采购申请** author FanK*/ Data EqualsAndHashCode(callSuper false) Accessors(chain true) public class RurchaseRequest implements Serializable {private static final long serialVersionUID 1L;TableId(value ID, type IdType.AUTO)private Integer id;/*** 采购申请单号*/private String num;/*** 采购说明*/private String content;/*** 预计金额*/private BigDecimal price;/*** 采购流程 0是正在采购 1是入库完成*/private Integer process;/*** 当前流程*/private Integer step;/*** 申请人*/private String applicant;/*** 创建时间*/private String createDate;TableField(exist false)private String goods;TableField(exist false)private String custodian;TableField(exist false)private String putUser;TableField(exist false)private String rurchaseContent;}从mybatisplus的表名对应关系可以找到数据库的两张表 goods_belong 名类型长度小数点注释idint主键namevarchar200物品名称typevarchar200型号unitvarchar30单位amountint数量type_idint耗材类型numvarchar200申请/入库单号pricedecimal102单价create_datedatetime日期  rurchase_request 名类型长度小数点注释idint主键numvarchar200采购申请单号contentvarchar300采购说明pricedecimal102预计金额processtinyint采购流程 0是正在采购 1是入库完成steptinyint当前流程applicantvarchar200申请人create_datedatetime创建时间 库管admin新增一个采购申请会在rurchase_request增加一条数据对应这个申请同时会在goods_belong中新增若干条数据对应申请表中的若干项物资 申请记录 ps其中step字段的值表示当前流程0表示等待采购1表示入库完成 申请的物品清单 在采购员账号caigou中可以办理采购入库 当入库后库存就会增加对应的库存表会变化涉及到多张表 stock_info stock_put goods_belong rurchase_request cc.mrbird.febs.cos.service.impl.RurchaseRequestServiceImpl#rurchasePut Overridepublic Boolean rurchasePut(RurchaseRequest rurchaseRequest) {JSONArray array JSONUtil.parseArray(rurchaseRequest.getGoods());ListGoodsBelong goodsBelongList JSONUtil.toList(array, GoodsBelong.class);// 添加入库单StockPut stockPut new StockPut();stockPut.setContent(rurchaseRequest.getRurchaseContent());stockPut.setCreateDate(DateUtil.formatDateTime(new Date()));stockPut.setCustodian(rurchaseRequest.getCustodian());stockPut.setPutUser(rurchaseRequest.getPutUser());stockPut.setPrice(rurchaseRequest.getPrice());stockPut.setNum(PUT-new Date().getTime());stockPutService.save(stockPut);goodsBelongList.forEach(item - {item.setCreateDate(DateUtil.formatDateTime(new Date()));item.setNum(stockPut.getNum());// 判断库房物品是否存在StockInfo stockInfo stockInfoService.getOne(Wrappers.StockInfolambdaQuery().eq(StockInfo::getName, item.getName()).eq(StockInfo::getTypeId, item.getTypeId()).eq(StockInfo::getIsIn, 0));if (stockInfo ! null) {// 更改库房数据stockInfoService.update(Wrappers.StockInfolambdaUpdate().set(StockInfo::getAmount, stockInfo.getAmount()item.getAmount()).set(StockInfo::getPrice, stockInfo.getPrice()).eq(StockInfo::getName, stockInfo.getName()));} else {// 重新添加库房数据StockInfo stock new StockInfo();stock.setName(item.getName());stock.setAmount(item.getAmount());stock.setCreateDate(DateUtil.formatDateTime(new Date()));stock.setType(item.getType());stock.setTypeId(item.getTypeId());stock.setUnit(item.getUnit());stock.setPrice(item.getPrice());stock.setIsIn(0);stockInfo stock;stockInfoService.save(stock);}// 添加入库记录StockInfo stockInfoPut new StockInfo();stockInfoPut.setParentId(stockInfo.getId());stockInfoPut.setName(item.getName());stockInfoPut.setAmount(item.getAmount());stockInfoPut.setCreateDate(DateUtil.formatDateTime(new Date()));stockInfoPut.setType(item.getType());stockInfoPut.setTypeId(item.getTypeId());stockInfoPut.setUnit(item.getUnit());stockInfoPut.setPrice(item.getPrice());stockInfoPut.setIsIn(1);stockInfoService.save(stockInfoPut);// 添加所属信息GoodsBelong goodsBelong new GoodsBelong();goodsBelong.setNum(stockPut.getNum());goodsBelong.setCreateDate(DateUtil.formatDateTime(new Date()));goodsBelong.setAmount(item.getAmount());goodsBelong.setName(item.getName());goodsBelong.setPrice(item.getPrice());goodsBelong.setType(item.getType());goodsBelong.setTypeId(item.getTypeId());goodsBelong.setUnit(item.getUnit());goodsBelongService.save(goodsBelong);});// 修改状态this.update(Wrappers.RurchaseRequestlambdaUpdate().set(RurchaseRequest::getStep, 1).eq(RurchaseRequest::getId, rurchaseRequest.getId()));return true;} 入库后goods_belong会增加三条入库操作记录
http://www.pierceye.com/news/782406/

相关文章:

  • 邯郸做网站最好的公司彩票网站制作
  • 酒店团购的网站建设网站建设的一些原理
  • 做淘宝网站需要什么网站设置快捷键
  • 网站建设合同验收提供网站建设报
  • 湛江市建设规划局网站如何干电商
  • 东莞网站制作很好 乐云践新佛山网站建设解决方案
  • 哪个网站百度收录快海报模板网址
  • 绍兴高兴区建设网站怎么查网站制作空间有效期
  • 有没人做阿里巴巴网站维护的企业网站搭建 网络活动策划
  • 在线手机网站预览网站建设费归入长期待摊费用
  • 怎么制作个人网站企业起名
  • 做鞋子网站的域名如何拥有一个自己的网站
  • 室内设计网站资源加速器网页版
  • 一个网站可以优化多少关键词想做网络推广如何去做
  • 家装公司网站建设方案装饰公司设计用什么软件
  • 做网站与运营一般多少钱桂林象鼻山简介
  • 丰南建设网站知识产权网站模板
  • 海外注册域名的网站给家乡做网站
  • 怎么做带数据库的网站重庆市建设工程信息网络
  • 做网站的越来越少了西宁网站建设多少钱
  • 环翠区网站建设做网站 用 显示器
  • 没学过计算机开始学做网站给别人做网站收多少钱
  • 网站建设的功能都需要有哪些方面大气一点的公司名字
  • 湘潭做网站价格问下磐石网络价格网站
  • 网站备案后可以更换域名吗2345网页游戏
  • 登录浏览器是建设银行移动门户网站广州专业做外贸网站
  • 思明区建设局网站微信 网页版
  • 淘宝客怎么做自己的网站搜索引擎营销案例分析题
  • 给女朋友做网站的素材友情链接是什么意思
  • 成都微信网站建设多少钱南平抖音搜索排名seo软件