Merge remote-tracking branch 'origin/master'

This commit is contained in:
cun-nan 2024-06-05 17:39:06 +08:00
commit ca020b8c2a
22 changed files with 130 additions and 98 deletions

View File

@ -102,7 +102,15 @@
<el-table-column prop="orderNo" align="center" label="订单号" width="220"> </el-table-column>
<el-table-column prop="storeName" align="center" label="门店"> </el-table-column>
<el-table-column prop="createBy" align="center" label="收银员"> </el-table-column>
<el-table-column prop="payChannel" align="center" label="支付渠道"> </el-table-column>
<el-table-column prop="payChannel" align="center" label="支付渠道">
<template slot-scope="scope">
<span v-if="scope.row.payChannel=='cashier'">收银台</span>
<span v-else-if="scope.row.payChannel=='POS'">POS机</span>
<span v-else-if="scope.row.payChannel=='PC'">平台</span>
<span v-else-if="scope.row.payChannel=='applet'">小程序</span>
<span v-else>其他</span>
</template>
</el-table-column>
<el-table-column prop="mchntCd" align="center" label="商户号"> </el-table-column>
<el-table-column prop="amount" align="center" label="费率"> </el-table-column>
<el-table-column prop="type" align="center" label="订单来源">

View File

@ -129,7 +129,15 @@
<el-table-column prop="orderNo" align="center" label="订单号" width="220"> </el-table-column>
<el-table-column prop="storeName" align="center" label="门店"> </el-table-column>
<el-table-column prop="createBy" align="center" label="收银员"> </el-table-column>
<el-table-column prop="payChannel" align="center" label="支付渠道"> </el-table-column>
<el-table-column prop="payChannel" align="center" label="支付渠道">
<template slot-scope="scope">
<span v-if="scope.row.payChannel=='cashier'">收银台</span>
<span v-else-if="scope.row.payChannel=='POS'">POS机</span>
<span v-else-if="scope.row.payChannel=='PC'">平台</span>
<span v-else-if="scope.row.payChannel=='applet'">小程序</span>
<span v-else>其他</span>
</template>
</el-table-column>
<el-table-column prop="mchntCd" align="center" label="商户号"> </el-table-column>
<el-table-column prop="amount" align="center" label="费率"> </el-table-column>
<el-table-column prop="type" align="center" label="订单来源">
@ -161,7 +169,12 @@
<el-tag type="danger" v-else>支付失败</el-tag>
</template>
</el-table-column>
<el-table-column prop="goodsMoney" align="center" label="订单金额"> </el-table-column>
<el-table-column prop="goodsMoney" align="center" label="订单金额">
<template slot-scope="scope">
<span v-if="scope.row.type=='3'">{{scope.row.goodsMoney + scope.row.payMoney}}</span>
<span v-else>{{scope.row.goodsMoney}}</span>
</template>
</el-table-column>
<el-table-column prop="payMoney" align="center" label="优惠后应付金额"> </el-table-column>
<el-table-column prop="refMoney" align="center" label="退款金额">
<template slot-scope="scope">

View File

@ -32,13 +32,13 @@
<!-- 列表信息-->
<el-card style="margin-top: 20px" >
<el-row :gutter="10" class="mb8">
<el-col :span="1.5">
<!-- <el-col :span="1.5">
<el-button
type="primary"
icon="el-icon-plus"
@click="handleAdd"
>新增二维码</el-button>
</el-col>
</el-col>-->
<!-- <right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>-->
</el-row>
@ -46,12 +46,12 @@
<el-table-column type="index" width="80" align="center" label="序号"/>
<el-table-column label="二维码SN号" align="center" prop="tagCodeSn" />
<el-table-column label="码牌SN号" align="center" prop="snCode" />
<el-table-column label="是否绑定员工" align="center" prop="mtStatus" width="110">
<!-- <el-table-column label="是否绑定员工" align="center" prop="mtStatus" width="110">
<template slot-scope="scope">
<span v-if="scope.row.mtStatus == 1"></span>
<span v-else></span>
</template>
</el-table-column>
</el-table-column>-->
<el-table-column label="绑定员工" align="center" prop="staffName"></el-table-column>
<el-table-column label="创建时间" align="center" prop="createTime" width="150"/>

View File

@ -11,6 +11,8 @@ VUE_APP_BASE_API = '/dev-api'
VUE_APP_PUBLIC_PATH = '/'
# 后端接口地址
#VUE_APP_SERVER_URL = 'http://192.168.31.96:8080/'
#VUE_APP_SERVER_URL = 'http://192.168.31.178:8081'
VUE_APP_SERVER_URL = 'http://localhost:8080/'
# cp端地址

View File

@ -1,7 +1,7 @@
<template>
<div class="app-container">
<el-row>
<el-col :span="7">
<el-col :span="6">
<el-card style="margin-right: 20px">
<div class="left-box">
<div class="title-h">组织架构</div>
@ -16,7 +16,7 @@
<el-tree
:data="Thetree"
show-checkbox
:indent="0 "
:indent="0"
:props="defaultProps"
@change="handleChange"
node-key="id"
@ -30,7 +30,7 @@
</el-card>
</el-col>
<el-col :span="17">
<el-col :span="18">
<el-card style="margin-bottom: 20px;">
<el-tabs v-model="activeName" @tab-click="handleClick">
<el-tab-pane label="用户信息" name="list">
@ -2161,7 +2161,7 @@ export default {
}
.left-box{
box-sizing: border-box;
height: 75vh;
height: 80vh;
padding: 15px;
overflow-y: auto; /* 只显示垂直滚动条 */
}

View File

@ -102,7 +102,15 @@
<el-table-column prop="orderNo" align="center" label="订单号" width="220"> </el-table-column>
<el-table-column prop="storeName" align="center" label="门店"> </el-table-column>
<el-table-column prop="createBy" align="center" label="收银员"> </el-table-column>
<el-table-column prop="payChannel" align="center" label="支付渠道"> </el-table-column>
<el-table-column prop="payChannel" align="center" label="支付渠道">
<template slot-scope="scope">
<span v-if="scope.row.payChannel=='cashier'">收银台</span>
<span v-else-if="scope.row.payChannel=='POS'">POS机</span>
<span v-else-if="scope.row.payChannel=='PC'">平台</span>
<span v-else-if="scope.row.payChannel=='applet'">小程序</span>
<span v-else>其他</span>
</template>
</el-table-column>
<el-table-column prop="mchntCd" align="center" label="商户号"> </el-table-column>
<el-table-column prop="amount" align="center" label="费率"> </el-table-column>
<el-table-column prop="type" align="center" label="订单来源">

View File

@ -134,6 +134,7 @@
<span v-if="scope.row.payChannel=='cashier'">收银台</span>
<span v-else-if="scope.row.payChannel=='POS'">POS机</span>
<span v-else-if="scope.row.payChannel=='PC'">平台</span>
<span v-else-if="scope.row.payChannel=='applet'">小程序</span>
<span v-else>其他</span>
</template>

View File

@ -506,8 +506,9 @@ public class AllOrderInfoServiceImpl extends ServiceImpl<AllOrderInfoMapper,AllO
}
allOrderInfo.setStoreIds(mtStores.stream().map(MtStore::getId).map(Long::valueOf).collect(Collectors.toList()));
} else {
MtStore byDeptId = mtStoreMapper.getByDeptId(allOrderInfo.getDeptId());
List<Long> depts = new ArrayList<>();
depts.add(Long.parseLong(nowAccountInfo.getStoreId().toString()));
depts.add(Long.parseLong(byDeptId.getId().toString()));
allOrderInfo.setStoreIds(depts);
}

View File

@ -30,10 +30,10 @@ public class PrintIntegralReport {
if (ObjectUtil.isNotEmpty(handover.get("shoppingCart"))) {
sb.append("<table><tr><td>商品名称</td><td>商品数量</td><td>价格</td></tr>");
List<Map<String,String>> o = (List<Map<String,String>>)handover.get("oilOrder");
List<Map<String,String>> o = (List<Map<String,String>>)handover.get("shoppingCart");
for (Map<String, String> stringStringMap : o) {
sb.append("<tr><td>"+stringStringMap.get("giftName")+"</td>");
sb.append("<td>"+stringStringMap.get("markPurchases")+"</td>");
sb.append("<td>"+((ObjectUtil.isNotEmpty(stringStringMap.get("markPurchases")))?stringStringMap.get("markPurchases").toString():"0"+"</td>");
sb.append("<td>"+ stringStringMap.get("price")+"</td></tr>");
}
sb.append("</table>");

View File

@ -46,6 +46,7 @@ public interface MtStoreMapper extends BaseMapper<MtStore> {
int ifDeleteByDeptId(@Param("deptId") Long deptId);
MtStore getByStroeName(@Param("name") String name);
MtStore getByDeptId(@Param("deptId") Long deptId);
List<MtStore> queryStoresByDeptIds(@Param("list") List<Long> deptIds);

View File

@ -37,5 +37,10 @@
#{item}
</foreach>
</select>
<select id="getByDeptId" resultType="com.fuint.business.store.entity.MtStore">
select * from mt_store
where
contract_dept_id = #{deptId}
</select>
</mapper>

View File

@ -49,6 +49,9 @@ public class TagCodeRecordController extends BaseController {
@Resource
private OilTagService oilTagService;
@Resource
private TagCodeService tagCodeService;
@Resource
private ILJStaffService mtStaffService;
@ -80,6 +83,7 @@ public class TagCodeRecordController extends BaseController {
tagCodeRecord.setId(tagCodeRecordDTO.getId());
tagCodeRecord.setStaffId(tagCodeRecordDTO.getStaffId());
tagCodeRecord.setStaffName(ljStaff.getRealName());
tagCodeService.selectByTagCodeSn(tagCodeRecordDTO.getTagCodeSn());
return getSuccessResult(this.tagCodeRecordService.updateById(tagCodeRecord));
}
// 一键解绑

View File

@ -20,5 +20,7 @@ public interface TagCodeService extends IService<TagCode> {
ResponseEntity<InputStreamResource> add(TagCodeDTO tagCodeDTO, HttpServletRequest request, HttpServletResponse response) throws Exception;
ResponseEntity<InputStreamResource> exportZip(TagCodeDTO tagCodeDTO, HttpServletRequest request, HttpServletResponse response) throws Exception;
TagCode selectByTagCodeSn(String tagCodeSn);
}

View File

@ -165,80 +165,13 @@ public class TagCodeServiceImpl extends ServiceImpl<TagCodeMapper, TagCode> impl
return ResponseEntity.ok()
.body(new InputStreamResource(zipInputStream));
// boolean flag = false;
// if (ObjectUtils.isNotEmpty(tagCodeDTO) && ObjectUtils.isNotEmpty(tagCodeDTO.getTotal())){
// int total = tagCodeDTO.getTotal();
// Random random1 = new Random();
// int i2 = random1.nextInt(1000);
// for (int i = 0; i < total; i++) {
// Random random = new Random();
// int i1 = random.nextInt(90000000);
// //String url = "https://oil.youkerr.com/";
// String url = "https://www.tuofeng.cc/oilRefuel?sn=byx"+i1;
// // String finalPath="/temp/qrCode/" + oilTag.getSnCode() + ".jpg";
// //String finalPath="D:\\office\\document\\photos\\tagCode\\"+"str"+i+".jpg";
// //String finalPath="/temp/tagCode/" + "byx"+i1 + ".jpg";
// //String finalPath="/temp/tagCode/"+ DateUtil.formatDate(new Date(), "yyyyMMdd") + "/"+i2 + "byx"+i1 + ".jpg";
//
// TagCode tagCode = new TagCode();
//
// tagCode.setCollection(url);
// tagCode.setTagCodeSn("byx"+i1);
// tagCode.setDeptId(Integer.parseInt(nowAccountInfo.getDeptId().toString()));
//
// //在图片上生成二维码
// String backgroundImage = "static/qrCodeImg/huanyingguanglin.jpg";
// InputStream backgroundStream = this.getClass().getClassLoader().getResourceAsStream(backgroundImage);
// String urls = "";
// urls = "/temp/tagCode/"+ DateUtil.formatDate(new Date(), "yyyyMMdd") + "-"+i2;
// File file1 = new File(urls);
// // String finalPath="/temp/tagCode/" + "byx"+i1 + ".jpg";
// String finalPath=urls+"/" + "byx"+i1 + ".jpg";
// qrCodeUtils.createLogoCodePictures(null, url, finalPath, null,null,urls);
//
//
// // 判断目录是否存在
// if (!file1.exists()) {
// file1.mkdirs();
// }
//
// File file =new File(finalPath);
// FileInputStream fileInputStream =new FileInputStream(file);
// // FileInputStream fileInputStream =new FileInputStream(file1);
// MultipartFile resFile = new MockMultipartFile("file", file.getName(), null, fileInputStream);
//// 返回图片路径
// String saveFile = backendFileController.saveFile(resFile);
// //return saveFile;
// tagCode.setImageUrl(saveFile);
// flag = save(tagCode);
// }
//
// //导出码牌
// //String IMAGE_DIRECTORY = "D:\\temp\\tagCode\\"+DateUtil.formatDate(new Date(), "yyyyMMdd")+"-"+i2;
// String IMAGE_DIRECTORY = "/temp/tagCode/"+DateUtil.formatDate(new Date(), "yyyyMMdd")+"-"+i2;
//
// List<File> imageFiles = getImageFiles(IMAGE_DIRECTORY);
// InputStream zipInputStream = createZipInputStream(imageFiles);
//
// response.setHeader("Content-Disposition", "attachment; filename=\"images.zip\"");
//
// return ResponseEntity.ok()
// .body(new InputStreamResource(zipInputStream));
// }else {
// InputStream inputStream = new InputStream() {
// @Override
// public int read() throws IOException {
// return 0;
// }
// };
// return ResponseEntity.ok()
// .body(new InputStreamResource(inputStream));
// }
//String IMAGE_DIRECTORY = "D:\\temp\\qrCode\\DateUtil.formatDate(new Date(), \"yyyyMMdd\") +";
}
@Override
public TagCode selectByTagCodeSn(String tagCodeSn) {
LambdaQueryWrapper<TagCode> queryWrapper = new LambdaQueryWrapper<>();
queryWrapper.eq(TagCode::getTagCodeSn, tagCodeSn)
return null;
}
private List<File> getImageFiles(String directory) {

View File

@ -1,8 +1,8 @@
# \u57FA\u672C\u914D\u7F6E
server.port=8080
server.port=8081
env.profile=dev
#env.properties.path=D:/workspaces/oilSystem/fuintBackend/configure/
env.properties.path=D:/workspaces/oilSystem/fuintBackend/configure/
env.properties.path=D:/code/oilSystem/fuintBackend/configure/
#env.properties.path=/www/wwwroot/shenlanshuke/oilAdmin/
# \u6570\u636E\u5E93\u914D\u7F6E

View File

@ -235,6 +235,8 @@
<version>2.2</version>
</dependency>
<!-- mvn install:install-file -PrintAIDL=PrintAIDL -DartifactId=PrintAIDL -Dversion=1.0 -Dpackaging=jar -Dfile=D:\code\oilSystem\fuintBackend\lib\PrintAIDL.jar-->
</dependencies>

View File

@ -11,5 +11,8 @@ VUE_APP_BASE_API = '/dev-api'
VUE_APP_PUBLIC_PATH = '/'
# 后端接口地址
#VUE_APP_SERVER_URL = 'http://192.168.31.96:8080/'
#VUE_APP_SERVER_URL = 'http://192.168.31.178:8081'
#VUE_APP_SERVER_URL = 'http://192.168.31.55:8081/'
VUE_APP_SERVER_URL = 'http://localhost:8080/'

View File

@ -56,9 +56,9 @@
<view style="width: 100%;display: flex;align-items: center;justify-content: space-between; ">
<view class="bai-box">
<view class="title-card">电子囤油卡</view>
<view class="">{{cardsList[cardsIndex].type || '暂无囤油'}}:{{cardsList[cardsIndex].refuelMoney || '0'}}L
<!-- <view class="">{{cardsList[cardsIndex].type || '暂无囤油'}}:{{cardsList[cardsIndex].refuelMoney || '0'}}L
</view>
<view>剩余油量{{cardsList[cardsIndex].refuelMoney || '0'}}L</view>
<view>剩余油量{{cardsList[cardsIndex].refuelMoney || '0'}}L</view> -->
<!-- <view style="lins"> **** **** **** 970 </view> -->
</view>
<!-- <view class="">
@ -176,7 +176,7 @@
console.log(res)
if (res.code == 200) {
this.cardsList = res.data.records
console.log(this.toil,111,res);
console.log(this.toil, 111, res);
}
})
},

View File

@ -20,11 +20,12 @@
<view class="hm-box">
<view class="hm-top">营业收入</view>
<view class="lan-title">{{dataForm.sumBalance}}</view>
<view class="lan-title">{{dataForm.sumBalance?dataForm.sumBalance:0}}</view>
<view class="b-bs">
<view class="">
<view class="hui-">营业额/笔数</view>
<view class="lan-">{{dataForm.sumBalance}}/{{dataForm.countBalance}}</view>
<view class="lan-">{{dataForm.sumBalance?dataForm.sumBalance:0}}/{{dataForm.countBalance}}
</view>
</view>
<view class="">
<view class="hui-">会员充值/笔数</view>

View File

@ -6,7 +6,7 @@
<view class="">收银员:{{ handoverList && handoverList.baseInfo ? handoverList.baseInfo.realName : '未知姓名' }}
</view>
<view class="b-ss">
<view class="">今日累计:{{indexData.totalPayMoney}}</view>
<view class="">今日累计:{{indexData.totalPayMoney?indexData.totalPayMoney:0}}</view>
<view class="d-s" @click="jump()">
<view class="">交班记录</view>
<u-icon name="arrow-right" color="#fff" size="18"></u-icon>
@ -80,6 +80,7 @@
// this.actList = ["1", "1", "1", "1", "1", ]
// this.status = "nomore"
this.handoverByPos()
this.getIndexData()
},
onPullDownRefresh() {
console.log("刷新");

View File

@ -10,7 +10,7 @@
<view class="box_" v-for="item,index in listData">
<view class="top-title">
<view class="name_">{{item.staffName}}</view>
<view class="price_">{{item.totalPayMoney}}</view>
<view class="price_">{{item.totalPayMoney?item.totalPayMoney:0}}</view>
</view>
<view class="time">{{item.startTime}}-{{item.endTime}}</view>
</view>

View File

@ -34,7 +34,13 @@
</view>
</view>
</view>
<view class="end-box">实付:{{item.payMoney}}</view>
<view class="end-box">
实付:{{item.payMoney}}
<u-button v-if="item.orderStatus == 'paid'" style="width: 60px;" type="primary"
@click="openRef(item)" text="退款"></u-button>
</view>
</view>
<view style="width: 100%; height: 20px; "></view>
@ -60,6 +66,10 @@
</u-popup>
<u-modal :show="showModal" showCancelButton content='是否确认退款' @confirm="ref()"
@cancel="showModal = false"></u-modal>
<u-datetime-picker :show="showStartTime" v-model="startTimeValue" mode="datetime" @confirm="clickStart"
@close="showStartTime = false" @cancel="showStartTime = false"></u-datetime-picker>
@ -80,9 +90,11 @@
export default {
data() {
return {
orderData: {},
titles: "订单列表",
tabindex: 0,
showPop: false,
showModal: false,
tablist: [
"全部",
"已完成",
@ -164,6 +176,41 @@
this.getPageListByPos()
},
openRef(data) {
this.showModal = true
this.orderData = {}
this.orderData = data
},
ref() {
let form = {
orderNo: this.orderData.orderNo,
storeId: this.orderData.storeId,
refundRemark: "pos机退款",
type: "canRefund",
isOilVouchers: true,
isGoods: true,
isOil: true,
isOilCard: true, //
isOilFuel: true, //
refundAmt: this.orderData.oilPayAmount
}
request({
url: 'business/allOrderInfo/refund',
method: 'post',
data: form
}).then((res) => {
if (res.code == 200) {
} else {
uni.showToast({
title: res.data,
icon: "none"
})
}
this.showModal = false
})
},
goback() {
uni.navigateBack()