Merge remote-tracking branch 'origin/master'

zhc4dev
wangjiadong 2 years ago
commit 0b4b1b18b7
  1. 4
      ant-design-vue-jeecg/src/config/router.config.js
  2. 33
      ant-design-vue-jeecg/src/views/productplan/ProductplanManage.vue
  3. 291
      ant-design-vue-jeecg/src/views/productplan/ZyPlanWuLiaoDataDetail.vue
  4. BIN
      ant-design-vue-jeecg/src/views/shopping/assets/bg05.png
  5. 6
      ant-design-vue-jeecg/src/views/shopping/assets/common.css
  6. BIN
      ant-design-vue-jeecg/src/views/shopping/assets/details01.png
  7. BIN
      ant-design-vue-jeecg/src/views/shopping/assets/details02.png
  8. BIN
      ant-design-vue-jeecg/src/views/shopping/assets/details03.png
  9. BIN
      ant-design-vue-jeecg/src/views/shopping/assets/details04.png
  10. 26
      ant-design-vue-jeecg/src/views/shopping/assets/iconfont/iconfont.css
  11. 2
      ant-design-vue-jeecg/src/views/shopping/assets/iconfont/iconfont.js
  12. 35
      ant-design-vue-jeecg/src/views/shopping/assets/iconfont/iconfont.json
  13. BIN
      ant-design-vue-jeecg/src/views/shopping/assets/iconfont/iconfont.ttf
  14. BIN
      ant-design-vue-jeecg/src/views/shopping/assets/iconfont/iconfont.woff
  15. BIN
      ant-design-vue-jeecg/src/views/shopping/assets/iconfont/iconfont.woff2
  16. BIN
      ant-design-vue-jeecg/src/views/shopping/assets/photo.png
  17. BIN
      ant-design-vue-jeecg/src/views/shopping/assets/selected01.png
  18. BIN
      ant-design-vue-jeecg/src/views/shopping/assets/selected02.png
  19. BIN
      ant-design-vue-jeecg/src/views/shopping/assets/selected03.png
  20. BIN
      ant-design-vue-jeecg/src/views/shopping/assets/selected04.png
  21. BIN
      ant-design-vue-jeecg/src/views/shopping/assets/selected05.png
  22. 2
      ant-design-vue-jeecg/src/views/shopping/components/Header/HeaderView.vue
  23. 412
      ant-design-vue-jeecg/src/views/shopping/pages/clothDetail.vue
  24. 93
      ant-design-vue-jeecg/src/views/shopping/pages/gerenzhongxin.vue
  25. 38
      ant-design-vue-jeecg/src/views/zyclothsstyle/modules/ZyClothsStyleListDetail.vue
  26. 9
      jeecg-boot/jeecg-boot-module-process/src/main/java/org/jeecg/modules/demo/base/controller/ZyClothsTypeController.java
  27. 3
      jeecg-boot/jeecg-boot-module-process/src/main/java/org/jeecg/modules/demo/base/mapper/ZyClothsTypeMapper.java
  28. 16
      jeecg-boot/jeecg-boot-module-system/src/main/java/org/jeecg/modules/productplan/controller/ZyPlanProcessController.java
  29. 5
      jeecg-boot/jeecg-boot-module-system/src/main/java/org/jeecg/modules/productplan/entity/ZyPlanAccessories.java
  30. 4
      jeecg-boot/jeecg-boot-module-system/src/main/java/org/jeecg/modules/productplan/entity/ZyPlanFabric.java
  31. 3
      jeecg-boot/jeecg-boot-module-system/src/main/java/org/jeecg/modules/productplan/service/IZyPlanProcessService.java
  32. 99
      jeecg-boot/jeecg-boot-module-system/src/main/java/org/jeecg/modules/productplan/service/impl/ZyPlanProcessServiceImpl.java

@ -642,4 +642,8 @@ export const constantRouterMap = [
path: '/shopping/views/ClothDetail',//这里是你需要设置新窗口打开的页面的路径s
component: () => import('@/views/shopping/pages/clothDetail'),
},
{
path: '/shopping/views/person',//这里是你需要设置新窗口打开的页面的路径s
component: () => import('@/views/shopping/pages/gerenzhongxin'),
},
]

