Merge branch 'dev-cq-bug' of http://192.168.0.56:3000/bonus/devicesmgt into dev-cq-bug

This commit is contained in:
zzyuan 2024-04-25 14:52:07 +08:00
commit 41601ff933
20 changed files with 161 additions and 199 deletions

View File

@ -243,7 +243,7 @@ public class TmTaskController extends BaseController {
} else {
return AjaxResult.error("创建任务失败");
}
return AjaxResult.success("任务创建成功,已完成");
return AjaxResult.success("任务创建成功");
} catch (Exception e) {
return AjaxResult.error("创建任务失败," + e.getCause().toString() + "," + e.getMessage());
}

View File

@ -131,4 +131,11 @@ public interface TmTaskMapper {
* @return
*/
String selectTaskNumByMonths(@Param("date") Date nowDate, @Param("taskType") Integer taskType);
/**
* 根据任务id删除任务协议关联表
* @param taskId
* @return
*/
int deleteTaskAgreementByTaskId(@Param("taskId") String taskId);
}

View File

@ -954,10 +954,11 @@ public class TmTaskServiceImpl implements TmTaskService {
public AjaxResult deleteByPrimaryKey(String taskId) {
int i = tmTaskMapper.deleteTaskByPrimaryKey(taskId);
int j = tmTaskMapper.deleteTaskInfoByTaskId(taskId);
if (i == 1 && j == 1) {
int m = tmTaskMapper.deleteTaskAgreementByTaskId(taskId);
if (i == 1 && j == 1 && m == 1) {
return AjaxResult.success("删除成功");
} else if (i < 1 || j < 1) {
return AjaxResult.error("删除失败,任务表或信息表未删除!");
} else if (i < 1 || j < 1 || m < 1) {
return AjaxResult.error("删除失败,任务表或信息表或任务协议关联表未删除!");
} else {
return AjaxResult.error("删除失败请检查任务ID是否正确!!");
}

View File

@ -78,9 +78,9 @@ public class MaPropInfoController extends BaseController {
*/
@ApiOperation(value = "根据类型名称查询类型")
@GetMapping("/getMaTypeList")
public TableDataInfo getMaTypeList(String typeName) {
public TableDataInfo getMaTypeList(MaPropInfo maPropInfo) {
startPage();
List<MaType> maTypeList = maPropInfoService.selectMaType(typeName);
List<MaType> maTypeList = maPropInfoService.selectMaType(maPropInfo);
return getDataTable(maTypeList);
}
@ -170,13 +170,13 @@ public class MaPropInfoController extends BaseController {
* 资产属性配置导出
*
* @param response
* @param typeName
* @param maPropInfo
*/
@ApiOperation(value = "资产属性配置导出")
@Log(title = "资产属性配置导出", businessType = BusinessType.EXPORT)
@PostMapping("/exportConfig")
public void exportConfig(HttpServletResponse response, String typeName) {
List<MaType> list = maPropInfoService.selectMaType(typeName);
public void exportConfig(HttpServletResponse response, MaPropInfo maPropInfo) {
List<MaType> list = maPropInfoService.selectMaType(maPropInfo);
ExcelUtil<MaType> util = new ExcelUtil<MaType>(MaType.class);
util.exportExcel(response, list, "资产属性配置数据");
}

View File

@ -6,6 +6,8 @@ import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.sql.Timestamp;
import java.util.List;
@Data
public class BmProjectInfo {
/**工程ID*/
@ -68,6 +70,17 @@ public class BmProjectInfo {
@ApiModelProperty(value = "工程类型名称")
private String typeName;
/** 导出选中列表 */
private List<Long> dataCondition;
public List<Long> getDataCondition() {
return dataCondition;
}
public void setDataCondition(List<Long> dataCondition) {
this.dataCondition = dataCondition;
}
public long getProId() {
return proId;
}

View File

@ -6,6 +6,7 @@ import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.sql.Timestamp;
import java.util.List;
@Data
public class BmProjectLot {
@ -125,6 +126,17 @@ public class BmProjectLot {
@ApiModelProperty(value = "工程类型名称")
private String typeName;
/** 导出选中列表 */
private List<Long> dataCondition;
public List<Long> getDataCondition() {
return dataCondition;
}
public void setDataCondition(List<Long> dataCondition) {
this.dataCondition = dataCondition;
}
public long getLotId() {
return lotId;
}

View File

@ -4,6 +4,8 @@ package com.bonus.sgzb.base.domain;
import com.bonus.sgzb.common.core.annotation.Excel;
import lombok.Data;
import java.util.List;
@Data
public class MaPropInfo {
/**
@ -61,6 +63,19 @@ public class MaPropInfo {
@Excel(name = "所属上级")
private String deptName;
private String typeName;
/** 导出选中列表 */
private List<Long> dataCondition;
public List<Long> getDataCondition() {
return dataCondition;
}
public void setDataCondition(List<Long> dataCondition) {
this.dataCondition = dataCondition;
}
public long getPropId() {
return propId;
}

View File

@ -56,7 +56,7 @@ public interface MaPropInfoMapper {
* @return
*/
List<MaPropSet> checkPropIdUnique(MaPropSet maPropSet);
List<MaType> selectMaType(String typeName);
List<MaType> selectMaType(MaPropInfo maPropInfo);
/**
* 删除资产项目
* @param propId

View File

@ -31,7 +31,7 @@ public interface IMaPropInfoService {
* @param
* @return
*/
List<MaType> selectMaType(String typeName);
List<MaType> selectMaType(MaPropInfo maPropInfo);
/**
* 校验资产项目名称唯一性
* @param maPropInfo

View File

@ -60,8 +60,8 @@ public class MaPropInfoServiceImpl implements IMaPropInfoService {
* @return
*/
@Override
public List<MaType> selectMaType(String typeName) {
return maPropInfoMapper.selectMaType(typeName);
public List<MaType> selectMaType(MaPropInfo maPropInfo) {
return maPropInfoMapper.selectMaType(maPropInfo);
}
/**

View File

@ -71,6 +71,9 @@
<delete id="deleteDetailsByParentId" parameterType="java.lang.String">
delete from lease_apply_details where parennt_id = #{parentId}
</delete>
<delete id="deleteTaskAgreementByTaskId">
delete from tm_task_agreement where task_id = #{taskId}
</delete>
<insert id="insert" keyColumn="task_id" keyProperty="taskId" parameterType="com.bonus.sgzb.app.domain.TmTask" useGeneratedKeys="true">
insert into tm_task (task_type, task_status, code, create_by, create_time, update_by, update_time, remark, company_id)

View File

@ -79,6 +79,12 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<if test="companyId != null and companyId != ''">
and a.company_id = #{companyId}
</if>
<if test="dataCondition != null and dataCondition.size()>0">
AND a.pro_id in
<foreach collection="dataCondition" item="proId" index="index" open="(" separator="," close=")">
#{proId}
</foreach>
</if>
ORDER BY a.pro_id DESC
</select>
<select id="getProjectLot" parameterType="com.bonus.sgzb.base.domain.BmProjectInfo" resultMap="BmProjectInfoResult">

View File

@ -84,6 +84,12 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<if test="companyId != null and companyId != ''">
and company_id = #{companyId}
</if>
<if test="dataCondition != null and dataCondition.size()>0">
AND a.lot_id in
<foreach collection="dataCondition" item="lotId" index="index" open="(" separator="," close=")">
#{lotId}
</foreach>
</if>
ORDER BY a.lot_id DESC
</select>
<select id="selectByName" resultType="com.bonus.sgzb.base.domain.BmProjectLot">

View File

@ -93,6 +93,12 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<if test="typeName != null and typeName !=''">
AND type_name like concat('%',#{typeName},'%')
</if>
<if test="dataCondition != null and dataCondition.size()>0">
AND m.type_id in
<foreach collection="dataCondition" item="typeId" index="index" open="(" separator="," close=")">
#{typeId}
</foreach>
</if>
</where>
</select>
@ -211,6 +217,12 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<if test="propId != null and propId != ''">
AND a.prop_id = #{propId}
</if>
<if test="dataCondition != null and dataCondition.size()>0">
AND a.prop_id in
<foreach collection="dataCondition" item="propId" index="index" open="(" separator="," close=")">
#{propId}
</foreach>
</if>
</where>
</select>
<select id="selectMaPropSets" resultType="com.bonus.sgzb.base.domain.MaPropInfo" resultMap="MaPropInfoResult">

View File

@ -23,8 +23,8 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<select id="getMaintenanceGangInfoAll" resultType="com.bonus.sgzb.base.domain.MaintenanceGang">
SELECT mt.type_id as modelId ,mt.type_name as modelName,
mt2.type_id, mt2.type_name,
mt3.type_id as typeId,mt3.type_name as typeName,
mt2.type_id, mt2.type_name as typeName,
mt3.type_id as typeId,mt3.type_name,
mt3.type_id as kindId,mt4.type_name as kindName,
su.user_id as userId, su.nick_name as userName
FROM ma_type mt

View File

@ -258,6 +258,7 @@
placeholder="请输入租赁期限(天)"
controls-position="right"
:min="0"
:max="9999"
style="width: 100%"
/>
</el-form-item>

View File

@ -275,7 +275,7 @@ export default {
unitId: [
{
required: true,
message: '请选择来往单位',
message: '请选择领料单位',
trigger: 'change',
type: 'number',
},

View File

@ -303,12 +303,12 @@ export default {
],
unitId:[
{
required:true,message:'请选择来往单位',trigger:'change'
required:true,message:'请选择领料单位',trigger:'change'
}
],
proId:[
{
required:true,message:'请选择工程',trigger:'change'
required:true,message:'请选择领料工程',trigger:'change'
}
],
// leasePerson: [

View File

@ -6,53 +6,26 @@
</el-row>
<el-row :gutter="24" class="mb8">
<el-col :span="24">
<el-form
:model="queryParams"
ref="queryForm"
size="small"
:inline="true"
v-show="showSearch"
label-width="100px"
>
<el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch"
label-width="100px">
<el-form-item label="领料类型" prop="leaseTypeName">
<el-input
v-model="queryParams.leaseTypeName"
placeholder="请输入领料类型"
disabled
@keyup.enter.native="handleQuery"
/>
<el-input v-model="queryParams.leaseTypeName" placeholder="请输入领料类型" disabled
@keyup.enter.native="handleQuery" />
</el-form-item>
<el-form-item label="领料工程" prop="proName">
<el-input
v-model="queryParams.proName"
placeholder="请输入领料工程"
disabled
@keyup.enter.native="handleQuery"
/>
<el-input v-model="queryParams.proName" placeholder="请输入领料工程" disabled @keyup.enter.native="handleQuery" />
</el-form-item>
<el-form-item label="领料人" prop="leasePerson">
<el-input
v-model="queryParams.leaseApplyInfo.leasePerson"
placeholder="请输入领料人"
disabled
@keyup.enter.native="handleQuery"
/>
<el-input v-model="queryParams.leaseApplyInfo.leasePerson" placeholder="请输入领料人" disabled
@keyup.enter.native="handleQuery" />
</el-form-item>
<el-form-item label="联系电话" prop="phone">
<el-input
v-model="queryParams.leaseApplyInfo.phone"
placeholder="请输入联系电话"
disabled
@keyup.enter.native="handleQuery"
/>
<el-input v-model="queryParams.leaseApplyInfo.phone" placeholder="请输入联系电话" disabled
@keyup.enter.native="handleQuery" />
</el-form-item>
<el-form-item label="预计领料时间" prop="estimateLeaseTime">
<el-input
v-model="queryParams.estimateLeaseTime"
placeholder="预计领料时间"
disabled
@keyup.enter.native="handleQuery"
/>
<el-input v-model="queryParams.estimateLeaseTime" placeholder="预计领料时间" disabled
@keyup.enter.native="handleQuery" />
</el-form-item>
</el-form>
<el-row :gutter="10" class="mb8">
@ -64,85 +37,31 @@
</el-row>
<el-row :gutter="24" class="mb8">
<el-col :span="18">
<el-table
v-loading="loading"
:data="queryParams.leaseApplyDetails"
@selection-change="handleSelectionChange"
>
<el-table v-loading="loading" :data="queryParams.leaseApplyDetails" @selection-change="handleSelectionChange">
<!-- <el-table-column type="selection" width="55" align="center" />-->
<el-table-column label="序号" align="center" type="index" />
<el-table-column
label="类型名称"
align="center"
prop="typeName"
:show-overflow-tooltip="true"
/>
<el-table-column label="类型名称" align="center" prop="typeName" :show-overflow-tooltip="true" />
<el-table-column type="expand">
<template slot-scope="scope">
<div class="nested-table-container">
<el-table :data="scope.row.maTypeDetails" style="width: 100%">
<!-- 子表格的列 -->
<el-table-column label="序号" align="center" type="index" />
<el-table-column
label="类型名称"
align="center"
prop="typeName"
:show-overflow-tooltip="true"
/>
<el-table-column
label="规格型号"
align="center"
prop="typeModelName"
:show-overflow-tooltip="true"
/>
<el-table-column
label="单位"
align="center"
prop="unitName"
:show-overflow-tooltip="true"
/>
<el-table-column
label="预领数量"
align="center"
prop="partNum"
:show-overflow-tooltip="true"
/>
<el-table-column label="类型名称" align="center" prop="typeName" :show-overflow-tooltip="true" />
<el-table-column label="规格型号" align="center" prop="typeModelName" :show-overflow-tooltip="true" />
<el-table-column label="单位" align="center" prop="unitName" :show-overflow-tooltip="true" />
<el-table-column label="预领数量" align="center" prop="partNum" :show-overflow-tooltip="true" />
</el-table>
</div>
</template>
</el-table-column>
<el-table-column
label="规格型号"
align="center"
prop="typeModelName"
:show-overflow-tooltip="true"
/>
<el-table-column
label="计量单位"
align="center"
prop="unitName"
:show-overflow-tooltip="true"
/>
<el-table-column label="规格型号" align="center" prop="typeModelName" :show-overflow-tooltip="true" />
<el-table-column label="计量单位" align="center" prop="unitName" :show-overflow-tooltip="true" />
<el-table-column label="当前库存" align="center" prop="num" :show-overflow-tooltip="true" />
<el-table-column label="预领数量" align="center" prop="preNum" :show-overflow-tooltip="true" />
<el-table-column
label="申请人"
align="center"
prop="applyFor"
:show-overflow-tooltip="true"
/>
<el-table-column
label="申请时间"
align="center"
prop="updateTimes"
:show-overflow-tooltip="true"
/>
<el-table-column
label="任务状态"
align="center"
prop="taskName"
:show-overflow-tooltip="true"
/>
<el-table-column label="申请人" align="center" prop="applyFor" :show-overflow-tooltip="true" />
<el-table-column label="申请时间" align="center" prop="updateTimes" :show-overflow-tooltip="true" />
<el-table-column label="任务状态" align="center" prop="taskName" :show-overflow-tooltip="true" />
<!-- <el-table-column label="审批结果 " align="center" prop="dictName" :show-overflow-tooltip="true" />-->
<el-table-column label="备注" align="center" prop="remark" :show-overflow-tooltip="true" />
<!-- <el-table-column label="操作" align="center" class-name="small-padding fixed-width">-->
@ -171,15 +90,16 @@
<el-timeline-item color="#0bbd87" icon="el-icon-check" placement="top">
<el-card>
<p class="title">提交审批</p>
<p class="author">申请人{{queryParams.applyFor}}</p>
<p class="time">申请时间{{queryParams.updateTimes}}</p>
<p class="author">申请人{{ queryParams.applyFor }}</p>
<p class="time">申请时间{{ queryParams.updateTimes }}</p>
</el-card>
</el-timeline-item>
<el-timeline-item v-for="(v,i) in flowPath" :type="v.type" :color="v.color" :icon="v.icon" :key="i" placement="top">
<el-timeline-item v-for="(v, i) in flowPath" :type="v.type" :color="v.color" :icon="v.icon" :key="i"
placement="top">
<el-card>
<p class="title">{{v.name}}</p>
<p class="author" v-if="queryParams[v.authorKey]">审核人{{queryParams[v.authorKey]}}</p>
<p class="time" v-if="queryParams[v.timeKey]">审核时间{{queryParams[v.timeKey]}}</p>
<p class="title">{{ v.name }}</p>
<p class="author" v-if="queryParams[v.authorKey]">审核人{{ queryParams[v.authorKey] }}</p>
<p class="time" v-if="queryParams[v.timeKey]">审核时间{{ queryParams[v.timeKey] }}</p>
<p class="remark" v-if="queryParams[v.remarkKey]">审核意见{{ queryParams[v.remarkKey] }}</p>
</el-card>
</el-timeline-item>
@ -187,82 +107,38 @@
</el-col>
</el-row>
<div
slot="footer"
class="dialog-footer"
style="text-align: right;margin-right: 200px;"
v-if="queryParams.taskStatus<33&&!this.isView"
>
<div slot="footer" class="dialog-footer" style="text-align: right;margin-right: 200px;"
v-if="queryParams.taskStatus < 33 && !this.isView">
<el-button type="primary" @click="agree">同意</el-button>
<el-button @click="refuse">驳回</el-button>
</div>
<div
slot="footer"
class="dialog-footer"
style="text-align: right;margin-right: 200px;"
v-if="queryParams.taskStatus==117&&!this.isView"
>
<div slot="footer" class="dialog-footer" style="text-align: right;margin-right: 200px;"
v-if="queryParams.taskStatus == 117 && !this.isView">
<el-button type="primary" @click="confirm">确认</el-button>
</div>
<!-- 同意 -->
<el-dialog
title="审核意见"
:visible.sync="examineVisible"
width="600px"
:close-on-click-modal="false"
>
<el-input
placeholder="请输入审核意见"
type="textarea"
maxlength="100"
:autosize="{ minRows: 4, maxRows: 6}"
v-model="queryParams.companyAuditRemarks"
></el-input>
<el-dialog title="审核意见" :visible.sync="examineVisible" width="600px" :close-on-click-modal="false">
<el-input placeholder="请输入审核意见" type="textarea" maxlength="100" :autosize="{ minRows: 4, maxRows: 6 }"
v-model="queryParams.companyAuditRemarks"></el-input>
<div slot="footer" class="dialog-footer">
<el-button @click="examineVisible=false"> </el-button>
<el-button
type="primary"
@click="subAuditLeaseByCompany(9)"
v-if="queryParams.taskStatus==31"
v-hasPermi="['receive:examine:fgs']"
> </el-button>
<el-button
type="primary"
@click="subAuditLeaseByCompany(1)"
v-if="queryParams.taskStatus==32"
v-hasPermi="['receive:examine:nbs']"
> </el-button>
<el-button @click="examineVisible = false"> </el-button>
<el-button type="primary" @click="subAuditLeaseByCompany(9)" v-if="queryParams.taskStatus == 31"
v-hasPermi="['receive:examine:fgs']"> </el-button>
<el-button type="primary" @click="subAuditLeaseByCompany(1)" v-if="queryParams.taskStatus == 32"
v-hasPermi="['receive:examine:nbs']"> </el-button>
</div>
</el-dialog>
<!-- 驳回 -->
<el-dialog
title="审核意见"
:visible.sync="refuseVisible"
width="600px"
:close-on-click-modal="false"
>
<el-input
placeholder="请输入审核意见"
type="textarea"
maxlength="100"
:autosize="{ minRows: 4, maxRows: 6}"
v-model="queryParams.companyAuditRemarks"
></el-input>
<el-dialog title="审核意见" :visible.sync="refuseVisible" width="600px" :close-on-click-modal="false">
<el-input placeholder="请输入审核意见" type="textarea" maxlength="100" :autosize="{ minRows: 4, maxRows: 6 }"
v-model="queryParams.companyAuditRemarks"></el-input>
<div slot="footer" class="dialog-footer">
<el-button @click="refuseVisible=false"> </el-button>
<el-button
type="primary"
@click="refuseAuditLeaseByCompany(10)"
v-if="queryParams.taskStatus==31"
v-hasPermi="['receive:examine:fgs']"
> </el-button>
<el-button
type="primary"
@click="refuseAuditLeaseByCompany(2)"
v-if="queryParams.taskStatus==32"
v-hasPermi="['receive:examine:nbs']"
> </el-button>
<el-button @click="refuseVisible = false"> </el-button>
<el-button type="primary" @click="refuseAuditLeaseByCompany(10)" v-if="queryParams.taskStatus == 31"
v-hasPermi="['receive:examine:fgs']"> </el-button>
<el-button type="primary" @click="refuseAuditLeaseByCompany(2)" v-if="queryParams.taskStatus == 32"
v-hasPermi="['receive:examine:nbs']"> </el-button>
</div>
</el-dialog>
</div>
@ -431,7 +307,10 @@ export default {
updateLeaseTaskStatusConfirmByCq(param).then(response => {
this.$modal.msgSuccess('操作成功')
this.getData(taskData.taskId)
})
}).finally(() => {
//
window.location.reload();
});
},
//
refuse() {
@ -475,9 +354,9 @@ export default {
},
/** 查询 */
async getData(taskId) {
this.loading=true;
this.loading = true;
const res = await getLeaseListAllCq({ taskId })
this.loading=false;
this.loading = false;
this.queryParams = { ...this.queryParams, ...res.rows[0] }
this.$set(this.queryParams, 'leaseApplyInfo', this.queryParams.leaseApplyInfoList[0])
this.queryParams.leaseApplyDetails.forEach(v => {
@ -535,9 +414,9 @@ export default {
// this.flowPath[2].icon = 'el-icon-close'
// }
if(this.queryParams.leaseType=='1'){
if (this.queryParams.leaseType == '1') {
this.flowPath = [this.flowPath[2]]
}else{
} else {
this.flowPath = this.flowPath
}
@ -597,7 +476,7 @@ export default {
})
},
/** 提交按钮 */
submitForm: function() {
submitForm: function () {
this.$refs['form'].validate(valid => {
if (valid) {
if (this.form.dictId != undefined) {
@ -621,14 +500,14 @@ export default {
const dictIds = row.dictId || this.ids
this.$modal
.confirm('是否确认删除所选择的数据项?')
.then(function() {
.then(function () {
return delType(dictIds)
})
.then(() => {
this.getList()
this.$modal.msgSuccess('删除成功')
})
.catch(() => {})
.catch(() => { })
},
/** 导出按钮操作 */
handleExport() {
@ -654,20 +533,25 @@ export default {
<style lang="scss" scoped>
::v-deep .el-card__body {
padding: 10px !important;
p {
margin: 0 !important;
}
.title {
color: #848484;
font-weight: 700;
}
.author {
font-size: 13px;
margin-top: 5px;
}
.time {
font-size: 12px;
}
.remark {
margin-top: 10px;
word-break: break-all;

View File

@ -596,6 +596,8 @@
this.$tab.closeOpenPage({
path: '/store/newBuy/newDevicesAccept',
query,
}).then(() => {
this.$tab.refreshPage()
})
},
/** 修改按钮操作 */