Commit 4c6551d1 authored by lenovo's avatar lenovo

物资模板添加发布功能

parent 419e0924
......@@ -97,6 +97,37 @@ public class ActSuppliesTemplateController extends BaseController {
return toAjax(actSuppliesTemplateService.updateSuppliesTemplate(sysSupplies));
}
/**
* 发布Excel模板
*/
@PreAuthorize("@ss.hasPermi('SuppliesTemplate:SuppliesTemplate:releaseStatus')")
@Log(title = "Excel模板", businessType = BusinessType.UPDATE)
@GetMapping("/releaseStatus/{ids}")
public AjaxResult releaseStatus(@PathVariable Long[] ids) {
return toAjax(actSuppliesTemplateService.releaseStatus(ids));
}
/**
* 下架Excel模板
*/
@PreAuthorize("@ss.hasPermi('SuppliesTemplate:SuppliesTemplate:offShelfStatus')")
@Log(title = "Excel模板", businessType = BusinessType.UPDATE)
@GetMapping("/offShelfStatus/{ids}")
public AjaxResult offShelfStatus(@PathVariable Long[] ids) {
return toAjax(actSuppliesTemplateService.offShelfStatus(ids));
}
/**
* 下架Excel模板
*/
@PreAuthorize("@ss.hasPermi('SuppliesTemplate:SuppliesTemplate:copyTemplate')")
@Log(title = "Excel模板", businessType = BusinessType.UPDATE)
@GetMapping("/copyTemplate/{id}")
public AjaxResult copyTemplate(@PathVariable Long id) {
String name = actSuppliesTemplateService.copyTemplate(id);
return AjaxResult.success("200",name);
}
/**
* 删除Excel模板
*/
......@@ -107,9 +138,9 @@ public class ActSuppliesTemplateController extends BaseController {
if (actSuppliesTemplateService.findall(ids).size()>0){
return AjaxResult.error("该模板下存在关联规则,请先删除关联规则!!!","操作失败");
}
// if (actSuppliesTemplateService.findall(ids).size()>0){
// return AjaxResult.error("该模板下存在关联规则,请先删除关联规则!!!","操作失败");
// }
return toAjax(actSuppliesTemplateService.deleteSuppliesTemplateByIds(ids));
}
......@@ -149,9 +180,9 @@ public class ActSuppliesTemplateController extends BaseController {
@GetMapping("/disable/{id}")
public AjaxResult setDisable(@PathVariable("id") Long id)
{
if(actSuppliesTemplateService.find(id).size()>0){
return AjaxResult.success("该物料下存在关联物料,请先删除关联物料!!!","操作失败");
}
// if(actSuppliesTemplateService.find(id).size()>0){
// return AjaxResult.success("该物料下存在关联物料,请先删除关联物料!!!","操作失败");
// }
System.out.println("开始处理【禁用物料总分类管理】的请求,参数:{}"+ id);
actSuppliesTemplateService.setDisable(id);
return AjaxResult.success();
......
......@@ -17,6 +17,8 @@ public interface ActSuppliesTemplateMapper
List<ActSuppliesTemplate> selectSuppliesTemplateById(Long id);
List<ActSuppliesTemplate> selectSuppliesTemplateByIdNoId(Long id);
int insertSuppliesTemplate(ActSuppliesTemplate sysSupplies);
// List<ActSuppliesTemplate> selectlistnameid();
......@@ -25,6 +27,8 @@ public interface ActSuppliesTemplateMapper
int deleteSuppliesTemplateByIds(Long[] ids);
int updateSuppliesTemplateByIds(Long[] ids);
List<ActSuppliesTemplate> saveTemplate(Long id);
List<Integer> findall(Long[] ids);
......@@ -33,4 +37,7 @@ public interface ActSuppliesTemplateMapper
List<String> findName();
List<ActSuppliesTemplate> saveTemplateStatus(Long[] ids);
int selectHistory(Long id);
}
......@@ -46,5 +46,9 @@ public interface ActSuppliesTemplateService
List<String> findName();
int releaseStatus(Long[] ids);
int offShelfStatus(Long[] ids);
String copyTemplate(Long id);
}
......@@ -3,13 +3,13 @@ package com.ruoyi.system.service.impl;
import com.ruoyi.common.core.domain.entity.SysUser;
import com.ruoyi.common.utils.DateUtils;
import com.ruoyi.common.utils.SecurityUtils;
import com.ruoyi.system.domain.ActSupplies;
import com.ruoyi.system.domain.ActSuppliesTemplate;
import com.ruoyi.system.mapper.ActSuppliesTemplateMapper;
import com.ruoyi.system.service.ActSuppliesTemplateService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.LinkedList;
import java.util.List;
/**
......@@ -58,7 +58,37 @@ public class ActSuppliesTemplateServiceImpl implements ActSuppliesTemplateServic
@Override
public int deleteSuppliesTemplateByIds(Long[] ids) {
return actSuppliesTemplateMapper.deleteSuppliesTemplateByIds(ids);
List<ActSuppliesTemplate> actSuppliesTemplate = actSuppliesTemplateMapper.saveTemplateStatus(ids);
List<Long> idsd = new LinkedList<>();
List<Long> idsu = new LinkedList<>();
for (int i=0;i<actSuppliesTemplate.size();i++) {
if (actSuppliesTemplate.get(i).getStatus()==1) {
idsd.add(actSuppliesTemplate.get(i).getId());
} else {
int count = actSuppliesTemplateMapper.selectHistory(actSuppliesTemplate.get(i).getId());
if(count>0){
idsu.add(actSuppliesTemplate.get(i).getId());
}else {
idsd.add(actSuppliesTemplate.get(i).getId());
}
}
}
if (idsd.size()>0){
actSuppliesTemplateMapper.deleteSuppliesTemplateByIds(idsd.toArray(idsd.toArray(new Long[0])));
}else if (idsu.size()>0){
actSuppliesTemplateMapper.updateSuppliesTemplateByIds(idsu.toArray(idsu.toArray(new Long[0])));
}
return 1;
}
@Override
......@@ -91,6 +121,69 @@ public class ActSuppliesTemplateServiceImpl implements ActSuppliesTemplateServic
return actSuppliesTemplateMapper.findName();
}
@Override
public int releaseStatus(Long[] ids) {
List<ActSuppliesTemplate> actSuppliesTemplate = actSuppliesTemplateMapper.saveTemplateStatus(ids);
for (int i =0;i<actSuppliesTemplate.size();i++) {
SysUser user = SecurityUtils.getLoginUser().getUser();
actSuppliesTemplate.get(i).setUpdateBy(user.getUserName());
actSuppliesTemplate.get(i).setUpdateTime(DateUtils.getNowDate());
if (actSuppliesTemplate.get(i).getStatus() > 0){
actSuppliesTemplate.get(i).setStatus(0);
actSuppliesTemplateMapper.updateSuppliesTemplate(actSuppliesTemplate.get(i));
}
}
return 1;
}
@Override
public int offShelfStatus(Long[] ids) {
List<ActSuppliesTemplate> actSuppliesTemplate = actSuppliesTemplateMapper.saveTemplateStatus(ids);
for (int i =0;i<actSuppliesTemplate.size();i++){
SysUser user = SecurityUtils.getLoginUser().getUser();
actSuppliesTemplate.get(i).setUpdateBy(user.getUserName());
actSuppliesTemplate.get(i).setUpdateTime(DateUtils.getNowDate());
if (actSuppliesTemplate.get(i).getStatus() ==0){
int count = actSuppliesTemplateMapper.selectHistory(actSuppliesTemplate.get(i).getId());
if (count == 0){
actSuppliesTemplate.get(i).setStatus(1);
actSuppliesTemplateMapper.updateSuppliesTemplate(actSuppliesTemplate.get(i));
}else {
actSuppliesTemplate.get(i).setStatus(2);
actSuppliesTemplateMapper.updateSuppliesTemplate(actSuppliesTemplate.get(i));
}
}
}
return 1;
}
@Override
public String copyTemplate(Long id) {
List<ActSuppliesTemplate> actSuppliesTemplates = actSuppliesTemplateMapper.selectSuppliesTemplateByIdNoId(id);
actSuppliesTemplates.get(0).setStatus(1);
SysUser user = SecurityUtils.getLoginUser().getUser();
actSuppliesTemplates.get(0).setCreateBy(user.getCreateBy());
actSuppliesTemplates.get(0).setCreateTime(DateUtils.getNowDate());
actSuppliesTemplateMapper.insertSuppliesTemplate(actSuppliesTemplates.get(0));
return actSuppliesTemplates.get(0).getTemplateName();
}
private void updateStatusById(Long id, Integer status){
String[] statusText={"禁用","启用"};
......
......@@ -51,11 +51,19 @@
where id = #{id}
</select>
<select id="saveTemplate" parameterType="Long" resultMap="SuppliesTemplateResult">
<select id="selectSuppliesTemplateByIdNoId" parameterType="Long" resultMap="SuppliesTemplateResult">
<include refid="selectSuppliesTemplateVo"/>
where id = #{id}
</select>
<select id="saveTemplate" parameterType="Long" resultMap="SuppliesTemplateResult">
select det_id, template_name, template_content, status, create_by, create_time, update_by, update_time from act_supplies_template where id = #{id}
</select>
<select id="selectHistory" parameterType="Long" resultType="Integer">
SELECT COUNT(template_id) FROM act_supplies_historydata where template_id = #{id}
</select>
<insert id="insertSuppliesTemplate" parameterType="ActSuppliesTemplate" useGeneratedKeys="true" keyProperty="id">
insert into act_supplies_template
<trim prefix="(" suffix=")" suffixOverrides=",">
......@@ -105,5 +113,19 @@
#{id}
</foreach>
</delete>
<update id="updateSuppliesTemplateByIds" parameterType="String">
update act_supplies_template set status = 2 where id in
<foreach collection="array" item="id" open="(" separator="," close=")">
#{id}
</foreach>
</update>
<select id="saveTemplateStatus" parameterType="String" resultMap="SuppliesTemplateResult">
select id,status from act_supplies_template where id in
<foreach collection="array" item="id" open="(" separator="," close=")">
#{id}
</foreach>
</select>
</mapper>
import request from '@/utils/request'
import LuckyExcel from "luckyexcel";
//小物料转大物料
......@@ -55,6 +56,27 @@ export function updateSuppliesTemplate(data) {
})
}
export function releaseTemplateStatus(id){
return request({
url: '/SuppliesTemplate/SuppliesTemplate/releaseStatus/' + id,
method: 'get'
})
}
export function offShelfTemplateStatus(id){
return request({
url: '/SuppliesTemplate/SuppliesTemplate/offShelfStatus/' + id,
method: 'get'
})
}
export function CopyTemplate(id){
return request({
url: '/SuppliesTemplate/SuppliesTemplate/copyTemplate/' + id,
method: 'get'
})
}
// 删除Excel模板
export function delSuppliesTemplate(id) {
return request({
......
<template>
<div class="app-container">
<el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="68px">
<el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch"
label-width="68px">
<el-form-item label="模板名称" prop="templateName" label-width="100px">
<el-input
v-model="queryParams.templateName"
......@@ -12,8 +13,8 @@
</el-form-item>
<el-form-item label="状态" prop="status">
<el-select v-model="queryParams.status" placeholder="请选择状态" clearable @keyup.enter.native="handleQuery">
<el-option label="启用" :value="0"></el-option>
<el-option label="禁用" :value="1"></el-option>
<el-option label="未发布" :value="0"></el-option>
<el-option label="已发布" :value="1"></el-option>
</el-select>
</el-form-item>
<el-form-item>
......@@ -31,7 +32,8 @@
size="mini"
@click="handleAdd"
v-hasPermi="['SuppliesTemplate:SuppliesTemplate:add']"
>新增</el-button>
>新增
</el-button>
</el-col>
<el-col :span="1.5">
<el-button
......@@ -42,7 +44,8 @@
:disabled="single"
@click="handleUpdate"
v-hasPermi="['SuppliesTemplate:SuppliesTemplate:edit']"
>修改</el-button>
>修改
</el-button>
</el-col>
<el-col :span="1.5">
<el-button
......@@ -53,17 +56,30 @@
:disabled="multiple"
@click="handleDelete"
v-hasPermi="['SuppliesTemplate:SuppliesTemplate:remove']"
>删除</el-button>
>删除
</el-button>
</el-col>
<el-col :span="1.5">
<el-button
type="success"
plain
icon="el-icon-edit"
size="mini"
:disabled="multiple"
@click="releaseStatus"
v-hasPermi="['SuppliesTemplate:SuppliesTemplate:releaseStatus']"
>发布
</el-button>
</el-col>
<right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
</el-row>
<el-table v-loading="loading" :data="SuppliesTemplateList" @selection-change="handleSelectionChange">
<el-table-column type="selection" width="55" align="center" />
<el-table-column type="index" width="80" align="center" label="序号" :index="indexMethod" />
<el-table-column label="模板名称" align="center" prop="templateName" />
<el-table-column label="状态" align="center" prop="status" >
<el-table-column type="selection" width="55" align="center"/>
<el-table-column type="index" width="80" align="center" label="序号" :index="indexMethod"/>
<el-table-column label="模板名称" align="center" prop="templateName"/>
<el-table-column label="状态" align="center" prop="status">
<template slot-scope="scope">
<div>
<el-switch
......@@ -72,11 +88,35 @@
:active-value="0"
:inactive-value="1"
active-color="#13ce66"
inactive-color="#cccccc">
inactive-color="#cccccc"
active-text="已发布"
inactive-text="未发布">
</el-switch>
</div>
</template>
</el-table-column>
<el-table-column label="操作" align="center" class-name="small-padding fixed-width" prop="status">
<template slot-scope="scope">
<el-button
size="mini"
type="text"
icon="el-icon-edit"
@click="releaseStatus(scope.row)"
v-hasPermi="['SuppliesTemplate:SuppliesTemplate:status']"
:style="{display : scope.row.status>0?'':'none'}"
>发布
</el-button>
<el-button
size="mini"
type="text"
icon="el-icon-edit"
@click="offShelfStatus(scope.row)"
v-hasPermi="['SuppliesTemplate:SuppliesTemplate:status']"
:style="{display : scope.row.status===0?'':'none'}"
>下架
</el-button>
</template>
</el-table-column>
<el-table-column label="操作" align="center" class-name="small-padding fixed-width">
<template slot-scope="scope">
<el-button
......@@ -85,21 +125,33 @@
icon="el-icon-edit"
@click="handleSave(scope.row)"
v-hasPermi="['SuppliesTemplate:SuppliesTemplate']"
>详情</el-button>
>详情
</el-button>
<el-button
size="mini"
type="text"
icon="el-icon-edit"
@click="handleCopy(scope.row)"
v-hasPermi="['SuppliesTemplate:SuppliesTemplate:edit']"
>复制
</el-button>
<el-button
size="mini"
type="text"
icon="el-icon-edit"
@click="handleUpdate(scope.row)"
v-hasPermi="['SuppliesTemplate:SuppliesTemplate:edit']"
>修改</el-button>
:style="{display : scope.row.status===1?'':'none'}"
>修改
</el-button>
<el-button
size="mini"
type="text"
icon="el-icon-delete"
@click="handleDelete(scope.row)"
v-hasPermi="['SuppliesTemplate:SuppliesTemplate:remove']"
>删除</el-button>
>删除
</el-button>
</template>
</el-table-column>
</el-table>
......@@ -115,41 +167,29 @@
<!-- 添加或修改Excel模板对话框 -->
<el-dialog :title="title" :visible.sync="open" width="500px" append-to-body>
<el-form ref="form" :model="form" :rules="rules" label-width="80px">
<el-form-item label="状态" prop="status">
<el-select v-model="form.status" placeholder="请选择状态">
<el-option label="启用" :value="0"></el-option>
<el-option label="禁用" :value="1"></el-option>
</el-select>
</el-form-item>
<!-- <el-upload-->
<!-- ref="uploadRef"-->
<!-- class="upload-demo"-->
<!-- drag-->
<!-- show-file-list="true"-->
<!-- action="https://jsonplaceholder.typicode.com/posts/"-->
<!-- multiple-->
<!-- :before-upload="beforeUpload"-->
<!-- >-->
<!-- <i class="el-icon-upload"></i>-->
<!-- <div class="el-upload__text">将文件拖到此处,或<em>点击上传</em></div>-->
<!-- <div class="el-upload__tip" slot="tip">只能上传xlsx文件</div>-->
<!-- </el-upload>-->
<!-- <el-form-item label="状态" prop="status">-->
<!-- <el-select v-model="form.status" placeholder="请选择状态">-->
<!-- <el-option label="启用" :value="0"></el-option>-->
<!-- <el-option label="禁用" :value="1"></el-option>-->
<!-- </el-select>-->
<!-- </el-form-item>-->
<el-upload
ref="uploadRef"
class="upload-demo"
drag
action=""
multiple
:before-upload="beforeUpload"
:on-change="handleChange"
:show-file-list="fileListName.length > 0"
:file-list="fileListName"
>
<i class="el-icon-upload"></i>
<div class="el-upload__text">将文件拖到此处,或<em>点击上传</em></div>
<div class="el-upload__tip" slot="tip">只能上传xlsx文件</div>
</el-upload>
<el-progress v-if="showProgress" :percentage="uploadProgress"></el-progress>
</el-form>
<div slot="footer" class="dialog-footer">
......@@ -158,6 +198,7 @@
</div>
</el-dialog>
<div id="luckysheet" :style="{ position: positionValue, top: '0', left: '0', right: '0', bottom: '0' }"></div>
</div>
......@@ -168,10 +209,12 @@
#luckysheet_info_detail_title {
display: none;
}
#luckysheet_info_detail_update{
#luckysheet_info_detail_update {
display: none;
}
#luckysheet_info_detail_save{
#luckysheet_info_detail_save {
display: none;
}
......@@ -188,8 +231,8 @@ import {
delSuppliesTemplate,
addSuppliesTemplate,
updateSuppliesTemplate,
toggleEnable,toggleDisable,
listSuppliesTemplateId,findName
toggleEnable, toggleDisable,
listSuppliesTemplateId, findName, releaseTemplateStatus, offShelfTemplateStatus, CopyTemplate
} from "@/api/ruoyi-myLuckyexcel/myluckyexcel";
import $ from 'jquery';
import XLSX from 'xlsx';
......@@ -212,7 +255,7 @@ export default {
loading: true,
// 选中数组
ids: [],
name:[],
name: [],
// 非单个禁用
single: true,
// 非多个禁用
......@@ -233,6 +276,8 @@ export default {
// 是否显示弹出层
open: false,
open1: false,
showProgress: false,
uploadProgress: 0,
// 查询参数
queryParams: {
pageNum: 1,
......@@ -240,7 +285,7 @@ export default {
detId: null,
templateName: null,
templateContent: null,
status: 0,
status: null,
},
form: {},
rules: {},
......@@ -259,11 +304,10 @@ export default {
},
methods: {
/**启用 */
toggleEnable(SuppliesTemplate) {
console.log('你点击了【' + SuppliesTemplate.s + '】的开关控件,当前开关值:' + SuppliesTemplate.status);
let enableText = ['启用', '禁用'];
let enableText = ['已发布', '未发布'];
if (SuppliesTemplate.status === 0) {
toggleEnable(SuppliesTemplate.id).then((response) => {
if (response.code === 200) {
......@@ -308,9 +352,7 @@ export default {
/**上传事件 */
beforeUpload(file) {
//存在重复
findName(file.name).then(result => {
console.log(result.data)
if (result.data === "存在重复") {
......@@ -326,7 +368,6 @@ export default {
if (!isJpgOrPng) {
this.$message.error('只能上传xlsx文件');
}
LuckyExcel.transformExcelToLucky(file, (exportJson, lucksheetfile) => {
this.form.templateName = file.name;
this.form.templateContent = JSON.stringify(exportJson.sheets);
......@@ -429,6 +470,7 @@ export default {
this.getList();
});
} else {
this.form.status = 1;
addSuppliesTemplate(this.form).then(response => {
this.msgSuccess("新增成功");
this.open = false;
......@@ -485,7 +527,7 @@ export default {
/** 删除按钮操作*/
handleDelete(row) {
const ids = row.id || this.ids;
const name = row.templateName|| this.name;
const name = row.templateName || this.name;
this.$confirm('是否确认删除Excel模板编号为"' + name + '"的数据项?', "警告", {
confirmButtonText: "确定",
cancelButtonText: "取消",
......@@ -503,6 +545,73 @@ export default {
}).catch(() => {
})
},
releaseStatus(row) {
const ids = row.id || this.ids;
const name = row.templateName || this.name;
this.$confirm('是否确认发布模板名称为"' + name + '"的数据项?(发布之后无法修改!)', "警告", {
confirmButtonText: "确定",
cancelButtonText: "取消",
type: "warning"
}).then(function () {
return releaseTemplateStatus(ids);
}).then((result) => {
if (result.data === "发布失败") {
this.getList();
this.msgError("模板已发布");
} else {
this.getList();
this.msgSuccess("发布成功");
}
}).catch(() => {
})
},
offShelfStatus(row) {
const ids = row.id || this.ids;
const name = row.templateName || this.name;
this.$confirm('是否确认下架模板名称为"' + name + '"的数据项?(下架之后转换规则中将无法使用该模板!)', "警告", {
confirmButtonText: "确定",
cancelButtonText: "取消",
type: "warning"
}).then(function () {
return offShelfTemplateStatus(ids);
}).then((result) => {
if (result.data === "下架失败") {
this.getList();
this.msgError("下架失败");
} else {
this.getList();
this.msgSuccess("下架成功");
}
}).catch(() => {
})
},
handleCopy(row){
this.$confirm('是否确认复制名称为"' + name + '"的模板?(复制后名称会改变)', "警告", {
confirmButtonText: "确定",
cancelButtonText: "取消",
type: "warning"
}).then(function () {
return CopyTemplate(row.id);
}).then((result) => {
debugger
if (result.data === "复制失败") {
this.getList();
this.msgError("复制失败");
} else {
this.getList();
this.msgSuccess("复制成功,新模板名称为:“"+result.data+"");
}
}).catch(() => {
})
},
// /** 导出按钮操作 */
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment