Commit 0fe98149 by jiawei.su
parents 5973a801 4a33e287
...@@ -52,40 +52,53 @@ ...@@ -52,40 +52,53 @@
<div class="row"> <div class="row">
<p class="flex"> <p class="flex">
<span class="infoLabel">工单信息:</span> <span class="infoLabel">工单信息:</span>
<span class="info"></span> <span class="info">{{
orderDetail.orderNumber
}}</span>
</p> </p>
<p class="flex"> <p class="flex">
<span class="infoLabel">产品编号:</span> <span class="infoLabel">产品编号:</span>
<span class="info"></span> <span class="info">{{
orderDetail.productCode
}}</span>
</p> </p>
<p class="flex"> <p class="flex">
<span class="infoLabel">产品名称:</span> <span class="infoLabel">产品名称:</span>
<span class="info"></span> <span class="info">{{
orderDetail.productName
}}</span>
</p> </p>
<p class="flex"> <p class="flex">
<span class="infoLabel">工件编号:</span> <span class="infoLabel">工件编号:</span>
<span class="info"></span> <span class="info">{{
orderDetail.sn
}}</span>
</p> </p>
</div> </div>
<div class="row"> <div class="row">
<p class="flex"> <p class="flex">
<span class="infoLabel">状态:</span> <span class="infoLabel">状态:</span>
<span class="info"></span> <span class="info">{{
orderDetail.status
}}</span>
</p> </p>
<p class="flex"> <p class="flex">
<span class="infoLabel">储位编号:</span> <span class="infoLabel">储位编号:</span>
<span class="info"></span> <span class="info">{{
orderDetail.location
}}</span>
</p> </p>
<p class="flex"> <p class="flex">
<span class="infoLabel">工装编号:</span> <span class="infoLabel">工装编号:</span>
<span class="info"></span> <span class="info">{{
orderDetail.fixtureGuid
}}</span>
</p> </p>
<Button type="primary" @click="modal = true"
>储位选择</Button
>
</div> </div>
<div> <div>
<Button type="primary">准备上料</Button> <Button type="primary" @click="feedReady()"
>准备上料</Button
>
<Button type="primary">安装完成</Button> <Button type="primary">安装完成</Button>
</div> </div>
</TabPane> </TabPane>
...@@ -107,7 +120,7 @@ ...@@ -107,7 +120,7 @@
>工单信息:</span >工单信息:</span
> >
<span class="info">{{ <span class="info">{{
orderDetail.code orderDetail.orderNumber
}}</span> }}</span>
</p> </p>
<p class="flex"> <p class="flex">
...@@ -115,7 +128,7 @@ ...@@ -115,7 +128,7 @@
>产品编号:</span >产品编号:</span
> >
<span class="info">{{ <span class="info">{{
orderDetail.code orderDetail.productCode
}}</span> }}</span>
</p> </p>
<p class="flex"> <p class="flex">
...@@ -123,7 +136,7 @@ ...@@ -123,7 +136,7 @@
>产品名称:</span >产品名称:</span
> >
<span class="info">{{ <span class="info">{{
orderDetail.code orderDetail.productName
}}</span> }}</span>
</p> </p>
<p class="flex"> <p class="flex">
...@@ -131,7 +144,7 @@ ...@@ -131,7 +144,7 @@
>工件编号:</span >工件编号:</span
> >
<span class="info">{{ <span class="info">{{
orderDetail.code orderDetail.sn
}}</span> }}</span>
</p> </p>
</div> </div>
...@@ -149,7 +162,7 @@ ...@@ -149,7 +162,7 @@
>储位编号:</span >储位编号:</span
> >
<span class="info">{{ <span class="info">{{
orderDetail.code orderDetail.location
}}</span> }}</span>
</p> </p>
<p class="flex"> <p class="flex">
...@@ -157,7 +170,7 @@ ...@@ -157,7 +170,7 @@
>工装编号:</span >工装编号:</span
> >
<span class="info">{{ <span class="info">{{
orderDetail.code orderDetail.fixtureGuid
}}</span> }}</span>
</p> </p>
</div> </div>
...@@ -277,7 +290,8 @@ export default { ...@@ -277,7 +290,8 @@ export default {
], ],
data2: [], data2: [],
orderDetail: {}, orderDetail: {},
detailobj:{} detailobj: {},
sectionid: 0,
}; };
}, },
created() { created() {
...@@ -327,6 +341,7 @@ export default { ...@@ -327,6 +341,7 @@ export default {
change2(index) { change2(index) {
this.b = index; this.b = index;
let status = this.stationList[index].status; let status = this.stationList[index].status;
this.sectionid = this.stationList[index].section;
if (status == 1) { if (status == 1) {
this.attr2 = true; this.attr2 = true;
} }
...@@ -354,8 +369,12 @@ export default { ...@@ -354,8 +369,12 @@ export default {
this.request("/acc/AutomationOperate/ScanCode", data, "get") this.request("/acc/AutomationOperate/ScanCode", data, "get")
.then((res) => { .then((res) => {
if (res.data.ret == 1) { if (res.data.ret == 1) {
console.log(res.data.data); let obj = res.data.data;
this.orderDetail = res.data.data; this.orderDetail = Object.assign(
{},
this.orderDetail,
obj
);
} else { } else {
this.$Message.error(this.$t(res.data, msg)); this.$Message.error(this.$t(res.data, msg));
} }
...@@ -367,14 +386,19 @@ export default { ...@@ -367,14 +386,19 @@ export default {
feedReady() { feedReady() {
// 准备上料 // 准备上料
if (this.sectionid == 0) {
this.$Message.error("请选择工位");
}
let data = { let data = {
section: 13, section: this.sectionid,
code: "234324", code: this.orderDetail.fixtureGuid,
}; };
this.request("/acc/AutomationOperate/Loading", data, "post").thne( this.request("/acc/AutomationOperate/Loading", data, "post").thne(
(res) => { (res) => {
if (res.data.ret == 1) { if (res.data.ret == 1) {
console.log(res.data.data);
} else {
this.$Message.error(this.$t(res.data.msg));
} }
} }
); );
...@@ -392,7 +416,6 @@ export default { ...@@ -392,7 +416,6 @@ export default {
}, },
handleRowChange(currentRow, oldCurrentRow) { handleRowChange(currentRow, oldCurrentRow) {
this.detailobj = currentRow; this.detailobj = currentRow;
}, },
request(url, data, type) { request(url, data, type) {
if (type == "get") { if (type == "get") {
......
...@@ -5,15 +5,14 @@ ...@@ -5,15 +5,14 @@
<div class="newSearchDiv"> <div class="newSearchDiv">
<div class="filter"> <div class="filter">
<label>工装类别:</label> <label>工装类别:</label>
<Select <Cascader
label-in-value class="searchSelect"
:data="typeTree"
clearable clearable
filterable change-on-select
v-model="category" v-model="category"
class="searchSelect" @on-change="getCategory"
> ></Cascader>
</Select>
<Cascader class="searchSelect" :data="typeTree" clearable change-on-select v-model="category" @on-change="changeFrockType"></Cascader>
</div> </div>
<div class="filter"> <div class="filter">
<label>工装编号:</label> <label>工装编号:</label>
...@@ -32,8 +31,8 @@ ...@@ -32,8 +31,8 @@
v-model="state" v-model="state"
class="searchSelect" class="searchSelect"
> >
<Option :value="1">可用</Option> <Option :value="1">可用</Option>
<Option :value="0">停用</Option> <Option :value="0">停用</Option>
</Select> </Select>
</div> </div>
...@@ -120,7 +119,7 @@ ...@@ -120,7 +119,7 @@
<Modal <Modal
class="newModalClass" class="newModalClass"
v-model="modal" v-model="modal"
:styles="{ width: '900px' }" :styles="{ width: '700px' }"
> >
<p slot="header"> <p slot="header">
<span v-show="type == 1">{{ $t("1002") }}</span> <span v-show="type == 1">{{ $t("1002") }}</span>
...@@ -134,47 +133,66 @@ ...@@ -134,47 +133,66 @@
<label>父工装类别:</label> <label>父工装类别:</label>
<Cascader <Cascader
class="searchSelect" class="searchSelect"
:data="frockTypeTree" :data="typeTree"
v-model="parentType" v-model="parentType"
change-on-select change-on-select
@on-change="changeFrockType1" @on-change="getCategory1"
></Cascader> ></Cascader>
</div> </div>
<div class="filter"> <div class="filter">
<label><i>*</i>父工装信息:</label> <label><i>*</i>父工装名称:</label>
<Input type="text" class="searchInput" /> <Select
</div> v-model="toolingId1"
<div class="filter"> label-in-value
<label><i>*</i>父工装编号:</label> clearable
<Input type="text" class="searchInput" /> filterable
filter-by-label
class="searchSelect"
>
<Option
v-for="(item, index) in toolingList1"
:value="item.id"
:key="index"
:label="item.name + '#' + item.code"
>{{ item.name + "#" + item.code }}</Option
>
</Select>
</div> </div>
<div style="padding-left: 50px"> <div style="padding-left: 50px">
<div class="filter"> <div class="filter">
<label>子工装类别:</label> <label>子工装类别:</label>
<Cascader <Cascader
class="searchSelect" class="searchSelect"
:data="frockTypeTree" :data="typeTree"
v-model="parentType" v-model="sonType"
change-on-select change-on-select
@on-change="changeFrockType1" @on-change="getCategory2"
></Cascader> ></Cascader>
</div> </div>
<div class="filter"> <div class="filter">
<label><i>*</i>子工装信息:</label> <label><i>*</i>子工装名称:</label>
<Input type="text" class="searchInput" /> <Select
</div> v-model="toolingId2"
<div class="filter"> label-in-value
<label><i>*</i>子工装编号:</label> clearable
<Input type="text" class="searchInput" /> filterable
filter-by-label
class="searchSelect"
>
<Option
v-for="(item, index) in toolingList2"
:value="item.id"
:key="index"
:label="item.name + '#' + item.code"
>{{ item.name + "#" + item.code }}</Option
>
</Select>
</div> </div>
</div> </div>
<div class="filter"> <div class="filter">
<label>备注:</label> <label>备注:</label>
<Input <Input type="text" class="searchInput" v-model="remark" />
type="text"
class="searchInput"
v-model="addremark"
/>
</div> </div>
<div> <div>
<label>上传文件:</label> <label>上传文件:</label>
...@@ -206,7 +224,7 @@ ...@@ -206,7 +224,7 @@
</div> </div>
</div> </div>
<div slot="footer"> <div slot="footer">
<Button type="text" size="large" @click="addmodal = false">{{ <Button type="text" size="large" @click="modal = false">{{
$t("1033") $t("1033")
}}</Button> }}</Button>
<Button type="primary" size="large" @click="addPost()">{{ <Button type="primary" size="large" @click="addPost()">{{
...@@ -221,6 +239,16 @@ ...@@ -221,6 +239,16 @@
export default { export default {
data() { data() {
return { return {
//导入方法
action:
this.axios.publicPath +
"wms/Upload/Submit?templateName=StorageLocation",
headers: {
token: localStorage.getItem("token"),
timestamp: localStorage.getItem("timestamp"),
nonce: localStorage.getItem("nonce"),
sign: localStorage.getItem("sign"),
},
columns1: [ columns1: [
{ {
type: "index2", type: "index2",
...@@ -327,29 +355,44 @@ export default { ...@@ -327,29 +355,44 @@ export default {
pagesize: 10, pagesize: 10,
modal: false, modal: false,
type: 0, type: 0,
typeTree:[], typeTree: [],
category: [], category: [],
categoryId: 0,
number: "", number: "",
name: "", name: "",
state: '', state: "",
parentType: [],
sonType: [],
parentId: 0,
sonId: 0,
remark: "",
toolingList1: [],
toolingList2: [],
toolingId1: 0,
toolingId2: 0,
spinShow: false,
fileurl: "",
filename: "",
UploadAction: this.axios.publicPath + "config/upload/UploadImage",
}; };
}, },
created() { created() {
this.columns1 = this.$time.initTableTitle(this.columns1); this.columns1 = this.$time.initTableTitle(this.columns1);
this.initFrockType();
}, },
methods: { methods: {
search(page, pagesize) { search(page, pagesize) {
let data = { let data = {
category: this.category, //工装类型id category: this.categoryId, //工装类型id
code: this.number, code: this.number,
name: this.name, name: this.name,
state: this.state, //0停用 1可用 // state: this.state, //0停用 1可用
page: this.page, page: this.page,
pagesize: this.pagesize, pagesize: this.pagesize,
toexcel: 0, //0查询 1导出 // toexcel: 0, //0查询 1导出
}; };
this.request( this.request(
"acc/FixtureToolsAssembly/GetPageList", "/acc/FixtureToolsAssembly/GetPageList",
data, data,
"get" "get"
).then((res) => { ).then((res) => {
...@@ -362,10 +405,135 @@ export default { ...@@ -362,10 +405,135 @@ export default {
this.modal = true; this.modal = true;
this.type = 1; this.type = 1;
}, },
addPost() {
let data = {
parentid: this.toolingId1, //父级工装ID
fixturetoolid: this.toolingId2, //工装ID
fileurl: this.fileurl, //url
filename: this.filename, //附件名称
status: 1,
};
this.request("/acc/AutomationLocation/Add", data, "post").then(
(res) => {
if (res.data.ret == 1) {
} else {
this.$Message.error(this.$t(res.data.msg));
}
}
);
},
edit() {}, edit() {},
dele() {}, dele() {},
loadExcel() {}, loadExcel() {},
exportEecel() {}, exportEecel() {},
//工装类型
initFrockType() {
this.axios
.request({
url: "/acc/FixtureTools/GetCategoryList",
method: "get",
})
.then((res) => {
if (res.data.ret == 1) {
let arr = res.data.data;
this.contentTree(arr);
this.typeTree = arr;
}
});
},
getCategory(val) {
this.category = val;
this.categoryId =
this.category.length > 0
? this.category[this.category.length - 1]
: 0;
},
getCategory1(val) {
this.parentType = val;
this.parentId =
this.parentType.length > 0
? this.parentType[this.parentType.length - 1]
: 0;
console.log(val);
console.log(this.parentId);
if (this.parentId != 0) {
this.getToolingList(1);
}
},
getCategory2(val) {
this.sonType = val;
this.sonId =
this.sonType.length > 0
? this.sonType[this.sonType.length - 1]
: 0;
if (this.sonId != 0) {
this.getToolingList(2);
}
},
getToolingList(index) {
let id = 0;
id = index == 1 ? this.parentId : this.sonId;
console.log(index);
this.request(
"/acc/FixtureTools/GetFixtureToolList?categoryid=" + id,
"",
"get"
).then((res) => {
if (res.data.ret == 1) {
if (index == 1) {
this.toolingList1 = res.data.data;
}
if (index == 2) {
this.toolingList2 = res.data.data;
}
} else {
this.$Message.error(this.$t(res.data.msg));
}
});
},
contentTree(arr) {
arr.forEach((ele) => {
ele.disabled = false;
if (
ele.children != undefined &&
ele.children != null &&
ele.children.length != 0
) {
this.contentTree(ele.children);
} else {
ele.children = [];
}
});
},
/*********文件上传 start******** */
handleBeforeUpload(file) {
this.spinShow = true;
if (!file) {
this.spinShow = false;
return false;
}
},
handleSuccess1(res, file) {
this.spinShow = false;
if (res.ret == 1) {
this.$Message.success(this.$t("100378"));
this.filename = file.name;
this.fileurl = res.data;
} else {
this.$Message.error(this.$t(res.msg + ""));
}
},
handleError1() {
this.spinShow = false;
this.$Message.error(this.$t("600512") + "!");
},
delfile() {
this.filename = "";
this.fileurl = "";
},
/*********文件上传 end******** */
request(url, data, type) { request(url, data, type) {
if (type == "get") { if (type == "get") {
return this.axios.request({ return this.axios.request({
......
...@@ -44,7 +44,8 @@ namespace Siger.ApiACC.Controllers ...@@ -44,7 +44,8 @@ namespace Siger.ApiACC.Controllers
var data = _autoLocationRepository.GetPagedList(wavehouseid.ToInt(), locationid.ToInt(), ProjectId, page, pagesize); var data = _autoLocationRepository.GetPagedList(wavehouseid.ToInt(), locationid.ToInt(), ProjectId, page, pagesize);
var list = new List<ResponseAutomationLocation>(); var list = new List<ResponseAutomationLocation>();
var locations = _autoLocationRepository.GetLocationList(ProjectId); var locations = _autoLocationRepository.GetLocationList(ProjectId);
foreach(var item in data.Data) var categorys = _toolsCategoryRepository.GetList(q => q.projectId == ProjectId && q.status == (int)RowState.Valid).ToList();
foreach (var item in data.Data)
{ {
if(item.fixturetoolid > 0 && string.IsNullOrEmpty(item.sn)) if(item.fixturetoolid > 0 && string.IsNullOrEmpty(item.sn))
{ {
...@@ -70,9 +71,23 @@ namespace Siger.ApiACC.Controllers ...@@ -70,9 +71,23 @@ namespace Siger.ApiACC.Controllers
var locationIds = locas.Select(q => q.id).ToList(); var locationIds = locas.Select(q => q.id).ToList();
locationIds.Distinct().Reverse(); locationIds.Distinct().Reverse();
item.locationIds = locationIds; item.locationIds = locationIds;
} }
var cates = GetParentCategoryList(item.cate_guid, categorys);
var cateIds = cates.Select(q => q.id).ToList();
cateIds.Reverse();
item.categoryIds = cateIds;
list.Add(item);
} }
return new PagedObjectResult(data.Data, data.Total, page, pagesize); return new PagedObjectResult(list, data.Total, page, pagesize);
}
private IEnumerable<siger_automation_fixture_tools_category> GetParentCategoryList(string parentId, List<siger_automation_fixture_tools_category> sections)
{
var query = from c in sections where c.guid == parentId select c;
return query.ToList().Concat(query.ToList().SelectMany(t => GetParentCategoryList(t.parent, sections)));
} }
private IEnumerable<siger_wms_storage_location> GetParentLocations(int pid, IEnumerable<siger_wms_storage_location> types) private IEnumerable<siger_wms_storage_location> GetParentLocations(int pid, IEnumerable<siger_wms_storage_location> types)
......
...@@ -53,7 +53,7 @@ namespace Siger.ApiACC.Controllers ...@@ -53,7 +53,7 @@ namespace Siger.ApiACC.Controllers
list.Add(item); list.Add(item);
} }
return new PagedObjectResult(data.Data, data.Total, page, pagesize); return new PagedObjectResult(list, data.Total, page, pagesize);
} }
private IEnumerable<siger_automation_fixture_tools_category> GetParentCategoryList(string parentId, List<siger_automation_fixture_tools_category> sections) private IEnumerable<siger_automation_fixture_tools_category> GetParentCategoryList(string parentId, List<siger_automation_fixture_tools_category> sections)
......
...@@ -14,6 +14,11 @@ using Siger.Middlelayer.Repository; ...@@ -14,6 +14,11 @@ using Siger.Middlelayer.Repository;
using Siger.Middlelayer.Repository.Extensions; using Siger.Middlelayer.Repository.Extensions;
using System.Linq; using System.Linq;
using Siger.Middlelayer.Repository.Entities; using Siger.Middlelayer.Repository.Entities;
using Siger.Middlelayer.Common.Helpers;
using Siger.Middlelayer.Utility.Helpers;
using Siger.Middlelayer.Utility.ImportEntities;
using System.IO;
using Siger.Middlelayer.Log;
namespace Siger.ApiACC.Controllers namespace Siger.ApiACC.Controllers
{ {
...@@ -31,9 +36,9 @@ namespace Siger.ApiACC.Controllers ...@@ -31,9 +36,9 @@ namespace Siger.ApiACC.Controllers
_toolsRepository = toolsRepository; _toolsRepository = toolsRepository;
} }
public IActionResult GetPageList(string category, string code, string name, string state, int page, int pagesize) public IActionResult GetPageList(string category, string code, string name, string state, int page, int pagesize, string toexcel)
{ {
var data = _toolsRepository.GetPagedList(category.ToInt(), code, name, string.IsNullOrEmpty(state) ? -1 : state.ToInt(), ProjectId, page, pagesize); var data = _toolsRepository.GetPagedList(category.ToInt(), code, name, string.IsNullOrEmpty(state) ? -1 : state.ToInt(), ProjectId, page, pagesize, toexcel);
var list = new List<ResponseFixtureTools>(); var list = new List<ResponseFixtureTools>();
var categorys = _toolsCategoryRepository.GetList(q => q.projectId == ProjectId && q.status == (int)RowState.Valid).ToList(); var categorys = _toolsCategoryRepository.GetList(q => q.projectId == ProjectId && q.status == (int)RowState.Valid).ToList();
foreach(var item in data.Data) foreach(var item in data.Data)
...@@ -44,9 +49,62 @@ namespace Siger.ApiACC.Controllers ...@@ -44,9 +49,62 @@ namespace Siger.ApiACC.Controllers
item.categoryids = cateIds; item.categoryids = cateIds;
list.Add(item); list.Add(item);
} }
if (toexcel.ToInt() == 1)
{
return ExportExcel(data.Data);
}
return new PagedObjectResult(list, data.Total, page, pagesize); return new PagedObjectResult(list, data.Total, page, pagesize);
} }
private IActionResult ExportExcel(IEnumerable<ResponseFixtureTools> data)
{
var rootDir = FileSystemHelper.GetPhysicalFolders(FileSystemHelper.CommonFileSetting.PhysicalFolder, FileSystemHelper.ExportFileName);
if (!data.Any())
{
throw new BadRequestException(CommonEnum.RecordNotFound);
}
var dataList = new List<FixtureToolsTemplate>();
foreach (var item in data)
{
dataList.Add(new FixtureToolsTemplate
{
Catgeory = item.category,
Name = item.name,
Manage = item.managetype == 1 ? "单件" : "批次",
PartNumber = item.partnumber,
Code = item.code,
Specfication = item.specification,
Number = item.number.ToString(),
Status = item.status == 1 ? "可用" : "停用",
Remark = item.remark
});
}
if (dataList.Any())
{
EpPlusExcelHelper<FixtureToolsTemplate> helper = null;
try
{
helper = new EpPlusExcelHelper<FixtureToolsTemplate>();
var temporaryFileName = $"工装台账_FixtureToolsData_{DateTime.Now:yyyyMMddHHmmss}.xlsx";
helper.GenerateExcel(dataList, Path.Combine(rootDir, temporaryFileName));
return new ObjectResult($"{FileSystemHelper.CommonFileSetting.RequestPath}/{FileSystemHelper.ExportFileName}/{temporaryFileName}");
}
catch (Exception e)
{
Logger.WriteLineError("Export Fixture Tools Data failed, error:" + e);
throw new BadRequestException(RequestEnum.ExportFailed);
}
finally
{
helper?.Dispose();
}
}
throw new BadRequestException(CommonEnum.Fail);
}
private IEnumerable<siger_automation_fixture_tools_category> GetParentCategoryList(string parentId, List<siger_automation_fixture_tools_category> sections) private IEnumerable<siger_automation_fixture_tools_category> GetParentCategoryList(string parentId, List<siger_automation_fixture_tools_category> sections)
{ {
var query = from c in sections where c.guid == parentId select c; var query = from c in sections where c.guid == parentId select c;
...@@ -194,12 +252,58 @@ namespace Siger.ApiACC.Controllers ...@@ -194,12 +252,58 @@ namespace Siger.ApiACC.Controllers
[HttpGet] [HttpGet]
public IActionResult GetCategoryPageList(string id, int page, int pagesize) public IActionResult GetCategoryPageList(string id, int page, int pagesize, string toexcel = "")
{ {
var data = _toolsCategoryRepository.GetPagedList(id.ToInt(), ProjectId, page, pagesize); var data = _toolsCategoryRepository.GetPagedList(id.ToInt(), ProjectId, page, pagesize, toexcel);
if(toexcel.ToInt() == 1)
{
return ExportCategoryExcel(data.Data);
}
return new PagedObjectResult(data.Data, data.Total, page, pagesize); return new PagedObjectResult(data.Data, data.Total, page, pagesize);
} }
private IActionResult ExportCategoryExcel(IEnumerable<ResponseFixtureToolsCategory> data)
{
var rootDir = FileSystemHelper.GetPhysicalFolders(FileSystemHelper.CommonFileSetting.PhysicalFolder, FileSystemHelper.ExportFileName);
if (!data.Any())
{
throw new BadRequestException(CommonEnum.RecordNotFound);
}
var dataList = new List<FixtureToolsCategoryTemplate>();
foreach (var item in data)
{
dataList.Add(new FixtureToolsCategoryTemplate
{
Fixture = item.name,
Parent = item.parentname
});
}
if (dataList.Any())
{
EpPlusExcelHelper<FixtureToolsCategoryTemplate> helper = null;
try
{
helper = new EpPlusExcelHelper<FixtureToolsCategoryTemplate>();
var temporaryFileName = $"工装类型_FixtureToolsCategoryData_{DateTime.Now:yyyyMMddHHmmss}.xlsx";
helper.GenerateExcel(dataList, Path.Combine(rootDir, temporaryFileName));
return new ObjectResult($"{FileSystemHelper.CommonFileSetting.RequestPath}/{FileSystemHelper.ExportFileName}/{temporaryFileName}");
}
catch (Exception e)
{
Logger.WriteLineError("Export Fixture Tools Category Data failed, error:" + e);
throw new BadRequestException(RequestEnum.ExportFailed);
}
finally
{
helper?.Dispose();
}
}
throw new BadRequestException(CommonEnum.Fail);
}
[HttpPost] [HttpPost]
public IActionResult AddCategory([FromBody]RequestAddFixtureToolsCategory req) public IActionResult AddCategory([FromBody]RequestAddFixtureToolsCategory req)
{ {
......
using Siger.Middlelayer.Utility.ExcelImport;
namespace Siger.Middlelayer.Utility.ImportEntities
{
public class FixtureToolsCategoryTemplate : ImportBase
{
[ExcelColumn("工装类型*")]
public string Fixture { get; set; }
[ExcelColumn("上级类型")]
public string Parent { get; set; }
}
public class FixtureToolsTemplate : ImportBase
{
[ExcelColumn("工装类型*")]
public string Catgeory { get; set; }
[ExcelColumn("管理类型*")]
public string Manage { get; set; }
[ExcelColumn("工装名称*")]
public string Name { get; set; }
[ExcelColumn("工装料号*")]
public string PartNumber { get; set; }
[ExcelColumn("工装编号*")]
public string Code { get; set; }
[ExcelColumn("规格型号*")]
public string Specfication { get; set; }
[ExcelColumn("数量*")]
public string Number { get; set; }
[ExcelColumn("状态*")]
public string Status { get; set; }
[ExcelColumn("备注")]
public string Remark { get; set; }
}
public class FixtureToolsProductTemplate : ImportBase
{
[ExcelColumn("工装编号*")]
public string FixtureTool { get; set; }
[ExcelColumn("产品名称*")]
public string Product { get; set; }
[ExcelColumn("备注")]
public string Remark { get; set; }
}
public class FixtureToolsAssmeblyTemplate : ImportBase
{
[ExcelColumn("父工装编号*")]
public string ParentFixtureTool { get; set; }
[ExcelColumn("子工装编号*")]
public string FixtureTool { get; set; }
[ExcelColumn("备注")]
public string Remark { get; set; }
}
}
...@@ -7,6 +7,7 @@ using Siger.Middlelayer.AccRepository.Entities; ...@@ -7,6 +7,7 @@ using Siger.Middlelayer.AccRepository.Entities;
using Siger.Middlelayer.AccRepository.Repositories.Interface; using Siger.Middlelayer.AccRepository.Repositories.Interface;
using Siger.Middlelayer.AccRepository.Response; using Siger.Middlelayer.AccRepository.Response;
using Siger.Middlelayer.Common; using Siger.Middlelayer.Common;
using Siger.Middlelayer.Common.Extensions;
using Siger.Middlelayer.Repository.Data.Acc; using Siger.Middlelayer.Repository.Data.Acc;
using Siger.Middlelayer.Repository.Paged; using Siger.Middlelayer.Repository.Paged;
...@@ -20,7 +21,7 @@ namespace Siger.Middlelayer.AccRepository.Repositories ...@@ -20,7 +21,7 @@ namespace Siger.Middlelayer.AccRepository.Repositories
_context = context; _context = context;
} }
public IPagedCollectionResult<ResponseFixtureToolsCategory> GetPagedList(int id, int projectid, int page, int pagesize) public IPagedCollectionResult<ResponseFixtureToolsCategory> GetPagedList(int id, int projectid, int page, int pagesize, string toexcel = "")
{ {
Expression<Func<ResponseFixtureToolsCategory, bool>> FunNum = f => true; Expression<Func<ResponseFixtureToolsCategory, bool>> FunNum = f => true;
var query = from q in _context.siger_automation_fixture_tools_category var query = from q in _context.siger_automation_fixture_tools_category
...@@ -42,9 +43,17 @@ namespace Siger.Middlelayer.AccRepository.Repositories ...@@ -42,9 +43,17 @@ namespace Siger.Middlelayer.AccRepository.Repositories
{ {
FunNum = q => q.id == id; FunNum = q => q.id == id;
} }
var entities = query.Where(FunNum).OrderBy(q => q.parentid).OrderBy(q => q.createtime).Skip((page - 1) * pagesize).Take(pagesize).AsNoTracking().ToList(); if(toexcel.ToInt() == 1)
var totalCount = query.Where(FunNum).Count(); {
return new PagedCollectionResult<ResponseFixtureToolsCategory>(entities, totalCount); var entities = query.Where(FunNum).OrderBy(q => q.parentid).OrderBy(q => q.createtime).AsNoTracking().ToList();
return new PagedCollectionResult<ResponseFixtureToolsCategory>(entities, entities.Count);
}
else
{
var entities = query.Where(FunNum).OrderBy(q => q.parentid).OrderBy(q => q.createtime).Skip((page - 1) * pagesize).Take(pagesize).AsNoTracking().ToList();
var totalCount = query.Where(FunNum).Count();
return new PagedCollectionResult<ResponseFixtureToolsCategory>(entities, totalCount);
}
} }
} }
} }
...@@ -7,6 +7,7 @@ using Siger.Middlelayer.AccRepository.Entities; ...@@ -7,6 +7,7 @@ using Siger.Middlelayer.AccRepository.Entities;
using Siger.Middlelayer.AccRepository.Repositories.Interface; using Siger.Middlelayer.AccRepository.Repositories.Interface;
using Siger.Middlelayer.AccRepository.Response; using Siger.Middlelayer.AccRepository.Response;
using Siger.Middlelayer.Common; using Siger.Middlelayer.Common;
using Siger.Middlelayer.Common.Extensions;
using Siger.Middlelayer.Repository.Data.Acc; using Siger.Middlelayer.Repository.Data.Acc;
using Siger.Middlelayer.Repository.Extensions; using Siger.Middlelayer.Repository.Extensions;
using Siger.Middlelayer.Repository.Paged; using Siger.Middlelayer.Repository.Paged;
...@@ -22,7 +23,7 @@ namespace Siger.Middlelayer.AccRepository.Repositories ...@@ -22,7 +23,7 @@ namespace Siger.Middlelayer.AccRepository.Repositories
} }
public IPagedCollectionResult<ResponseFixtureTools> GetPagedList(int category, string code, string name, int state, public IPagedCollectionResult<ResponseFixtureTools> GetPagedList(int category, string code, string name, int state,
int projectid, int page, int pagesize) int projectid, int page, int pagesize, string toexcel = "")
{ {
var query = from q in _context.siger_automation_fixture_tools var query = from q in _context.siger_automation_fixture_tools
join p in _context.siger_automation_fixture_tools_category on q.category equals p.guid join p in _context.siger_automation_fixture_tools_category on q.category equals p.guid
...@@ -70,9 +71,17 @@ namespace Siger.Middlelayer.AccRepository.Repositories ...@@ -70,9 +71,17 @@ namespace Siger.Middlelayer.AccRepository.Repositories
stateExpression = q => q.status == state; stateExpression = q => q.status == state;
} }
var expression = categoryExpression.And(codeExpression).And(nameExpression).And(stateExpression); var expression = categoryExpression.And(codeExpression).And(nameExpression).And(stateExpression);
var entities = query.Where(expression).OrderByDescending(q => q.id).Skip((page - 1) * pagesize).Take(pagesize).AsNoTracking().ToList(); if(toexcel.ToInt() == 1)
var totalCount = query.Where(expression).Count(); {
return new PagedCollectionResult<ResponseFixtureTools>(entities, totalCount); var entities = query.Where(expression).OrderByDescending(q => q.id).AsNoTracking().ToList();
return new PagedCollectionResult<ResponseFixtureTools>(entities, entities.Count);
}
else
{
var entities = query.Where(expression).OrderByDescending(q => q.id).Skip((page - 1) * pagesize).Take(pagesize).AsNoTracking().ToList();
var totalCount = query.Where(expression).Count();
return new PagedCollectionResult<ResponseFixtureTools>(entities, totalCount);
}
} }
......
...@@ -56,7 +56,8 @@ namespace Siger.Middlelayer.AccRepository.Repositories ...@@ -56,7 +56,8 @@ namespace Siger.Middlelayer.AccRepository.Repositories
updatetime = q.updatetime.HasValue && q.updatetime > DateTime.MinValue ? q.updatetime.Value.ToString(ParameterConstant.DateTimeFormat) : "", updatetime = q.updatetime.HasValue && q.updatetime > DateTime.MinValue ? q.updatetime.Value.ToString(ParameterConstant.DateTimeFormat) : "",
sn = m.sn ?? "", sn = m.sn ?? "",
route = r.name ?? "", route = r.name ?? "",
routenumber = r == null ? "" : r.serialNumber.ToString() routenumber = r == null ? "" : r.serialNumber.ToString(),
cate_guid = c.guid ?? ""
}; };
Expression<Func<ResponseAutomationLocation, bool>> wavehouseidExpression = f => true; Expression<Func<ResponseAutomationLocation, bool>> wavehouseidExpression = f => true;
if (wavehouseid > 0) if (wavehouseid > 0)
......
...@@ -7,6 +7,6 @@ namespace Siger.Middlelayer.AccRepository.Repositories.Interface ...@@ -7,6 +7,6 @@ namespace Siger.Middlelayer.AccRepository.Repositories.Interface
{ {
public interface IAutomationFixtureToolsCategoryRepository : IAccRepositoryBase<siger_automation_fixture_tools_category> public interface IAutomationFixtureToolsCategoryRepository : IAccRepositoryBase<siger_automation_fixture_tools_category>
{ {
IPagedCollectionResult<ResponseFixtureToolsCategory> GetPagedList(int id, int projectid, int page, int pagesize); IPagedCollectionResult<ResponseFixtureToolsCategory> GetPagedList(int id, int projectid, int page, int pagesize, string toexcel = "");
} }
} }
...@@ -9,7 +9,7 @@ namespace Siger.Middlelayer.AccRepository.Repositories.Interface ...@@ -9,7 +9,7 @@ namespace Siger.Middlelayer.AccRepository.Repositories.Interface
public interface IAutomationFixtureToolsRepository : IAccRepositoryBase<siger_automation_fixture_tools> public interface IAutomationFixtureToolsRepository : IAccRepositoryBase<siger_automation_fixture_tools>
{ {
IPagedCollectionResult<ResponseFixtureTools> GetPagedList(int category, string code, string name, int state, IPagedCollectionResult<ResponseFixtureTools> GetPagedList(int category, string code, string name, int state,
int projectid, int page, int pagesize); int projectid, int page, int pagesize, string toexcel = "");
IEnumerable<ResponseFixtureTools> GetDataList(int categoryid, int projectid); IEnumerable<ResponseFixtureTools> GetDataList(int categoryid, int projectid);
......
...@@ -50,6 +50,8 @@ namespace Siger.Middlelayer.AccRepository.Response ...@@ -50,6 +50,8 @@ namespace Siger.Middlelayer.AccRepository.Response
public int status { get; set; } public int status { get; set; }
public List<int> locationIds { get; set; } = new List<int>(); public List<int> locationIds { get; set; } = new List<int>();
public List<int> categoryIds { get; set; } = new List<int>();
public string cate_guid { get; set; }
} }
public class ResponseAutomationLocationList public class ResponseAutomationLocationList
......
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