@ -51,9 +51,9 @@
<a-button type="primary" icon="plus-circle" @click="autoFilling()">自动排位</a-button>
<a-button type="primary" icon="plus-circle" @click="createMaterialBill()">生成物料单
</a-button>
<a-button type="primary" icon="unordered-list" @click="viewMaterialBill()">查看物料单(计划面料&计划辅料)
<a-button type="primary" icon="unordered-list" @click="viewMaterialBill()">查看物料单
</a-button>
<a-button type="primary" icon="unordered-list" @click="viewMaterialBill()">发送到仓库
<a-button type="primary" icon="redo" @click="sendToRepository()">发送到仓库
</a-button>
<a-button type="primary" icon="download" @click="handleExportXls('计划工序')">导出</a-button>
<a-button type="primary" icon="rollback" @click="fanHui()">返回</a-button>
@ -205,6 +205,7 @@ export default {
syncProductProcess: "/org.jeecg.modules.productplan/zyPlanProcess/syncProductProcess",
autoFilling: "/org.jeecg.modules.productplan/zyPlanProcess/autoFilling",
createMaterialBill: "/org.jeecg.modules.productplan/zyPlanProcess/createMaterialBill",
sendToRepository: "/org.jeecg.modules.productplan/zyPlanProcess/sendToRepository",
stationToolslist: "/stationTool/list2",
stationMachinelist: "/stationMachine/list2",
addProcessBatch: "/org.jeecg.modules.productplan/zyPlanProcess/addProcessBatch",
@ -351,9 +352,30 @@ export default {
},
//
viewMaterialBill(props) {
// alert("deatil row id:"+props.row.id);
this.$refs.zyPlanProcessDataDetail.showModal(props.row.id)
viewMaterialBill() {
// alert("deatil this.planId:"+this.planId);
// this.$refs.zyPlanProcessDataDetail.showModal(this.planId)
this.$router.push({
path: '/productplan/ZyPlanWuLiaoDataDetail',
query: { //
'planId': this.planId,
},
});
},
//
sendToRepository(){
this.loading = true;
getAction(this.url.sendToRepository, {"planId": this.planId}).then((res) => {
if (res.success) {
this.$message.success("操作成功");
this.loadData();
} else {
this.$message.warning(res.message)
}
}).finally(() => {
this.loading = false
})
},
//
@ -361,7 +383,6 @@ export default {
// debugger;
if (this.loadRouteType === false) {
this.planId = this.$route.query.planId;
// this.biaoTi = this.$route.query.styleNames+"";
console.log("*******传递的planId:" + this.planId)
this.loadRouteType = true;
}

@ -0,0 +1,291 @@
<template>
<a-card :bordered="false">
<p style="font-size: 30px;color:#333; padding-left: 30% ">{{ planInfo.productCode }}生产计划物料单</p>
<template>
<div>
<el-descriptions border :column='4'>
<el-descriptions-item label="工单编号 ">{{ planInfo.productCode }}</el-descriptions-item>
<el-descriptions-item label="生产企业">{{ planInfo.productOrg }}</el-descriptions-item>
<!-- <el-descriptions-item label="企业负责人 ">admin</el-descriptions-item>-->
<el-descriptions-item label="车间 ">{{ planInfo.workshop }}</el-descriptions-item>
<!-- <el-descriptions-item label="车间负责人 ">admin</el-descriptions-item>-->
<el-descriptions-item label="班组">{{ planInfo.team }}</el-descriptions-item>
<el-descriptions-item label="班组长">{{ planInfo.teamLade }}</el-descriptions-item>
<!-- <el-descriptions-item label="产品类型">{{ planInfo.productType }}</el-descriptions-item>-->
<!-- <el-descriptions-item label="产品编号">{{ planInfo.productNo }}</el-descriptions-item>-->
<!-- <el-descriptions-item label="产品名称">{{ planInfo.productName }}</el-descriptions-item>-->
<el-descriptions-item label="开始时间">{{ planInfo.workTime }}</el-descriptions-item>
<el-descriptions-item label="生产时长(天)">{{ planInfo.duration }}</el-descriptions-item>
<el-descriptions-item label="生产状态">{{ planInfo.status }}</el-descriptions-item>
<el-descriptions-item label="加急">{{ planInfo.speedUp }}</el-descriptions-item>
<!-- <el-descriptions-item label="销售企业">{{ planInfo.salesEnterprise }}</el-descriptions-item>-->
<!-- <el-descriptions-item label="订货期">{{ planInfo.orderTime }}</el-descriptions-item>-->
<!-- <el-descriptions-item label="制定人">100</el-descriptions-item>-->
<!-- <el-descriptions-item label="制定时间">100</el-descriptions-item>-->
<el-descriptions-item label="审核人">{{ planInfo.auditBy }}</el-descriptions-item>
<el-descriptions-item label="审核时间">{{ planInfo.auditTimr }}</el-descriptions-item>
</el-descriptions>
</div>
</template>
<!-- 查询区域-END -->
<div class="table-operator">
<a-button type="primary" icon="download" @click="handleExportXls('计划面料')">导出</a-button>
<a-button type="primary" @click="fanHui()">返回</a-button>
</div>
<!-- table区域-begin -->
<div>
<a-spin :spinning="confirmLoading">
<h3 style="width: 98%;;margin:20px auto 0">计划面料清单</h3>
<a-table style="width: 98%;font-size:14px;margin:10px auto" :columns="columns1" :data-source="data1" bordered
rowKey="nums" :pagination="false">
</a-table>
<h3 style="width: 98%;;margin:20px auto 0">计划辅料清单</h3>
<a-table style="width: 98%;font-size:14px;margin:10px auto 0" :columns="columns2" :data-source="data2"
rowKey="id"
bordered :pagination="false">
</a-table>
<h3 style="width: 98%;;margin:20px auto 0">工序面料清单</h3>
<a-table style="width: 98%;font-size:14px;margin:10px auto 0" :columns="columns3" :data-source="data3"
rowKey="id" bordered :pagination="false">
</a-table>
<h3 style="width: 98%;;margin:20px auto 0">工序辅料清单</h3>
<a-table style="width: 98%;font-size:14px;margin:10px auto 0" :columns="columns4" :data-source="data4"
rowKey="id" bordered :pagination="false">
</a-table>
</a-spin>
<!-- </a-modal>-->
</div>
</a-card>
</template>
<script>
import {getAction} from "@api/manage";
import {mixinDevice} from '@/utils/mixin'
import {JeecgListMixin} from '@/mixins/JeecgListMixin'
import {filterObj} from "@/utils/util";
const columns1 = [
{
title: '计划ID',
align: "center",
dataIndex: 'planId'
},
{
title: '面料',
align: "center",
dataIndex: 'fabricName'
},
{
title: '用量(合计)',
align: "center",
dataIndex: 'amount'
},
];
const columns2 = [
{
title: '计划ID',
align: "center",
dataIndex: 'planId'
},
{
title: '辅料',
align: "center",
dataIndex: 'accessoriesName'
},
{
title: '用量(合计)',
align: "center",
dataIndex: 'amount'
},
];
const columns3 = [
// {
// title:'ID',
// align:"center",
// dataIndex: 'planId'
// },
{
title: '计划工序ID',
align: "center",
dataIndex: 'planProcessId'
},
{
title: '面料',
align: "center",
dataIndex: 'fabricName'
},
{
title: '用量',
align: "center",
dataIndex: 'amount'
},
];
const columns4 = [
// {
// title: 'ID',
// align: "center",
// dataIndex: 'planId'
// },
{
title: '计划工序ID',
align: "center",
dataIndex: 'planProcessId'
},
{
title: '辅料',
align: "center",
dataIndex: 'accessoriesName'
},
{
title: '用量',
align: "center",
dataIndex: 'amount'
},
];
export default {
name: "ZyStyleModelListDetails",
mixins: [JeecgListMixin, mixinDevice],
data() {
return {
data: [],
visible: false,
model: {},
confirmLoading: true,
//
data1: [],
columns1,
//
data2: [],
columns2,
//
data3: [],
columns3,
//
columns4,
data4: [],
planInfo: {},
wuLiaoInfo: {},
id: '',
planId: '',
loadRouteType: false,
url: {
list: "/org.jeecg.modules.productplan/zyPlanProcess/list",
getPlanInfo: "/org.jeecg.modules.productplan/zyPlanProcess/getPlanInfo",
getWuLiaoDetail: "/org.jeecg.modules.productplan/zyPlanProcess/getWuLiaoDetail",
exportXlsUrl: "/org.jeecg.modules.productplan/zyPlanProcess/exportXls",
},
}
},
created() {
this.confirmLoading = false;
this.visible = true;
this.loadParameter();
this.getPlanInfo(this.planId);
this.getWuLiaoDetail(this.planId);
},
methods: {
fanHui(record) {
this.$router.push({
path: '/productplan/ProductplanManage',
query: { //
'planId': this.planId,
},
});
},
getQueryParams(){
var param = Object.assign({}, this.queryParam);
// delete param.createTimeRange; //
return filterObj(param);
},
getWuLiaoDetail(planId) {
getAction(this.url.getWuLiaoDetail, {"planId": planId}).then((res) => {
if (res.success) {
this.wuLiaoInfo = res.result.records || res.result;
// console.log("wuLiaoInfo------------:" + JSON.stringify(this.wuLiaoInfo));
this.data1 = this.wuLiaoInfo.fabricList
this.data2 = this.wuLiaoInfo.accessoriesList
this.data3 = this.wuLiaoInfo.processFabricList
this.data4 = this.wuLiaoInfo.processAccessoriesList
// console.log("data1------------:" + JSON.stringify(this.data1));
} else {
this.$message.warning(res.message)
}
}).finally(() => {
this.loading = false
})
},
getPlanInfo(planId) {
getAction(this.url.getPlanInfo, {"planId": planId}).then((res) => {
if (res.success) {
this.planInfo = res.result.records || res.result;
} else {
this.$message.warning(res.message)
}
}).finally(() => {
this.loading = false
})
},
//
loadParameter() {
if (this.loadRouteType === false) {
this.planId = this.$route.query.planId;
console.log("*******传递的planId:" + this.planId)
this.loadRouteType = true;
}
},
// showModal(id) {
// this.visible = true;
// this.id = id
// this.getDetailData()
// },
// getDetailData() {
// getAction(this.url.detail, {id: this.id}).then((res) => {
// if (res.success) {
// this.data = res.result.records || res.result.records;
// console.log("data------------:" + JSON.stringify(this.data));
// } else {
// this.$message.warning(res.message)
// }
// }).finally(() => {
// this.confirmLoading = false
// })
// },
handleOk(e) {
this.confirmLoading = true;
setTimeout(() => {
this.visible = false;
this.confirmLoading = false;
}, 1);
},
handleCancel(e) {
this.visible = false;
},
},
}
</script>
<style scoped>
.table {
border-color: #d9d9d9;
border-radius: 3px
}
.table td {
padding: 10px 20px;
max-width: 380px;
}
.table td span {
color: #333
}
</style>

Binary file not shown.

After

Width:  |  Height:  |  Size: 259 KiB

@ -90,4 +90,8 @@ a {
.c_9a9b9b {
color: #9A9B9B;
}
}
.c_1B {
color: #1B1B1B;
}
.textfield {overflow: hidden;text-overflow: ellipsis;white-space: nowrap;}

Binary file not shown.

After

Width:  |  Height:  |  Size: 670 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 670 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 670 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 670 KiB

@ -1,8 +1,8 @@
@font-face {
font-family: "iconfont"; /* Project id 3854415 */
src: url('iconfont.woff2?t=1673012900302') format('woff2'),
url('iconfont.woff?t=1673012900302') format('woff'),
url('iconfont.ttf?t=1673012900302') format('truetype');
src: url('iconfont.woff2?t=1673860163583') format('woff2'),
url('iconfont.woff?t=1673860163583') format('woff'),
url('iconfont.ttf?t=1673860163583') format('truetype');
}
.iconfont {
@ -13,6 +13,26 @@
-moz-osx-font-smoothing: grayscale;
}
.icon-weishoucang:before {
content: "\e603";
}
.icon-yishoucang:before {
content: "\e614";
}
.icon-ic_jia:before {
content: "\e608";
}
.icon-zanting:before {
content: "\e640";
}
.icon-biaoqian:before {
content: "\e63d";
}
.icon-sousuo:before {
content: "\e622";
}

File diff suppressed because one or more lines are too long

@ -5,6 +5,41 @@
"css_prefix_text": "icon-",
"description": "",
"glyphs": [
{
"icon_id": "9526741",
"name": "未收藏",
"font_class": "weishoucang",
"unicode": "e603",
"unicode_decimal": 58883
},
{
"icon_id": "9526824",
"name": "已收藏",
"font_class": "yishoucang",
"unicode": "e614",
"unicode_decimal": 58900
},
{
"icon_id": "5219331",
"name": "衣架",
"font_class": "ic_jia",
"unicode": "e608",
"unicode_decimal": 58888
},
{
"icon_id": "887983",
"name": "暂停",
"font_class": "zanting",
"unicode": "e640",
"unicode_decimal": 58944
},
{
"icon_id": "1305451",
"name": "标签",
"font_class": "biaoqian",
"unicode": "e63d",
"unicode_decimal": 58941
},
{
"icon_id": "1304890",
"name": "搜索",

Binary file not shown.

After

Width:  |  Height:  |  Size: 32 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 19 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 16 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 13 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 14 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 10 KiB

@ -24,7 +24,7 @@
<!-- <img src="@/assets/sousuo.png" alt="" /> -->
<span class="iconfont icon-sousuo" :style="{ color: fontColor }"></span>
</router-link>
<router-link to="person">
<router-link to="/shopping/views/person">
<!-- <img src="@/assets/gerenzhongxin.png" alt=""/> -->
<span
class="iconfont icon-gerenzhongxin"

@ -1,20 +1,203 @@
<template>
<div class="clothDetails">
<Header fontColor="#000"></Header>
<div class="detailDiv">
详情页衣服id{{ this.$route.query.id }} 详情页衣服title{{
this.$route.query.title
}}
<div class="jz menu d-flex">
<el-breadcrumb separator="/">
<el-breadcrumb-item :to="{ path: '/shopping/views/clothType' }">服装类型</el-breadcrumb-item>
<el-breadcrumb-item :to="{ path: '/shopping/views/clothType' }">男装</el-breadcrumb-item>
<el-breadcrumb-item :to="{ path: '/shopping/views/clothType' }">裤子</el-breadcrumb-item>
<el-breadcrumb-item>{{
this.$route.query.title
}}</el-breadcrumb-item>
</el-breadcrumb>
<div class="collect d-flex">
<span v-if="collectFlag" class="iconfont icon-weishoucang"></span>
<span v-else class="iconfont icon-yishoucang"></span>
<span>点击收藏{{popularity}}人气</span>
</div>
</div>
<div class="detailDiv jz d-flex">
<!-- 详情页衣服id{{ this.$route.query.id }} 详情页衣服title{{-->
<!-- this.$route.query.title-->
<!-- }} -->
<div class="l">
<a-carousel arrows dots-class="slick-dots slick-thumb">
<a slot="customPaging" slot-scope="props">
<img src="../assets/details02.png" />
</a>
<div v-for="(item,index) in baseUrl" :key="index">
<img :src="item" />
</div>
</a-carousel>
</div>
<div class="r">
<div class="title f_20">{{title}}</div>
<p class="sales f_12">销量{{sales}}</p>
<p class="price f_14 c_333">价格<span class="f_20">¥{{price}}</span></p>
<p class="favour f_14 c_333">优惠<span class="f_12">{{favour}}</span></p>
<p class="sell f_14 c_333 d-flex">促销<span class="f_14">{{sell}}</span><span class="button">详情>>></span></p>
<div class="line"></div>
<div class="color f_14">颜色:{{color}} </div>
<a-radio-group v-model="radioValue" @change="onChange">
<a-radio :value="1">
</a-radio>
<a-radio :value="2">
</a-radio>
<a-radio :value="3">
</a-radio>
</a-radio-group>
<div class="size f_14">尺码:<a>尺码参照表</a> | <i class="iconfont icon-ic_jia"></i> <span class="c_333 f_14">找到您的尺寸</span></div>
<div class="sizeDiv d-flex">
<span class="item f_16" v-for="(item,index) in sizeList" :key="index">{{item.size}}</span>
</div>
<div class="line"></div>
<div class="serve f_16 c_1B">免费配送与退货服务<span class="button">更多详情</span></div>
<div class="line"></div>
<div class="stages f_16 c_1B">使用花呗分期最低每月¥1182.50<span class="button c_1B">详细说明</span></div>
<div class="d-flex btnDiv">
<div class="dialogButton primary f_14">加入购物袋</div>
<div type="primary" class="dialogButton default f_14">立即购买</div></div>
</div>
</div>
<div class="selected jz">
<div class="title f_16 c_333">已选</div>
<div class="selectedCloth d-flex">
<div class="item" v-for="(item,index) in selectedClothList" :key="index">
<img :src="item.url">
<p class="c_333">{{item.text}}</p>
</div>
</div>
</div>
<div class="detail jz">
<div class="title d-flex">
<span class="c_fff">商品介绍</span>
<span class="c_fff">加入购物车</span>
</div>
<table>
<tr>
<td class="textfield">商品名称{{clothDetail.name}}</td>
<td>商品编号{{clothDetail.num}}</td>
<td>风格{{clothDetail.style}}</td>
<td>商品毛重{{clothDetail.weight}}</td>
</tr>
<tr>
<td>货号{{clothDetail.itemNo}}</td>
<td>领型{{clothDetail.collar}}</td>
<td>材质{{clothDetail.material}}</td>
<td>适用场景{{clothDetail.scene}}</td>
</tr>
<tr>
<td>版型{{clothDetail.type}}</td>
<td>衣门襟{{clothDetail.placket}}</td>
<td>开衩设计{{clothDetail.slit}}</td>
<td>适用人群{{clothDetail.people}}</td>
</tr>
</table>
</div>
<Footer></Footer>
</div>
</template>
<script>
import Header from "../components/Header/HeaderView";
import Footer from "../components/Footer/FooterView"
export default {
name: "clothDetail",
components: { Header },
components: { Header,Footer },
data() {
return {};
return {
radioValue: 1,
collectFlag:false,//
popularity:0,//
title:'【西服定制】定制西装男套装结婚西装婚礼伴郎订婚正装新郎西服套装夏季 款式仅供参考 一人一版量身定制',//
sales:2342,//
price:13200.00,//
favour:'满1100减300',//
sell:'每满300元,可减40元现金,每满600元,可减80元现金,最多可减40000元 | 距结束还剩',//
color:'黑色',//
sizeList:[
{
id:1,
size:"XXS"
},
{
id:2,
size:"XS"
},
{
id:3,
size:"S"
},
{
id:4,
size:"M"
},
{
id:5,
size:"L"
},
{
id:6,
size:"XL"
},
{
id:7,
size:"XXL"
},
],
selectedClothList:[
{
id:1,
text:'明门襟',
url:require("../assets/selected04.png")
},
{
id:2,
text:'大八字领',
url:require("../assets/selected02.png")
},
{
id:3,
text:'无口袋',
url:require("../assets/selected05.png")
},
{
id:4,
text:'边褶不收省',
url:require("../assets/selected03.png")
},
{
id:5,
text:'礼服圆角',
url:require("../assets/selected01.png")
},
],//
clothDetail:{
name:'【西服定制】定制西装男套装结婚西装婚礼伴郎订婚正装新郎西服套装夏季 款式仅供参考 一人一版量身定制',
num:10053909681884,
style:'通勤风',
weight:'1.0Kg',
itemNo:'3680婚庆西服',
collar:'青果领',
material:'羊毛100%',
scene:'婚礼,宴会',
type:'标准型',
placket:'单排扣',
slit:'后中开衩',
people:'青年'
},//
baseUrl:[require("../assets/details01.png"),require("../assets/details02.png"),require("../assets/details03.png"),require("../assets/details04.png"),]
};
},
methods: {
onChange(e) {
console.log('radio checked', e.target.value);
},
},
};
</script>
@ -24,9 +207,224 @@
}
</style>
<style lang="less" scoped>
@import '../assets/common.css';
.clothDetails {
.detailDiv {
.menu{
justify-content: space-between;
padding-top: 100px;
.collect{
&:hover .iconfont{
color: red;
}
align-items: center;
font-size: 14px;
span{
margin-right: 5px;
vertical-align: top;
}
}
}
.detailDiv {
justify-content: space-between;
min-width: 1200px;
.l{
width: 610px;
.cloth{
width: 610px;
height: 641px;
}
}
.r{
padding: 20px;
.title{
color: #1B1B1B;
font-weight: 500;
margin-bottom: 16px;
}
.sales{
font-weight: 400;
color: rgba(51,51,51,0.5);
}
.favour{
color: #746957;
span{
border: 1px solid #746957;
padding: 2px 5px;
}
}
.sell{
align-items: center;
.f_14{
display: inline-block;
width: 50%;
overflow: hidden;text-overflow: ellipsis;white-space: nowrap;
}
}
.line{
height: 0px;
border-bottom: 1px solid #ccc;
margin: 20px 0 20px 0;
}
.color{
font-weight: 600;
color: #1B1B1B;
margin-bottom: 15px;
}
& /deep/ .ant-radio-wrapper{
margin-right: 25px;
}
.size{
margin-top: 20px;
a{
margin-left: 20px;
text-decoration: underline;
color: #333333;
margin-right: 20px;
}
i{
margin-left: 20px;
margin-right: 6px;
color: #1B1B1B;
}
}
.sizeDiv{
margin-top: 20px;
margin-bottom: 20px;
.item{
margin-right: 30px;
color: #1B1B1B ;
}
}
.serve{
font-weight: 600;
.button{
margin-left: 10px;
text-decoration: underline;
}
}
.stages{
color: #B79674;
margin-bottom: 30px;
.button{
text-decoration: underline;
}
}
.btnDiv{
justify-content: space-around;
.dialogButton {
width: 35%;
min-width: 300px;
height: 44px;
text-align: center;
line-height: 44px;
transition: all 0.2s;
}
.default {
border: 1px solid #1b1b1b;
color: #1b1b1b;
margin-right: 20px;
&:hover {
border-color: #fff;
color: #fff;
background-color: #1b1b1b;
}
}
.primary {
background: #1b1b1b;
border: 2px solid #1b1b1b;
color: #e5dfd9;
&:hover {
// border-color: #1b1b1b;
// color: #1b1b1b;
// background-color: #fff;
opacity: 0.8;
}
}
}
}
}
.selected{
.title{
border-left: 5px solid #746957;
height: 40px;
line-height: 40px;
padding-left: 25px;
margin-bottom: 50px;
}
.selectedCloth{
flex-wrap: wrap;
.item{
margin-right: 55px;
width: 180px;
height: 250px;
img{
width: 180px;
height: 180px;
margin-bottom: 20px;
}
p{
text-align: center;
}
}
}
}
.detail{
margin-bottom: 20px;
.title{
justify-content: space-between;
background-color: #F7F7F7;
border: 1px solid #EEEEEE;
margin-bottom: 25px;
span{
width: 146px;
height: 38px;
line-height: 38px;
background-color: #746957;
text-align: center;
align-items: center;
}
}
table{
width: 100%;
td{
max-width: 500px;
min-width: 300px;
margin-right: 20px;
padding-right: 50px;
padding-bottom: 10px;
}
}
}
}
</style>
<style scoped>
/* For demo */
.ant-carousel >>> .slick-dots {
height: auto;
}
.ant-carousel >>> .slick-slide img {
border: 5px solid #fff;
display: block;
margin: auto;
max-width: 80%;
}
.ant-carousel >>> .slick-thumb {
bottom: -45px;
}
.ant-carousel >>> .slick-thumb li {
width: 60px;
height: 45px;
}
.ant-carousel >>> .slick-thumb li img {
width: 100%;
height: 100%;
filter: grayscale(100%);
}
.ant-carousel >>> .slick-thumb li.slick-active img {
filter: grayscale(0%);
}
</style>

@ -0,0 +1,93 @@
<template>
<div class="gerenzhongxin">
<Header></Header>
<div class="bg"></div>
<div class="info jz d-flex">
<img src="../assets/photo.png">
<p class="f_36 c_1B">welcome, 用户名</p>
<a>量体数据</a>
</div>
<div class="jz">
<a-tabs default-active-key="1" :tabBarGutter="200" @change="callback">
<a-tab-pane key="1" tab="我的账户">
我的账户
</a-tab-pane>
<a-tab-pane key="2" tab="我的收藏" force-render>
我的收藏
</a-tab-pane>
<a-tab-pane key="3" tab="地址管理">
地址管理
</a-tab-pane>
<a-tab-pane key="4" tab="发票管理" force-render>
发票管理
</a-tab-pane>
<a-tab-pane key="5">
<span slot="tab">
全部订单
<a-icon type="down" />
</span>
全部订单
</a-tab-pane>
</a-tabs>
</div>
<Footer></Footer>
</div>
</template>
<script>
import Header from "../components/Header/HeaderView";
import Footer from "../components/Footer/FooterView"
export default {
name: "gerenzhongxin",
components: { Header,Footer },
data() {
return {
};
},
methods: {
callback(key) {
console.log(key);
},
},
};
</script>
<!--<style>-->
<!-- .gerenzhongxin .top .middle .router-link-exact-active.router-link-active {-->
<!-- border-bottom: 2px solid #000;-->
<!-- }-->
<!--</style>-->
<style lang="less" scoped>
@import '../assets/common.css';
.bg{
width: 100%;
height: 250px;
background-image: url("../assets/bg05.png");
}
.info{
flex-direction: column;
align-items: center;
margin-top: -75px;
img{
width: 150px;
height: 150px;
margin-bottom: 30px;
}
p{
margin-bottom: 15px;
}
a{
color: #666;
font-size: 16px;
margin-bottom: 60px;
}
}
/*/deep/ .ant-tabs-nav{*/
/* width: 100%;*/
/* & >div{*/
/* display: flex;*/
/* justify-content: space-around;*/
/* }*/
/*}*/
</style>

@ -8,44 +8,6 @@
:width='1000'
@ok="handleOk"
@cancel="handleCancel">
<!-- <table border="1" style="width: 98%;font-size:14px;margin:30px auto 0" class="table">-->
<!-- <tr>-->
<!-- <td><span>款式名称</span>tttt</td>-->
<!-- <td><span>款式编号</span>QIYE80301100000130</td>-->
<!-- <td><span>款式规格</span>123</td>-->
<!-- <td><span>款式形式</span>预制</td>-->
<!-- </tr>-->
<!-- <tr>-->
<!-- <td><span>企业</span>黄淮服装智能制造中心</td>-->
<!-- <td><span>款式创建时间</span>2022-12-06 10:02:59</td>-->
<!-- &lt;!&ndash; 模块&ndash;&gt;-->
<!-- <td><span>服装类型</span>tttt</td>-->
<!-- <td><span>模块编号</span>QIYE80301100000130</td>-->
<!-- </tr>-->
<!-- <tr>-->
<!-- <td><span>模块名称</span>2</td>-->
<!-- <td><span>模块创建时间</span>2022-12-06 10:02:59</td>-->
<!-- &lt;!&ndash; 面料&ndash;&gt;-->
<!-- <td><span>面料编号</span>2</td>-->
<!-- <td><span>面料名称</span>2A01</td>-->
<!-- </tr>-->
<!-- <tr>-->
<!-- <td><span>面料创建时间</span>2022-12-06 10:02:59</td>-->
<!-- &lt;!&ndash; 辅料&ndash;&gt;-->
<!-- <td><span>辅料名称</span>2A01</td>-->
<!-- <td><span>辅料创建时间</span>2022-12-06 10:02:59</td>-->
<!-- &lt;!&ndash; 工序&ndash;&gt;-->
<!-- <td><span>工序名称</span>2A01</td>-->
<!-- </tr>-->
<!-- <tr>-->
<!-- <td><span>工序创建时间</span>2022-12-06 10:02:59</td>-->
<!-- <td><span>面料编号</span>2</td>-->
<!-- <td><span>面料名称</span>2A01</td>-->
<!-- <td><span>面料名称</span>2A01</td>-->
<!-- </tr>-->
<!-- </table>-->
<a-spin :spinning="confirmLoading">
<h3 style="width: 98%;;margin:0px auto">款式详情</h3>
<a-table style="width: 98%;font-size:14px;margin:10px auto" :columns="columns1" :data-source="data1" bordered

@ -1,5 +1,6 @@
package org.jeecg.modules.demo.base.controller;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
@ -24,6 +25,7 @@ import javax.servlet.http.HttpServletResponse;
import java.util.Arrays;
import java.util.HashSet;
import java.util.List;
import java.util.stream.Collectors;
/**
* @Description: zy_cloths_type
@ -147,6 +149,13 @@ public class ZyClothsTypeController extends JeecgController<ZyClothsType, IZyClo
@DeleteMapping(value = "/delete")
public Result<?> delete(@RequestParam(name = "id", required = true) String id) {
zyClothsTypeService.removeById(id);
//如果这是父级 连带子集一起删除
String parentId = zyClothsTypeMapper.getParentId(id);
if (StringUtils.isEmpty(parentId)){
List<ZyClothsType> zyClothsTypeList = zyClothsTypeService.list(new LambdaQueryWrapper<ZyClothsType>().eq(ZyClothsType::getTypeId,id));
List<String> collect = zyClothsTypeList.stream().map(ZyClothsType::getId).collect(Collectors.toList());
zyClothsTypeService.removeByIds(collect);
}
return Result.OK("删除成功!");
}

@ -43,4 +43,7 @@ public interface ZyClothsTypeMapper extends BaseMapper<ZyClothsType> {
/**根据type_id拿到类型名称*/
@Select("select type_name from zy_cloths_type where id = #{id} ")
String getNameByTypeId(String id);
@Select("select type_id from zy_cloths_type where id = #{id} ")
String getParentId(String id);
}

@ -100,6 +100,14 @@ public class ZyPlanProcessController extends JeecgController<ZyPlanProcess, IZyP
return Result.OK(map);
}
@ApiOperation(value = "查看物料清单", notes = "查看物料清单")
@GetMapping(value = "/getWuLiaoDetail")
public Result<?> getWuLiaoDetail(ZyPlanProcess zyPlanProcess,
HttpServletRequest req) {
Map<String, Object> map = zyPlanProcessService.getWuLiaoDetail(zyPlanProcess);
return Result.OK(map);
}
@ApiOperation(value = "读取工序", notes = "读取工序")
@GetMapping(value = "/syncProductProcess")
public Result<?> syncProductProcess(ZyPlanProcess zyPlanProcess,
@ -138,6 +146,14 @@ public class ZyPlanProcessController extends JeecgController<ZyPlanProcess, IZyP
return Result.OK();
}
@ApiOperation(value = "发送到仓库", notes = "发送到仓库")
@GetMapping(value = "/sendToRepository")
public Result<?> sendToRepository(ZyPlanProcess zyPlanProcess,
HttpServletRequest req) {
zyPlanProcessService.sendToRepository(zyPlanProcess);
return Result.OK();
}
@ApiOperation(value = "计划班组管理-查询产品工序&班组", notes = "计划班组管理-查询产品工序&班组")
@GetMapping(value = "/getTeamDatalist")
public Result<?> getTeamDatalist(ZyPlanProcess zyPlanProcess,

@ -75,6 +75,11 @@ public class ZyPlanAccessories implements Serializable {
@ApiModelProperty(value = "辅料id")
@Dict(dictTable = "zy_accessories", dicText = "contents", dicCode = "id")
private String accessoriesId;
@Excel(name = "辅料名称", width = 15)
@ApiModelProperty(value = "辅料名称")
private String accessoriesName;
/**
* 用量合计
*/

@ -76,6 +76,10 @@ public class ZyPlanFabric implements Serializable {
@ApiModelProperty(value = "面料id")
@Dict(dictTable = "zy_fabric", dicText = "name", dicCode = "id")
private String fabricId;
@Excel(name = "面料名称", width = 15)
@ApiModelProperty(value = "面料名称")
private String fabricName;
/**
* 用量合计
*/

@ -27,4 +27,7 @@ public interface IZyPlanProcessService extends IService<ZyPlanProcess> {
void createMaterialBill(ZyPlanProcess zyPlanProcess);
Map<String, Object> getWuLiaoDetail(ZyPlanProcess zyPlanProcess);
void sendToRepository(ZyPlanProcess zyPlanProcess);
}

@ -11,6 +11,8 @@ import org.jeecg.modules.demo.accessories.entity.ZyAccessories;
import org.jeecg.modules.demo.accessories.service.IZyAccessoriesService;
import org.jeecg.modules.demo.base.entity.ZyProcess;
import org.jeecg.modules.demo.base.service.IZyProcessService;
import org.jeecg.modules.demo.delivery.entity.Delivery;
import org.jeecg.modules.demo.delivery.service.IDeliveryService;
import org.jeecg.modules.demo.fabric.entity.ZyFabric;
import org.jeecg.modules.demo.fabric.service.IZyFabricService;
import org.jeecg.modules.demo.ordergoods.entity.OrderGoods;
@ -146,6 +148,9 @@ public class ZyPlanProcessServiceImpl extends ServiceImpl<ZyPlanProcessMapper, Z
@Autowired
private IZyPlanAccessoriesService iZyPlanAccessoriesService;
@Autowired
private IDeliveryService iDeliveryService;
public List<ZyPlanProcess> getProcessDatalist(ZyPlanProcess zyPlanProcess) {
//生产计划id
String planId = zyPlanProcess.getPlanId();
@ -234,12 +239,12 @@ public class ZyPlanProcessServiceImpl extends ServiceImpl<ZyPlanProcessMapper, Z
throw new JeecgBootException("生产计划不存在!");
}
List<ZyPlanProcess> planProcessList = this.list(new LambdaQueryWrapper<ZyPlanProcess>().eq(ZyPlanProcess::getPlanId, zyPlanProcess.getPlanId()));
if(ObjectUtils.isEmpty(planProcessList)) return;
if (ObjectUtils.isEmpty(planProcessList)) return;
this.delBillData(zyPlanProcess);
List<String> idList = planProcessList.stream().map(ZyPlanProcess::getId).collect(Collectors.toList());
QueryWrapper qw = new QueryWrapper();
qw.select("fabric_id", "sum(amount) as count");
qw.select("fabric_id", "fabric_name", "sum(amount) as count");
qw.in("plan_process_id", idList);
qw.groupBy("fabric_id");
List<Map<String, Object>> maplist = zyPlanProcessFabricMapper.selectMaps(qw);
@ -248,13 +253,14 @@ public class ZyPlanProcessServiceImpl extends ServiceImpl<ZyPlanProcessMapper, Z
ZyPlanFabric zyPlanFabric = new ZyPlanFabric();
zyPlanFabric.setPlanId(zyPlanProcess.getPlanId());
zyPlanFabric.setFabricId(mp.get("fabric_id").toString());
zyPlanFabric.setFabricName(mp.get("fabric_name").toString());
zyPlanFabric.setAmount(new BigDecimal(mp.get("count").toString()));
zyPlanFabricList.add(zyPlanFabric);
}
iZyPlanFabricService.saveBatch(zyPlanFabricList);
QueryWrapper qw2 = new QueryWrapper();
qw2.select("accessories_id", "sum(amount) as count");
qw2.select("accessories_id", "accessories_name", "sum(amount) as count");
qw2.in("plan_process_id", idList);
qw2.groupBy("accessories_id");
List<Map<String, Object>> maplist2 = zyPlanProcessAccessoriesMapper.selectMaps(qw2);
@ -263,6 +269,7 @@ public class ZyPlanProcessServiceImpl extends ServiceImpl<ZyPlanProcessMapper, Z
ZyPlanAccessories zyPlanAccessories = new ZyPlanAccessories();
zyPlanAccessories.setPlanId(zyPlanProcess.getPlanId());
zyPlanAccessories.setAccessoriesId(mp.get("accessories_id").toString());
zyPlanAccessories.setAccessoriesName(mp.get("accessories_name").toString());
zyPlanAccessories.setAmount(new BigDecimal(mp.get("count").toString()));
zyPlanAccessoriesList.add(zyPlanAccessories);
}
@ -270,6 +277,7 @@ public class ZyPlanProcessServiceImpl extends ServiceImpl<ZyPlanProcessMapper, Z
}
void diffMachine(ZyPlanProcess zyPlanProcess, List<Station> stationList, List<ZyProcessMachine> machineList) {
if (!ObjectUtils.isEmpty(machineList)) {
List<String> machineList1 = machineList.stream().map(ZyProcessMachine::getMachineId).collect(Collectors.toList());
@ -505,12 +513,95 @@ public class ZyPlanProcessServiceImpl extends ServiceImpl<ZyPlanProcessMapper, Z
return result;
}
@Override
public void sendToRepository(ZyPlanProcess zyPlanProcess) {
String planId = zyPlanProcess.getPlanId();
ZyProductPlan zyProductPlan = iZyProductPlanService.getById(planId);
if (ObjectUtils.isEmpty(zyProductPlan)) {
throw new JeecgBootException("生产计划不存在!");
}
List<ZyPlanFabric> fabricList = iZyPlanFabricService.list(new LambdaQueryWrapper<ZyPlanFabric>()
.eq(ZyPlanFabric::getPlanId, zyPlanProcess.getPlanId()));
List<Delivery> deliveryList4Fabric = new LinkedList<>();
Optional.ofNullable(fabricList).orElse(new LinkedList<>()).forEach(e -> {
Delivery delivery = new Delivery();
delivery.setDeliveryReason("0");
delivery.setDeliveryTime(new Date());
delivery.setItemType("0");
delivery.setAmount(e.getAmount().doubleValue());
delivery.setCarrierId("admin");
delivery.setAdminId("admin");
delivery.setStorehouseId("TODO");
ZyFabric zyFabric = iZyFabricService.getById(e.getFabricId());
if (!ObjectUtils.isEmpty(zyFabric)) {
delivery.setItemCode(zyFabric.getFabricNumber());
}
deliveryList4Fabric.add(delivery);
});
iDeliveryService.saveBatch(deliveryList4Fabric);
List<ZyPlanAccessories> accessoriesList = iZyPlanAccessoriesService.list(new LambdaQueryWrapper<ZyPlanAccessories>()
.eq(ZyPlanAccessories::getPlanId, zyPlanProcess.getPlanId()));
List<Delivery> deliveryList4accessories = new LinkedList<>();
Optional.ofNullable(accessoriesList).orElse(new LinkedList<>()).forEach(e -> {
Delivery delivery2 = new Delivery();
delivery2.setDeliveryReason("0");
delivery2.setDeliveryTime(new Date());
delivery2.setItemType("1");
delivery2.setAmount(e.getAmount().doubleValue());
delivery2.setCarrierId("admin");
delivery2.setAdminId("admin");
delivery2.setStorehouseId("TODO");
ZyAccessories zyAccessories = iZyAccessoriesService.getById(e.getAccessoriesId());
if (!ObjectUtils.isEmpty(zyAccessories)) {
delivery2.setItemCode(zyAccessories.getNums());
}
deliveryList4accessories.add(delivery2);
});
iDeliveryService.saveBatch(deliveryList4accessories);
}
@Override
public Map<String, Object> getWuLiaoDetail(ZyPlanProcess zyPlanProcess) {
String planId = zyPlanProcess.getPlanId();
ZyProductPlan zyProductPlan = iZyProductPlanService.getById(planId);
if (ObjectUtils.isEmpty(zyProductPlan)) {
throw new JeecgBootException("生产计划不存在!");
}
List<ZyPlanProcess> planProcessList = this.list(new LambdaQueryWrapper<ZyPlanProcess>()
.eq(ZyPlanProcess::getPlanId, zyPlanProcess.getPlanId()));
List<String> ids = Optional.ofNullable(planProcessList).orElse(new LinkedList<>())
.stream().map(ZyPlanProcess::getId).collect(Collectors.toList());
Map<String, Object> result = new HashMap<>();
List<ZyPlanFabric> fabricList = iZyPlanFabricService.list(new LambdaQueryWrapper<ZyPlanFabric>()
.eq(ZyPlanFabric::getPlanId, zyPlanProcess.getPlanId()));
result.put("fabricList", fabricList);
List<ZyPlanAccessories> accessoriesList = iZyPlanAccessoriesService.list(new LambdaQueryWrapper<ZyPlanAccessories>()
.eq(ZyPlanAccessories::getPlanId, zyPlanProcess.getPlanId()));
result.put("accessoriesList", accessoriesList);
List<ZyPlanProcessFabric> processFabricList = iZyPlanProcessFabricService.list(new LambdaQueryWrapper<ZyPlanProcessFabric>()
.in(ZyPlanProcessFabric::getPlanProcessId, ids));
result.put("processFabricList", processFabricList);
List<ZyPlanProcessAccessories> processAccessoriesList = iZyPlanProcessAccessoriesService.list(new LambdaQueryWrapper<ZyPlanProcessAccessories>()
.in(ZyPlanProcessAccessories::getPlanProcessId, ids));
result.put("processAccessoriesList", processAccessoriesList);
return result;
}
@Override
public List<ProcessDataVo> getTeamDatalist(ZyPlanProcess zyPlanProcess) {
//生产计划id
String planId = zyPlanProcess.getPlanId();
ZyProductPlan zyProductPlan = iZyProductPlanService.getById(planId);
if (ObjectUtils.isEmpty(zyPlanProcess)) {
if (ObjectUtils.isEmpty(zyProductPlan)) {
throw new JeecgBootException("生产计划不存在!");
}
//工单id

Loading…
Cancel
Save