Browse Source

客户中心-烟草订单审核

master
lzh 2 years ago
parent
commit
5110ed0895
  1. 34
      supervise-customer-ui/src/api/supervise/purchaserequisitiontobacco.js
  2. 27
      supervise-customer-ui/src/api/supervise/purchaserequisitiontobaccodetails.js
  3. 138
      supervise-customer-ui/src/views/supervise/tobaccopurchaseapplication/tobaccopurchaseapplicationAdd.vue
  4. 11
      yxt_supervise/supervise-portal/supervise-portal-api/src/main/java/com/yxt/anrui/portal/api/purchaserequisitionstore/PurchaseRequisitionStoreVo.java
  5. 8
      yxt_supervise/supervise-portal/supervise-portal-api/src/main/java/com/yxt/anrui/portal/api/purchaserequisitiontobacco/PurchaseRequisitionTobaccoVo.java
  6. 17
      yxt_supervise/supervise-portal/supervise-portal-biz/src/main/java/com/yxt/supervise/portal/biz/purchaserequisitionstore/PurchaseRequisitionStoreMapper.java
  7. 79
      yxt_supervise/supervise-portal/supervise-portal-biz/src/main/java/com/yxt/supervise/portal/biz/purchaserequisitionstore/PurchaseRequisitionStoreService.java
  8. 16
      yxt_supervise/supervise-portal/supervise-portal-biz/src/main/java/com/yxt/supervise/portal/biz/purchaserequisitiontobacco/PurchaseRequisitionTobaccoMapper.java
  9. 33
      yxt_supervise/supervise-portal/supervise-portal-biz/src/main/java/com/yxt/supervise/portal/biz/purchaserequisitiontobacco/PurchaseRequisitionTobaccoRest.java
  10. 595
      yxt_supervise/supervise-portal/supervise-portal-biz/src/main/java/com/yxt/supervise/portal/biz/purchaserequisitiontobacco/PurchaseRequisitionTobaccoService.java
  11. 23
      yxt_supervise/supervise-portal/supervise-portal-biz/src/main/java/com/yxt/supervise/portal/biz/purchaserequisitiontobaccodetails/PurchaseRequisitionTobaccoDetailsRest.java
  12. 270
      yxt_supervise/supervise-portal/supervise-portal-biz/src/main/java/com/yxt/supervise/portal/biz/purchaserequisitiontobaccodetails/PurchaseRequisitionTobaccoDetailsService.java

34
supervise-customer-ui/src/api/supervise/purchaserequisitiontobacco.js

@ -0,0 +1,34 @@
import request from '@/utils/request'
// 库房提供的采购订单表
export default {
// 查询分页列表
listPage: function(params) {
return request({
url: '/purchaserequisitiontobacco/listPage',
method: 'post',
data: params,
headers: {
'Content-Type': 'application/json'
}
})
},
// 保存新增记录
saveOrUpdate: function(params) {
return request({
url: '/purchaserequisitiontobacco/save',
method: 'post',
data: params,
headers: {
'Content-Type': 'application/json'
}
})
},
// 通过sid查询一条记录
fetchVoBySid: function(params) {
return request({
url: '/purchaserequisitiontobacco/fetchVoBySid',
params: params
})
}
}

27
supervise-customer-ui/src/api/supervise/purchaserequisitiontobaccodetails.js

@ -0,0 +1,27 @@
import request from '@/utils/request'
// 库房提供的采购订单表
export default {
// 查询分页列表
listPage: function(params) {
return request({
url: '/purchaserequisitiontobaccodetails/listPage',
method: 'post',
data: params,
headers: {
'Content-Type': 'application/json'
}
})
},
// 保存新增记录
saveOrUpdate: function(params) {
return request({
url: '/purchaserequisitiontobaccodetails/save',
method: 'post',
data: params,
headers: {
'Content-Type': 'application/json'
}
})
}
}

138
supervise-customer-ui/src/views/supervise/tobaccopurchaseapplication/tobaccopurchaseapplicationAdd.vue

@ -6,12 +6,11 @@
<div>{{ viewTitle }}</div> <div>{{ viewTitle }}</div>
<!-- start 添加修改按钮 --> <!-- start 添加修改按钮 -->
<div style="display: flex;flex-direction: row;justify-content: flex-end;align-items: center"> <div style="display: flex;flex-direction: row;justify-content: flex-end;align-items: center">
<el-button type="text" @click="handleDownload"><span style="border-bottom: 1px solid blue">下载Excel示例表样</span></el-button>
<div style="margin-left: 10px;margin-right: 10px"> <div style="margin-left: 10px;margin-right: 10px">
<el-upload <el-upload
ref="upload" ref="upload"
class="avatar-uploade" class="avatar-uploade"
accept=".xls" accept=".xlsx"
:action="updateAction" :action="updateAction"
name="filename" name="filename"
:file-list="fileList" :file-list="fileList"
@ -20,12 +19,26 @@
:show-file-list="false" :show-file-list="false"
:limit="1" :limit="1"
> >
<el-button type="primary" size="small">导入采购订单表</el-button> <el-button type="primary" size="small">上传烟草系统采购订单及明细.xlsx</el-button>
</el-upload>
</div>
<!-- <el-button type="primary" size="small" :disabled="candownload" @click="downCheckExcel">下载审核结果</el-button>-->
<div style="margin-left: 10px;margin-right: 10px">
<el-upload
ref="upload"
class="avatar-uploade"
accept=".csv"
:action="updateActionDetails"
:data="currentOrderSid"
name="filename"
:file-list="fileListDetails"
:on-success="handleSuccessDetail"
:multiple="true"
:show-file-list="false"
>
<el-button :disabled="!currentOrderSid.sid" type="primary" size="small">上传报烟明细.csv</el-button>
</el-upload> </el-upload>
</div> </div>
<!-- <el-button type="primary" size="small" :disabled="candownload" @click="downCheckExcel">下载审核结果</el-button>-->
<el-button type="primary" size="small" :disabled="submitdisabled" @click="saveOrUpdate">保存</el-button>
<el-button type="primary" size="small" :disabled="submitdisabled">提交</el-button>
<el-button type="info" size="small" @click="handleReturn()">关闭</el-button> <el-button type="info" size="small" @click="handleReturn()">关闭</el-button>
</div> </div>
<!-- end 添加修改按钮 --> <!-- end 添加修改按钮 -->
@ -46,7 +59,7 @@
<el-col :span="4" class="tleftb"><span>填单人</span></el-col> <el-col :span="4" class="tleftb"><span>填单人</span></el-col>
<el-col :span="8" class="trightb"> <el-col :span="8" class="trightb">
<el-form-item> <el-form-item>
<span>{{ formobj.buyerName }}</span> <span>{{ formobj.tdrName }}</span>
</el-form-item> </el-form-item>
</el-col> </el-col>
</el-row> </el-row>
@ -74,7 +87,7 @@
<el-col :span="4" class="tleftb"><span>入库单位</span></el-col> <el-col :span="4" class="tleftb"><span>入库单位</span></el-col>
<el-col :span="8" class="trightb"> <el-col :span="8" class="trightb">
<el-form-item> <el-form-item>
<span>{{ formobj.purchasingDeptName }}</span> <span>{{ formobj.purchasingOrgName }}</span>
</el-form-item> </el-form-item>
</el-col> </el-col>
</el-row> </el-row>
@ -82,7 +95,7 @@
<el-col :span="4" class="tleftb"><span>要货单位</span></el-col> <el-col :span="4" class="tleftb"><span>要货单位</span></el-col>
<el-col :span="8" class="trightb"> <el-col :span="8" class="trightb">
<el-form-item> <el-form-item>
<span>{{ formobj.purchasingDeptName }}</span> <span>{{ formobj.purchasingOrgName }}</span>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="4" class="tleftb"><span>入库仓位</span></el-col> <el-col :span="4" class="tleftb"><span>入库仓位</span></el-col>
@ -112,33 +125,39 @@
<span>合计金额:{{ amountInTotal }}</span> <span>合计金额:{{ amountInTotal }}</span>
</div> </div>
</div> </div>
<el-table :key="tableKey" :data="formobj.pros" :index="index" border style="width: 100%"> <el-table :key="tableKey" :data="formobj.storeList" :index="index" border style="width: 100%">
<el-table-column fixed label="序号" width="80px" type="index" :index="index + 1" align="center" /> <el-table-column type="expand">
<el-table-column fixed label="操作" width="100px" align="center" header-align="center">
<template slot-scope="scope"> <template slot-scope="scope">
<el-button size="mini" type="danger" @click="dataDelete(scope.$index)">删除</el-button> <div>
</template> <el-table :data="scope.row.detailsList" border style="width: 100%">
</el-table-column> <el-table-column label="卷烟代码" align="center" prop="ycode" />
<el-table-column label="烟草证编码" align="center"> <el-table-column label="商品" align="center" prop="ycode" />
<template slot-scope="scope"> <el-table-column label="批发价" align="center" prop="ycode" />
<span>{{ scope.row.proCode }}</span> <el-table-column label="要货量" align="center" prop="ycode" />
<el-table-column label="订单量" align="center" prop="ycode" />
<el-table-column label="金额" align="center" prop="ycode" />
<el-table-column label="厂家名称" align="center" prop="ycode" />
<el-table-column label="零售指导价" align="center" prop="ycode" />
</el-table>
</div>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column fixed label="序号" width="80px" type="index" :index="index + 1" align="center" />
<el-table-column label="烟草证编码" align="center" prop="ycode" />
<el-table-column label="门店名称" align="center"> <el-table-column label="门店名称" align="center">
<template slot-scope="scope"> <template slot-scope="scope">
<span>{{ scope.row.proName }}</span> <span>[{{ scope.row.storeCode }}]{{ scope.row.storeName }}</span>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column label="金额(元)" align="center"> <el-table-column label="金额(元)" align="center" prop="price" />
<el-table-column label="明细汇总金额" align="center" prop="detailPrice" />
<el-table-column label="金额比对" align="center">
<template slot-scope="scope"> <template slot-scope="scope">
<span>{{ scope.row.content }}</span> <span v-if="parseFloat(scope.row.price).toFixed(2) == parseFloat(scope.row.detailPrice).toFixed(2)">相同</span>
</template> <span v-else>不相符</span>
</el-table-column>
<el-table-column label="烟草批次" align="center">
<template slot-scope="scope">
<span>{{ scope.row.number }}</span>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column label="烟草批次" align="center" prop="pc" />
</el-table> </el-table>
</el-form> </el-form>
</div> </div>
@ -147,7 +166,7 @@
</template> </template>
<script> <script>
import req from '@/api/supervise/purchaseapplicationmanagement' import req from '@/api/supervise/purchaserequisitiontobacco'
export default { export default {
name: 'ToBaccopurchaseApplicationAdd', name: 'ToBaccopurchaseApplicationAdd',
data() { data() {
@ -157,9 +176,14 @@ export default {
viewTitle: '', viewTitle: '',
tableKey: 0, tableKey: 0,
index: 0, index: 0,
updateAction: process.env.VUE_APP_BASE_API + '/v1/purchaserequisition/importBrandSort', updateAction: process.env.VUE_APP_BASE_API + '/purchaserequisitiontobacco/importOrderXlsx',
updateActionDetails: process.env.VUE_APP_BASE_API + '/purchaserequisitiontobaccodetails/importCsvBatch',
fileList: [], fileList: [],
fileListDetails: [],
amountInTotal: '', // amountInTotal: '', //
currentOrderSid: {
sid: ''
},
formobj: { formobj: {
sid: '', sid: '',
code: '', // code: '', //
@ -180,7 +204,9 @@ export default {
newCode: '', // newCode: '', //
oldCode: '', // oldCode: '', //
completionStatusKey: '', // key completionStatusKey: '', // key
pros: [] // tdrCode: '', //
tdrName: '', //
storeList: [] //
}, },
rules: {} rules: {}
} }
@ -208,7 +234,9 @@ export default {
newCode: '', // newCode: '', //
oldCode: '', // oldCode: '', //
completionStatusKey: '', // key completionStatusKey: '', // key
pros: [] // tdrCode: '', //
tdrName: '', //
storeList: [] //
} }
this.amountInTotal = '' this.amountInTotal = ''
this.$refs['form_obj'].resetFields() this.$refs['form_obj'].resetFields()
@ -250,33 +278,51 @@ export default {
}) })
}, },
downCheckExcel() { downCheckExcel() {
window.location.href = process.env.VUE_APP_BASE_API + '/v1/productnum/products?code='+this.formobj.code window.location.href = process.env.VUE_APP_BASE_API + '/v1/productnum/products?code=' + this.formobj.code
}, },
handleDownload() { handleDownload() {
window.location.href = process.env.VUE_APP_BASE_API + '/v1/purchaserequisition/yb' window.location.href = process.env.VUE_APP_BASE_API + '/v1/purchaserequisition/yb'
}, },
handleSuccess(resp, file, fileList) { handleSuccess(resp, file, fileList) {
this.fileList = []
const _this = this
if (resp.success) { if (resp.success) {
this.$message({ showClose: true, type: 'success', message: '导入成功' }) this.$message({ showClose: true, type: 'success', message: '导入成功' })
this.formobj = resp.data _this.currentOrderSid.sid = resp.data
if (this.formobj.pros.length > 0) { _this.loadData(resp.data)
var aa = 0
for (var i = 0; i < this.formobj.pros.length; i++) {
if (this.formobj.pros[i].totalPrice !== '') {
aa = parseFloat(aa) + parseFloat(this.formobj.pros[i].totalPrice)
}
}
this.amountInTotal = aa
}
console.log(',,1111',this.formobj.code)
if (this.formobj.code) {
this.candownload = false
}
} else { } else {
this.$message({ showClose: true, type: 'error', message: resp.msg }) this.$message({ showClose: true, type: 'error', message: resp.msg })
} }
}, },
handleSuccessDetail(resp, file, fileList) {
// this.fileListDetails = []
const _this = this
if (resp.success) {
this.$message({ showClose: true, type: 'success', message: '导入成功' })
_this.loadData()
} else {
this.$message({ showClose: true, type: 'error', message: resp.msg })
}
},
loadData() {
const _this = this
req
.fetchVoBySid({ sid: _this.currentOrderSid.sid })
.then(res => {
_this.formobj = res.data
console.log(',,1111', _this.formobj)
var aa = 0
for (var i = 0; i < _this.formobj.storeList.length; i++) {
if (_this.formobj.storeList[i].price !== '') {
aa = parseFloat(aa) + parseFloat(_this.formobj.storeList[i].price)
}
}
_this.amountInTotal = aa.toFixed(2)
})
.catch(e => {
console.log('EEEE:', e)
})
},
dataDelete(index) { dataDelete(index) {
const tip = '请确认是否删除所选记录?' const tip = '请确认是否删除所选记录?'
this.$confirm(tip, '提示', { this.$confirm(tip, '提示', {

11
yxt_supervise/supervise-portal/supervise-portal-api/src/main/java/com/yxt/anrui/portal/api/purchaserequisitionstore/PurchaseRequisitionStoreVo.java

@ -26,12 +26,17 @@
package com.yxt.anrui.portal.api.purchaserequisitionstore; package com.yxt.anrui.portal.api.purchaserequisitionstore;
import com.yxt.anrui.portal.api.purchaserequisitiontobacco.PurchaseRequisitionTobaccoDetailsVo;
import com.yxt.anrui.portal.api.purchaserequisitiontobaccodetails.PurchaseRequisitionTobaccoDetails;
import com.yxt.common.core.vo.Vo; import com.yxt.common.core.vo.Vo;
import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty; import io.swagger.annotations.ApiModelProperty;
import lombok.Data; import lombok.Data;
import java.util.ArrayList;
import java.util.List;
/** /**
* Project: yxt-supervise(宇信通监管) <br/> * Project: yxt-supervise(宇信通监管) <br/>
* File: PurchaseRequisitionStoreVo.java <br/> * File: PurchaseRequisitionStoreVo.java <br/>
@ -51,9 +56,9 @@ public class PurchaseRequisitionStoreVo implements Vo {
private String sid; // sid private String sid; // sid
@ApiModelProperty("创建者") @ApiModelProperty("创建者")
private String createSid; // 创建者 private String createSid; // 创建者
@ApiModelProperty("更新者") @ApiModelProperty("更新者")
private String modifySid; // 更新者 private String modifySid; // 更新者
private String mainSid; // 关联表sid private String mainSid; // 关联表sid
@ApiModelProperty("烟草证编码") @ApiModelProperty("烟草证编码")
@ -69,4 +74,6 @@ public class PurchaseRequisitionStoreVo implements Vo {
@ApiModelProperty("明细总金额") @ApiModelProperty("明细总金额")
private String detailPrice; // 明细总金额 private String detailPrice; // 明细总金额
private List<PurchaseRequisitionTobaccoDetails> detailsList = new ArrayList<>();
} }

8
yxt_supervise/supervise-portal/supervise-portal-api/src/main/java/com/yxt/anrui/portal/api/purchaserequisitiontobacco/PurchaseRequisitionTobaccoVo.java

@ -26,12 +26,17 @@
package com.yxt.anrui.portal.api.purchaserequisitiontobacco; package com.yxt.anrui.portal.api.purchaserequisitiontobacco;
import com.yxt.anrui.portal.api.purchaserequisitionstore.PurchaseRequisitionStoreVo;
import com.yxt.anrui.portal.api.purchaserequisitiontobaccodetails.PurchaseRequisitionTobaccoDetails;
import com.yxt.common.core.vo.Vo; import com.yxt.common.core.vo.Vo;
import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty; import io.swagger.annotations.ApiModelProperty;
import lombok.Data; import lombok.Data;
import java.util.ArrayList;
import java.util.List;
/** /**
* Project: yxt-supervise(宇信通监管) <br/> * Project: yxt-supervise(宇信通监管) <br/>
* File: PurchaseRequisitionTobaccoVo.java <br/> * File: PurchaseRequisitionTobaccoVo.java <br/>
@ -105,4 +110,7 @@ public class PurchaseRequisitionTobaccoVo implements Vo {
private String tdrCode; private String tdrCode;
@ApiModelProperty("填单人姓名") @ApiModelProperty("填单人姓名")
private String tdrName; private String tdrName;
private List<PurchaseRequisitionStoreVo> storeList = new ArrayList<>();
} }

17
yxt_supervise/supervise-portal/supervise-portal-biz/src/main/java/com/yxt/supervise/portal/biz/purchaserequisitionstore/PurchaseRequisitionStoreMapper.java

@ -27,10 +27,9 @@ package com.yxt.supervise.portal.biz.purchaserequisitionstore;
import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.yxt.anrui.portal.api.purchaserequisitionstore.PurchaseRequisitionStore; import com.yxt.anrui.portal.api.purchaserequisitionstore.PurchaseRequisitionStore;
import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.*;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Select; import java.util.List;
import org.apache.ibatis.annotations.Update;
/** /**
* Project: yxt-supervise(宇信通监管) <br/> * Project: yxt-supervise(宇信通监管) <br/>
@ -51,9 +50,13 @@ public interface PurchaseRequisitionStoreMapper extends BaseMapper<PurchaseRequi
void updateDetailsPrice(@Param("sid") String sid, @Param("detailPrice") String price); void updateDetailsPrice(@Param("sid") String sid, @Param("detailPrice") String price);
@Update("update purchase_requisition_store set detailPrice=#{detailPrice} where sid=#{sid} and storeCode=#{storeCode}") @Update("update purchase_requisition_store set detailPrice=#{detailPrice} where sid=#{sid} and storeCode=#{storeCode}")
void updateDetailsPriceForBatch(@Param("sid") String mainSid,@Param("storeCode") String storeCode, @Param("detailPrice") String price); void updateDetailsPriceForBatch(@Param("sid") String mainSid, @Param("storeCode") String storeCode, @Param("detailPrice") String price);
@Select("select * from purchase_requisition_store where mainSid=#{mainSid} and storeCode=#{storeCode}")
PurchaseRequisitionStore selectByMainSidAndStoreCode(@Param("storeCode")String storeCode, @Param("mainSid") String mainSid); @Select("select * from purchase_requisition_store where mainSid=#{mainSid} and storeCode=#{storeCode} limit 1")
PurchaseRequisitionStore selectByMainSidAndStoreCode(@Param("storeCode") String storeCode, @Param("mainSid") String mainSid);
@Delete("delete from purchase_requisition_store where mainSid=#{mainSid} ")
void clearByMainSid(@Param("mainSid") String mainSid);
//@Update("update purchase_requisition_store set name=#{msg} where id=#{id}") //@Update("update purchase_requisition_store set name=#{msg} where id=#{id}")
//IPage<PurchaseRequisitionStoreVo> voPage(IPage<PurchaseRequisitionStore> page, @Param(Constants.WRAPPER) QueryWrapper<PurchaseRequisitionStore> qw); //IPage<PurchaseRequisitionStoreVo> voPage(IPage<PurchaseRequisitionStore> page, @Param(Constants.WRAPPER) QueryWrapper<PurchaseRequisitionStore> qw);

79
yxt_supervise/supervise-portal/supervise-portal-biz/src/main/java/com/yxt/supervise/portal/biz/purchaserequisitionstore/PurchaseRequisitionStoreService.java

@ -26,18 +26,26 @@
package com.yxt.supervise.portal.biz.purchaserequisitionstore; package com.yxt.supervise.portal.biz.purchaserequisitionstore;
import cn.hutool.core.bean.BeanUtil;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.metadata.IPage;
import com.yxt.anrui.portal.api.purchaserequisitionstore.PurchaseRequisitionStore; import com.yxt.anrui.portal.api.purchaserequisitionstore.PurchaseRequisitionStore;
import com.yxt.anrui.portal.api.purchaserequisitionstore.PurchaseRequisitionStoreQuery; import com.yxt.anrui.portal.api.purchaserequisitionstore.PurchaseRequisitionStoreQuery;
import com.yxt.anrui.portal.api.purchaserequisitionstore.PurchaseRequisitionStoreVo;
import com.yxt.anrui.portal.api.purchaserequisitiontobaccodetails.PurchaseRequisitionTobaccoDetails;
import com.yxt.common.base.service.MybatisBaseService; import com.yxt.common.base.service.MybatisBaseService;
import com.yxt.common.base.utils.PagerUtil; import com.yxt.common.base.utils.PagerUtil;
import com.yxt.common.core.query.PagerQuery; import com.yxt.common.core.query.PagerQuery;
import com.yxt.common.core.vo.PagerVo; import com.yxt.common.core.vo.PagerVo;
import com.yxt.supervise.portal.biz.purchaserequisitiontobaccodetails.PurchaseRequisitionTobaccoDetailsService;
import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import java.util.ArrayList;
import java.util.List;
/** /**
* Project: yxt-supervise(宇信通监管) <br/> * Project: yxt-supervise(宇信通监管) <br/>
* File: PurchaseRequisitionStoreService.java <br/> * File: PurchaseRequisitionStoreService.java <br/>
@ -54,6 +62,9 @@ import org.springframework.stereotype.Service;
@Service @Service
public class PurchaseRequisitionStoreService extends MybatisBaseService<PurchaseRequisitionStoreMapper, PurchaseRequisitionStore> { public class PurchaseRequisitionStoreService extends MybatisBaseService<PurchaseRequisitionStoreMapper, PurchaseRequisitionStore> {
@Autowired
private PurchaseRequisitionTobaccoDetailsService purchaseRequisitionTobaccoDetailsService;
public PagerVo<PurchaseRequisitionStore> listPage(PagerQuery<PurchaseRequisitionStoreQuery> pq) { public PagerVo<PurchaseRequisitionStore> listPage(PagerQuery<PurchaseRequisitionStoreQuery> pq) {
PurchaseRequisitionStoreQuery query = pq.getParams(); PurchaseRequisitionStoreQuery query = pq.getParams();
QueryWrapper<PurchaseRequisitionStore> qw = createQueryWrapper(query); QueryWrapper<PurchaseRequisitionStore> qw = createQueryWrapper(query);
@ -67,38 +78,72 @@ public class PurchaseRequisitionStoreService extends MybatisBaseService<Purchase
// todo: 这里根据具体业务调整查询条件 // todo: 这里根据具体业务调整查询条件
// 多字段Like示例:qw.and(wrapper -> wrapper.like("name", query.getName()).or().like("remark", query.getName())); // 多字段Like示例:qw.and(wrapper -> wrapper.like("name", query.getName()).or().like("remark", query.getName()));
QueryWrapper<PurchaseRequisitionStore> qw = new QueryWrapper<>(); QueryWrapper<PurchaseRequisitionStore> qw = new QueryWrapper<>();
if (StringUtils.isNotBlank(query.getCreateSid())) {
qw.eq("createSid", query.getCreateSid());
}
if (StringUtils.isNotBlank(query.getModifySid())) { if (StringUtils.isNotBlank(query.getCreateSid())) {
qw.eq("modifySid", query.getModifySid()); qw.eq("createSid", query.getCreateSid());
} }
if (StringUtils.isNotBlank(query.getMainSid())) { if (StringUtils.isNotBlank(query.getModifySid())) {
qw.eq("mainSid", query.getMainSid()); qw.eq("modifySid", query.getModifySid());
} }
if (StringUtils.isNotBlank(query.getMainSid())) {
qw.eq("mainSid", query.getMainSid());
}
if (StringUtils.isNotBlank(query.getPrice())) { if (StringUtils.isNotBlank(query.getPrice())) {
qw.eq("price", query.getPrice()); qw.eq("price", query.getPrice());
} }
return qw; return qw;
} }
public void updateDetailsPrice(String sid, String price) { public void updateDetailsPrice(String sid, String price) {
baseMapper.updateDetailsPrice(sid,price); baseMapper.updateDetailsPrice(sid, price);
} }
public void updateDetailsPrice(String mainSid,String storeCode, String price) {
baseMapper.updateDetailsPriceForBatch(mainSid,storeCode,price); public void updateDetailsPrice(String mainSid, String storeCode, String price) {
baseMapper.updateDetailsPriceForBatch(mainSid, storeCode, price);
} }
public PurchaseRequisitionStore selectByMainSidAndStoreCode(String storeCode, String sid) { public PurchaseRequisitionStore selectByMainSidAndStoreCode(String storeCode, String sid) {
return baseMapper.selectByMainSidAndStoreCode(storeCode,sid); return baseMapper.selectByMainSidAndStoreCode(storeCode, sid);
}
public void clearAllByMainSid(String mainSid) {
List<String> sidList = listSidByMainSid(mainSid);
if (!sidList.isEmpty()) {
purchaseRequisitionTobaccoDetailsService.clearByMainSids(sidList);
}
baseMapper.clearByMainSid(mainSid);
}
public List<String> listSidByMainSid(String mainSid) {
List<String> list = new ArrayList<>();
List<PurchaseRequisitionStore> sList = listByMainSid(mainSid);
sList.forEach(st -> list.add(st.getSid()));
return list;
}
public List<PurchaseRequisitionStore> listByMainSid(String mainSid) {
QueryWrapper<PurchaseRequisitionStore> qw = new QueryWrapper<>();
qw.eq("mainSid", mainSid);
return baseMapper.selectList(qw);
}
public List<PurchaseRequisitionStoreVo> listVoByMainSid(String mainSid) {
List<PurchaseRequisitionStoreVo> list = new ArrayList<>();
List<PurchaseRequisitionStore> elist = listByMainSid(mainSid);
for (PurchaseRequisitionStore entity : elist) {
PurchaseRequisitionStoreVo vo = new PurchaseRequisitionStoreVo();
BeanUtil.copyProperties(entity,vo,true);
List<PurchaseRequisitionTobaccoDetails> detailsList = purchaseRequisitionTobaccoDetailsService.listByMainSid(entity.getSid());
vo.setDetailsList(detailsList);
list.add(vo);
}
return list;
} }
} }

16
yxt_supervise/supervise-portal/supervise-portal-biz/src/main/java/com/yxt/supervise/portal/biz/purchaserequisitiontobacco/PurchaseRequisitionTobaccoMapper.java

@ -28,10 +28,7 @@ package com.yxt.supervise.portal.biz.purchaserequisitiontobacco;
import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.yxt.anrui.portal.api.purchaserequisitionstore.PurchaseRequisitionStore; import com.yxt.anrui.portal.api.purchaserequisitionstore.PurchaseRequisitionStore;
import com.yxt.anrui.portal.api.purchaserequisitiontobacco.PurchaseRequisitionTobacco; import com.yxt.anrui.portal.api.purchaserequisitiontobacco.PurchaseRequisitionTobacco;
import org.apache.ibatis.annotations.Insert; import org.apache.ibatis.annotations.*;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Select;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
@ -57,20 +54,25 @@ public interface PurchaseRequisitionTobaccoMapper extends BaseMapper<PurchaseReq
void batchInsert(List<PurchaseRequisitionStore> l); void batchInsert(List<PurchaseRequisitionStore> l);
@Select("select * from purchase_requisition_tobacco where code like CONCAT('%',#{date},'%') ") @Select("select * from purchase_requisition_tobacco where code like CONCAT('%',#{date},'%') ")
List<PurchaseRequisitionTobacco> selectByDateForCode(@Param("date")String date); List<PurchaseRequisitionTobacco> selectByDateForCode(@Param("date") String date);
@Select("SELECT '市烟草' supplierName,prtd.prodName prodName,SUM(prtd.ddl) ddl,prtd.price price\n" + @Select("SELECT '市烟草' supplierName,prtd.prodName prodName,SUM(prtd.ddl) ddl,prtd.price price\n" +
"FROM `purchase_requisition_tobacco_details` prtd \n" + "FROM `purchase_requisition_tobacco_details` prtd \n" +
"LEFT JOIN `purchase_requisition_store` prs ON prtd.`mainSid`=prs.`sid` \n" + "LEFT JOIN `purchase_requisition_store` prs ON prtd.`mainSid`=prs.`sid` \n" +
"LEFT JOIN `purchase_requisition_tobacco` prt ON prs.`mainSid`=prt.`sid`\n" + "LEFT JOIN `purchase_requisition_tobacco` prt ON prs.`mainSid`=prt.`sid`\n" +
"WHERE prt.`purchaseDate`=#{date} " + "WHERE prt.`purchaseDate`=#{date} " +
"GROUP BY prtd.prodName") "GROUP BY prtd.prodName")
List<Map<String, String>> selectDdinfo(@Param("date")String date); List<Map<String, String>> selectDdinfo(@Param("date") String date);
@Select("SELECT SUM(prtd.price) price\n" + @Select("SELECT SUM(prtd.price) price\n" +
"FROM `purchase_requisition_tobacco_details` prtd\n" + "FROM `purchase_requisition_tobacco_details` prtd\n" +
"LEFT JOIN `purchase_requisition_store` prs ON prtd.`mainSid`=prs.`sid` \n" + "LEFT JOIN `purchase_requisition_store` prs ON prtd.`mainSid`=prs.`sid` \n" +
"LEFT JOIN `purchase_requisition_tobacco` prt ON prs.`mainSid`=prt.`sid`\n" + "LEFT JOIN `purchase_requisition_tobacco` prt ON prs.`mainSid`=prt.`sid`\n" +
"WHERE prt.`purchaseDate`=#{date} ") "WHERE prt.`purchaseDate`=#{date} ")
Map<String, String> selectDdzje(@Param("date")String date); Map<String, String> selectDdzje(@Param("date") String date);
@Delete("delete from purchase_requisition_tobacco where code=#{code}")
void clearByCode(@Param("code") String orderCode);
//@Update("update purchase_requisition_tobacco set name=#{msg} where id=#{id}") //@Update("update purchase_requisition_tobacco set name=#{msg} where id=#{id}")
//IPage<PurchaseRequisitionTobaccoVo> voPage(IPage<PurchaseRequisitionTobacco> page, @Param(Constants.WRAPPER) QueryWrapper<PurchaseRequisitionTobacco> qw); //IPage<PurchaseRequisitionTobaccoVo> voPage(IPage<PurchaseRequisitionTobacco> page, @Param(Constants.WRAPPER) QueryWrapper<PurchaseRequisitionTobacco> qw);

33
yxt_supervise/supervise-portal/supervise-portal-biz/src/main/java/com/yxt/supervise/portal/biz/purchaserequisitiontobacco/PurchaseRequisitionTobaccoRest.java

@ -27,6 +27,7 @@ package com.yxt.supervise.portal.biz.purchaserequisitiontobacco;
import com.yxt.anrui.portal.api.purchaserequisitiontobacco.PurchaseRequisitionTobacco; import com.yxt.anrui.portal.api.purchaserequisitiontobacco.PurchaseRequisitionTobacco;
import com.yxt.anrui.portal.api.purchaserequisitiontobacco.PurchaseRequisitionTobaccoQuery; import com.yxt.anrui.portal.api.purchaserequisitiontobacco.PurchaseRequisitionTobaccoQuery;
import com.yxt.anrui.portal.api.purchaserequisitiontobacco.PurchaseRequisitionTobaccoVo;
import com.yxt.common.core.query.PagerQuery; import com.yxt.common.core.query.PagerQuery;
import com.yxt.common.core.result.ResultBean; import com.yxt.common.core.result.ResultBean;
import com.yxt.common.core.vo.PagerVo; import com.yxt.common.core.vo.PagerVo;
@ -71,15 +72,16 @@ public class PurchaseRequisitionTobaccoRest {
/** /**
* 在途商品统计条件207家报烟店范围审核通过的烟草采购订单230105开始中商品明细有未入库的记录 * 在途商品统计条件207家报烟店范围审核通过的烟草采购订单230105开始中商品明细有未入库的记录
*
* @return * @return
*/ */
@ApiOperation("烟草在途") @ApiOperation("烟草在途")
@RequestMapping(value = "/yczt", method = RequestMethod.POST) @RequestMapping(value = "/yczt", method = RequestMethod.POST)
public ResultBean yczt(@RequestParam("date") String date){ public ResultBean yczt(@RequestParam("date") String date) {
log.info("yczt:{}","/yczt"); log.info("yczt:{}", "/yczt");
ResultBean rb = ResultBean.fireFail(); ResultBean rb = ResultBean.fireFail();
purchaseRequisitionTobaccoService.yczt(date); purchaseRequisitionTobaccoService.yczt(date);
return rb.success(); return rb.success();
} }
@ApiOperation("所有数据列表") @ApiOperation("所有数据列表")
@ -97,13 +99,15 @@ public class PurchaseRequisitionTobaccoRest {
purchaseRequisitionTobaccoService.saveOrUpdate(entity); purchaseRequisitionTobaccoService.saveOrUpdate(entity);
return rb.success(); return rb.success();
} }
@ApiOperation(" ") @ApiOperation(" ")
@RequestMapping(value = "/importBrandSort", method = RequestMethod.POST) @RequestMapping(value = "/importBrandSort", method = RequestMethod.POST)
public ResultBean importBrandSort(@RequestParam("filename") MultipartFile file ){ public ResultBean importBrandSort(@RequestParam("filename") MultipartFile file) {
ResultBean rb = ResultBean.fireFail(); ResultBean rb = ResultBean.fireFail();
purchaseRequisitionTobaccoService.readBrandPeriodSorXls1(file); purchaseRequisitionTobaccoService.readBrandPeriodSorXls1(file);
return rb.success(); return rb.success();
} }
@ApiOperation("删除记录") @ApiOperation("删除记录")
@GetMapping("/del/{ids}") @GetMapping("/del/{ids}")
public ResultBean del(@PathVariable("ids") String ids) { public ResultBean del(@PathVariable("ids") String ids) {
@ -119,4 +123,23 @@ public class PurchaseRequisitionTobaccoRest {
PurchaseRequisitionTobacco entity = purchaseRequisitionTobaccoService.fetchById(id); PurchaseRequisitionTobacco entity = purchaseRequisitionTobaccoService.fetchById(id);
return rb.success().setData(entity); return rb.success().setData(entity);
} }
@ApiOperation("上传并解析《烟草系统采购订单及明细.xlsx》文件")
@RequestMapping(value = "/importOrderXlsx", method = RequestMethod.POST)
public ResultBean importOrderXlsx(@RequestParam("filename") MultipartFile file) {
ResultBean rb = ResultBean.fireFail();
String sid = purchaseRequisitionTobaccoService.readOrderXlsx(file);
return rb.success().setData(sid);
}
@ApiOperation("获取一条记录")
@GetMapping("/fetchVoBySid")
public ResultBean<PurchaseRequisitionTobaccoVo> fetchVoBySid(@RequestParam("sid") String sid) {
ResultBean rb = ResultBean.fireFail();
PurchaseRequisitionTobaccoVo entity = purchaseRequisitionTobaccoService.fetchVoBySid(sid);
if (entity == null)
return rb.setMsg("未得到烟草采购订单数据");
return rb.success().setData(entity);
}
} }

595
yxt_supervise/supervise-portal/supervise-portal-biz/src/main/java/com/yxt/supervise/portal/biz/purchaserequisitiontobacco/PurchaseRequisitionTobaccoService.java

@ -33,8 +33,10 @@ import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.metadata.IPage;
import com.yxt.anrui.portal.api.purchaserequisitionstore.PurchaseRequisitionStore; import com.yxt.anrui.portal.api.purchaserequisitionstore.PurchaseRequisitionStore;
import com.yxt.anrui.portal.api.purchaserequisitionstore.PurchaseRequisitionStoreVo;
import com.yxt.anrui.portal.api.purchaserequisitiontobacco.PurchaseRequisitionTobacco; import com.yxt.anrui.portal.api.purchaserequisitiontobacco.PurchaseRequisitionTobacco;
import com.yxt.anrui.portal.api.purchaserequisitiontobacco.PurchaseRequisitionTobaccoQuery; import com.yxt.anrui.portal.api.purchaserequisitiontobacco.PurchaseRequisitionTobaccoQuery;
import com.yxt.anrui.portal.api.purchaserequisitiontobacco.PurchaseRequisitionTobaccoVo;
import com.yxt.common.base.config.component.FileUploadComponent; import com.yxt.common.base.config.component.FileUploadComponent;
import com.yxt.common.base.service.MybatisBaseService; import com.yxt.common.base.service.MybatisBaseService;
import com.yxt.common.base.utils.PagerUtil; import com.yxt.common.base.utils.PagerUtil;
@ -42,6 +44,7 @@ import com.yxt.common.core.query.PagerQuery;
import com.yxt.common.core.result.FileUploadResult; import com.yxt.common.core.result.FileUploadResult;
import com.yxt.common.core.result.ResultBean; import com.yxt.common.core.result.ResultBean;
import com.yxt.common.core.vo.PagerVo; import com.yxt.common.core.vo.PagerVo;
import com.yxt.supervise.portal.biz.purchaserequisitionstore.PurchaseRequisitionStoreService;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.StringUtils;
@ -69,8 +72,11 @@ import java.util.*;
@Slf4j @Slf4j
@Service @Service
public class PurchaseRequisitionTobaccoService extends MybatisBaseService<PurchaseRequisitionTobaccoMapper, PurchaseRequisitionTobacco> { public class PurchaseRequisitionTobaccoService extends MybatisBaseService<PurchaseRequisitionTobaccoMapper, PurchaseRequisitionTobacco> {
@Autowired @Autowired
private FileUploadComponent fileUploadComponent; private FileUploadComponent fileUploadComponent;
@Autowired
private PurchaseRequisitionStoreService purchaseRequisitionStoreService;
public PagerVo<PurchaseRequisitionTobacco> listPage(PagerQuery<PurchaseRequisitionTobaccoQuery> pq) { public PagerVo<PurchaseRequisitionTobacco> listPage(PagerQuery<PurchaseRequisitionTobaccoQuery> pq) {
PurchaseRequisitionTobaccoQuery query = pq.getParams(); PurchaseRequisitionTobaccoQuery query = pq.getParams();
QueryWrapper<PurchaseRequisitionTobacco> qw = createQueryWrapper(query); QueryWrapper<PurchaseRequisitionTobacco> qw = createQueryWrapper(query);
@ -84,246 +90,403 @@ public class PurchaseRequisitionTobaccoService extends MybatisBaseService<Purcha
// todo: 这里根据具体业务调整查询条件 // todo: 这里根据具体业务调整查询条件
// 多字段Like示例:qw.and(wrapper -> wrapper.like("name", query.getName()).or().like("remark", query.getName())); // 多字段Like示例:qw.and(wrapper -> wrapper.like("name", query.getName()).or().like("remark", query.getName()));
QueryWrapper<PurchaseRequisitionTobacco> qw = new QueryWrapper<>(); QueryWrapper<PurchaseRequisitionTobacco> qw = new QueryWrapper<>();
if (StringUtils.isNotBlank(query.getCreateSid())) {
qw.eq("createSid", query.getCreateSid());
}
if (StringUtils.isNotBlank(query.getModifySid())) { if (StringUtils.isNotBlank(query.getCreateSid())) {
qw.eq("modifySid", query.getModifySid()); qw.eq("createSid", query.getCreateSid());
} }
if (StringUtils.isNotBlank(query.getModifySid())) {
qw.eq("modifySid", query.getModifySid());
}
if (StringUtils.isNotBlank(query.getCode())) { if (StringUtils.isNotBlank(query.getCode())) {
qw.eq("code", query.getCode()); qw.eq("code", query.getCode());
} }
if (StringUtils.isNotBlank(query.getBuyerName())) { if (StringUtils.isNotBlank(query.getBuyerName())) {
qw.eq("buyerName", query.getBuyerName()); qw.eq("buyerName", query.getBuyerName());
} }
if (StringUtils.isNotBlank(query.getBuyerCode())) { if (StringUtils.isNotBlank(query.getBuyerCode())) {
qw.eq("buyerCode", query.getBuyerCode()); qw.eq("buyerCode", query.getBuyerCode());
} }
if (StringUtils.isNotBlank(query.getPurchaseDate())) { if (StringUtils.isNotBlank(query.getPurchaseDate())) {
qw.eq("purchaseDate", query.getPurchaseDate()); qw.eq("purchaseDate", query.getPurchaseDate());
} }
if (StringUtils.isNotBlank(query.getArrivalDate())) { if (StringUtils.isNotBlank(query.getArrivalDate())) {
qw.eq("arrivalDate", query.getArrivalDate()); qw.eq("arrivalDate", query.getArrivalDate());
} }
if (StringUtils.isNotBlank(query.getPurchasingOrgName())) { if (StringUtils.isNotBlank(query.getPurchasingOrgName())) {
qw.eq("purchasingOrgName", query.getPurchasingOrgName()); qw.eq("purchasingOrgName", query.getPurchasingOrgName());
} }
if (StringUtils.isNotBlank(query.getPurchasingOrgCode())) { if (StringUtils.isNotBlank(query.getPurchasingOrgCode())) {
qw.eq("purchasingOrgCode", query.getPurchasingOrgCode()); qw.eq("purchasingOrgCode", query.getPurchasingOrgCode());
} }
if (StringUtils.isNotBlank(query.getPurchasingDeptCode())) { if (StringUtils.isNotBlank(query.getPurchasingDeptCode())) {
qw.eq("purchasingDeptCode", query.getPurchasingDeptCode()); qw.eq("purchasingDeptCode", query.getPurchasingDeptCode());
} }
if (StringUtils.isNotBlank(query.getPurchasingDeptName())) { if (StringUtils.isNotBlank(query.getPurchasingDeptName())) {
qw.eq("purchasingDeptName", query.getPurchasingDeptName()); qw.eq("purchasingDeptName", query.getPurchasingDeptName());
} }
if (StringUtils.isNotBlank(query.getSupplierName())) { if (StringUtils.isNotBlank(query.getSupplierName())) {
qw.eq("supplierName", query.getSupplierName()); qw.eq("supplierName", query.getSupplierName());
} }
if (StringUtils.isNotBlank(query.getSupplierCode())) { if (StringUtils.isNotBlank(query.getSupplierCode())) {
qw.eq("supplierCode", query.getSupplierCode()); qw.eq("supplierCode", query.getSupplierCode());
} }
if (StringUtils.isNotBlank(query.getSupplierOnlyCode())) { if (StringUtils.isNotBlank(query.getSupplierOnlyCode())) {
qw.eq("supplierOnlyCode", query.getSupplierOnlyCode()); qw.eq("supplierOnlyCode", query.getSupplierOnlyCode());
} }
if (StringUtils.isNotBlank(query.getLogisticsCompanyName())) { if (StringUtils.isNotBlank(query.getLogisticsCompanyName())) {
qw.eq("logisticsCompanyName", query.getLogisticsCompanyName()); qw.eq("logisticsCompanyName", query.getLogisticsCompanyName());
} }
if (StringUtils.isNotBlank(query.getLogisticsCompanyCode())) { if (StringUtils.isNotBlank(query.getLogisticsCompanyCode())) {
qw.eq("logisticsCompanyCode", query.getLogisticsCompanyCode()); qw.eq("logisticsCompanyCode", query.getLogisticsCompanyCode());
} }
if (StringUtils.isNotBlank(query.getExpiryDate())) { if (StringUtils.isNotBlank(query.getExpiryDate())) {
qw.eq("expiryDate", query.getExpiryDate()); qw.eq("expiryDate", query.getExpiryDate());
} }
if (StringUtils.isNotBlank(query.getWarehousePosition())) { if (StringUtils.isNotBlank(query.getWarehousePosition())) {
qw.eq("warehousePosition", query.getWarehousePosition()); qw.eq("warehousePosition", query.getWarehousePosition());
} }
if (StringUtils.isNotBlank(query.getWarehousePositionCode())) { if (StringUtils.isNotBlank(query.getWarehousePositionCode())) {
qw.eq("warehousePositionCode", query.getWarehousePositionCode()); qw.eq("warehousePositionCode", query.getWarehousePositionCode());
} }
if (StringUtils.isNotBlank(query.getPurchaseState())) { if (StringUtils.isNotBlank(query.getPurchaseState())) {
qw.eq("purchaseState", query.getPurchaseState()); qw.eq("purchaseState", query.getPurchaseState());
} }
if (StringUtils.isNotBlank(query.getPurchaseRemarks())) { if (StringUtils.isNotBlank(query.getPurchaseRemarks())) {
qw.eq("purchaseRemarks", query.getPurchaseRemarks()); qw.eq("purchaseRemarks", query.getPurchaseRemarks());
} }
if (StringUtils.isNotBlank(query.getBankState())) { if (StringUtils.isNotBlank(query.getBankState())) {
qw.eq("bankState", query.getBankState()); qw.eq("bankState", query.getBankState());
} }
if (StringUtils.isNotBlank(query.getBankRemarks())) { if (StringUtils.isNotBlank(query.getBankRemarks())) {
qw.eq("bankRemarks", query.getBankRemarks()); qw.eq("bankRemarks", query.getBankRemarks());
} }
if (StringUtils.isNotBlank(query.getCompletionStatus())) { if (StringUtils.isNotBlank(query.getCompletionStatus())) {
qw.eq("completionStatus", query.getCompletionStatus()); qw.eq("completionStatus", query.getCompletionStatus());
} }
if (StringUtils.isNotBlank(query.getCompletionStatusKey())) { if (StringUtils.isNotBlank(query.getCompletionStatusKey())) {
qw.eq("completionStatusKey", query.getCompletionStatusKey()); qw.eq("completionStatusKey", query.getCompletionStatusKey());
} }
return qw; return qw;
} }
public void yczt(String date) { public void yczt(String date) {
// 在途商品统计条件:207家报烟店范围、审核通过的烟草采购订单(230105开始)中商品明细有未入库的记录。 // 在途商品统计条件:207家报烟店范围、审核通过的烟草采购订单(230105开始)中商品明细有未入库的记录。
List<Map<String,String>> list=baseMapper.selectDdinfo(date); List<Map<String, String>> list = baseMapper.selectDdinfo(date);
Map<String,String> zje=baseMapper.selectDdzje(date); Map<String, String> zje = baseMapper.selectDdzje(date);
log.info("list:{}",JSONObject.toJSONString(list)); log.info("list:{}", JSONObject.toJSONString(list));
log.info("zje:{}",JSONObject.toJSONString(zje)); log.info("zje:{}", JSONObject.toJSONString(zje));
} }
public void readBrandPeriodSorXls1(MultipartFile file) {
public void readBrandPeriodSorXls1(MultipartFile file) {
ResultBean<FileUploadResult> fub = fileUploadComponent.uploadFile(file, "PurchaseRequisitionTobacco");
String filePath = fub.getData().getFilePath(); ResultBean<FileUploadResult> fub = fileUploadComponent.uploadFile(file, "PurchaseRequisitionTobacco");
String fp = fileUploadComponent.getUploadPath() + filePath; String filePath = fub.getData().getFilePath();
long millis = System.currentTimeMillis(); String fp = fileUploadComponent.getUploadPath() + filePath;
ExcelUtil.read07BySax(fp, -1, createRowHandler()); long millis = System.currentTimeMillis();
} ExcelUtil.read07BySax(fp, -1, createRowHandler());
private RowHandler createRowHandler( ) { }
return new RowHandler() {
private RowHandler createRowHandler() {
List<String> lisss=new ArrayList<>(); return new RowHandler() {
List<PurchaseRequisitionStore> salesDatas=new ArrayList<>();
List<String> lisss = new ArrayList<>();
String sid=UUID.randomUUID().toString(); List<PurchaseRequisitionStore> salesDatas = new ArrayList<>();
Map<String,Object> map=new HashMap<>();
int i = 0; String sid = UUID.randomUUID().toString();
int j = 0; Map<String, Object> map = new HashMap<>();
@Override int i = 0;
public void handle(int sheetIndex, long rowNum, List<Object> r) { int j = 0;
map.put("sid",sid);
if(rowNum==1){ @Override
map.put("code",r.get(2)); public void handle(int sheetIndex, long rowNum, List<Object> r) {
String tdrCode_s = r.get(4).toString(); map.put("sid", sid);
String[] split = tdrCode_s.split("\\["); if (rowNum == 1) {
String s = split[1]; map.put("code", r.get(2));
String replace = s.replace("]", ""); String tdrCode_s = r.get(4).toString();
map.put("tdrCode",replace);//填单人 String[] split = tdrCode_s.split("\\[");
map.put("tdrName",split[0]);//填单人 String s = split[1];
map.put("purchaseDate",r.get(6));//填单时间 String replace = s.replace("]", "");
map.put("supplierName",r.get(6));// map.put("tdrCode", replace);//填单人
map.put("supplierCode",r.get(6));// map.put("tdrName", split[0]);//填单人
} map.put("purchaseDate", r.get(6));//填单时间
if(rowNum==2){ map.put("supplierName", r.get(6));//
String s = r.get(2).toString(); map.put("supplierCode", r.get(6));//
String[] split = s.split("]"); }
map.put("supplierName",split[1]);// if (rowNum == 2) {
String s1 = split[0]; String s = r.get(2).toString();
String replace = s1.replace("[", ""); String[] split = s.split("]");
map.put("supplierCode",replace);// map.put("supplierName", split[1]);//
String o = r.get(4).toString(); String s1 = split[0];
String[] split1 = o.split("]"); String replace = s1.replace("[", "");
map.put("warehousePosition",split1[1]); map.put("supplierCode", replace);//
String s2 = split1[0]; String o = r.get(4).toString();
String replace1 = s2.replace("[", ""); String[] split1 = o.split("]");
map.put("warehousePositionCode",replace1); map.put("warehousePosition", split1[1]);
map.put("arrivalDate",r.get(6)); String s2 = split1[0];
} String replace1 = s2.replace("[", "");
if(rowNum==3){ map.put("warehousePositionCode", replace1);
String s = r.get(2).toString(); map.put("arrivalDate", r.get(6));
String[] split = s.split("\\["); }
map.put("buyerName",split[0]);// if (rowNum == 3) {
String s1 = split[1]; String s = r.get(2).toString();
String replace = s1.replace("]", ""); String[] split = s.split("\\[");
map.put("buyerCode",replace);// map.put("buyerName", split[0]);//
String s3 = r.get(4).toString(); String s1 = split[1];
String substring = s3.substring(s3.indexOf("[")+1, s3.indexOf("]")); String replace = s1.replace("]", "");
String substring1 = s3.substring(s3.indexOf("]")+1, s3.length()); map.put("buyerCode", replace);//
map.put("purchasingOrgName",substring); String s3 = r.get(4).toString();
map.put("purchasingOrgCode",substring1); String substring = s3.substring(s3.indexOf("[") + 1, s3.indexOf("]"));
String expiryDate=r.get(6)==null?"":r.get(6).toString(); String substring1 = s3.substring(s3.indexOf("]") + 1, s3.length());
map.put("expiryDate",expiryDate); map.put("purchasingOrgName", substring);
} map.put("purchasingOrgCode", substring1);
if(rowNum==4){ String expiryDate = r.get(6) == null ? "" : r.get(6).toString();
String completionStatus=r.get(6)==null?"":r.get(6).toString(); map.put("expiryDate", expiryDate);
map.put("completionStatus", completionStatus); }
map.put("completionStatus", "0"); if (rowNum == 4) {
} String completionStatus = r.get(6) == null ? "" : r.get(6).toString();
map.put("completionStatus", completionStatus);
if(rowNum>5){ map.put("completionStatus", "0");
Map<String,Object> sd_map=new HashMap<>(); }
try{
sd_map.put("yCode",r.get(2));//卷烟代码 if (rowNum > 5) {
String o = r.get(3).toString(); Map<String, Object> sd_map = new HashMap<>();
String[] split = o.split("]"); try {
String substring = split[0].substring(split[0].indexOf("[")+1, split[0].length()); sd_map.put("yCode", r.get(2));//卷烟代码
sd_map.put("storeCode",substring);//门店代码 String o = r.get(3).toString();
sd_map.put("storeName",split[1]);//门店名称 String[] split = o.split("]");
sd_map.put("price",r.get( 4));//金额 String substring = split[0].substring(split[0].indexOf("[") + 1, split[0].length());
sd_map.put("pc",r.get( 5));//批次 sd_map.put("storeCode", substring);//门店代码
sd_map.put("mainSid",sid);//关联sid sd_map.put("storeName", split[1]);//门店名称
PurchaseRequisitionStore sd=new PurchaseRequisitionStore(); sd_map.put("price", r.get(4));//金额
BeanUtil.fillBeanWithMap(sd_map, sd, true); sd_map.put("pc", r.get(5));//批次
salesDatas.add(sd); sd_map.put("mainSid", sid);//关联sid
i++; PurchaseRequisitionStore sd = new PurchaseRequisitionStore();
}catch(Exception e){ BeanUtil.fillBeanWithMap(sd_map, sd, true);
e.printStackTrace(); salesDatas.add(sd);
SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); i++;
baseMapper.insertIntoImportDataInfo(sdf.format(new Date()),"烟草数据导入第"+i+"出现异常"+e.getMessage()); } catch (Exception e) {
System.err.println("i="+i+",value=null"); e.printStackTrace();
} SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
lisss.add(rowNum+""); baseMapper.insertIntoImportDataInfo(sdf.format(new Date()), "烟草数据导入第" + i + "出现异常" + e.getMessage());
log.info("productInformation:{}", JSONObject.toJSONString(sd_map)); System.err.println("i=" + i + ",value=null");
log.info("rowNum:{}", rowNum); }
} lisss.add(rowNum + "");
} log.info("productInformation:{}", JSONObject.toJSONString(sd_map));
log.info("rowNum:{}", rowNum);
@Override }
public void handleCell(int sheetIndex, long rowIndex, int cellIndex, Object value, CellStyle xssfCellStyle) { }
RowHandler.super.handleCell(sheetIndex, rowIndex, cellIndex, value, xssfCellStyle);
} @Override
public void handleCell(int sheetIndex, long rowIndex, int cellIndex, Object value, CellStyle xssfCellStyle) {
@Override RowHandler.super.handleCell(sheetIndex, rowIndex, cellIndex, value, xssfCellStyle);
public void doAfterAllAnalysed() { }
List<List<PurchaseRequisitionStore>> listArray = new ArrayList<List<PurchaseRequisitionStore>>();
int listSize = salesDatas.size(); @Override
int pageSize=5000; public void doAfterAllAnalysed() {
for (int i = 0; i < listSize; i += pageSize) { List<List<PurchaseRequisitionStore>> listArray = new ArrayList<List<PurchaseRequisitionStore>>();
int toIndex = Math.min(i + pageSize, listSize); int listSize = salesDatas.size();
listArray.add(salesDatas.subList(i, toIndex)); int pageSize = 5000;
} for (int i = 0; i < listSize; i += pageSize) {
PurchaseRequisitionTobacco sd=new PurchaseRequisitionTobacco(); int toIndex = Math.min(i + pageSize, listSize);
BeanUtil.fillBeanWithMap(map, sd, true); listArray.add(salesDatas.subList(i, toIndex));
SimpleDateFormat sdf =new SimpleDateFormat("yyyyMMdd"); }
String format = sdf.format(new Date()); PurchaseRequisitionTobacco sd = new PurchaseRequisitionTobacco();
List<PurchaseRequisitionTobacco> list= baseMapper.selectByDateForCode(format); BeanUtil.fillBeanWithMap(map, sd, true);
int size = list.size(); SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMdd");
int r=size+1; String format = sdf.format(new Date());
String purchaseDate=sd.getPurchaseDate(); List<PurchaseRequisitionTobacco> list = baseMapper.selectByDateForCode(format);
purchaseDate=purchaseDate.replace(".",""); int size = list.size();
sd.setCode(purchaseDate); int r = size + 1;
baseMapper.insert(sd); String purchaseDate = sd.getPurchaseDate();
for(List<PurchaseRequisitionStore> l:listArray){ purchaseDate = purchaseDate.replace(".", "");
log.info("batchInsert-start:{}",l.size()); sd.setCode(purchaseDate);
baseMapper.batchInsert(l); baseMapper.insert(sd);
log.info("batchInsert-end:{}",l.size()); for (List<PurchaseRequisitionStore> l : listArray) {
} log.info("batchInsert-start:{}", l.size());
RowHandler.super.doAfterAllAnalysed(); baseMapper.batchInsert(l);
} log.info("batchInsert-end:{}", l.size());
}; }
} RowHandler.super.doAfterAllAnalysed();
}
};
}
public String readOrderXlsx(MultipartFile file) {
ResultBean<FileUploadResult> fub = fileUploadComponent.uploadFile(file, "PurchaseRequisitionTobacco");
String filePath = fub.getData().getFilePath();
String fp = fileUploadComponent.getUploadPath() + filePath;
String orderSid = UUID.randomUUID().toString();
ExcelUtil.read07BySax(fp, 0, createRowHandlerWithSid(orderSid));
return orderSid;
}
private RowHandler createRowHandlerWithSid(String orderSid) {
return new RowHandler() {
List<PurchaseRequisitionStore> toInsertList = new ArrayList<>();
Map<String, Object> orderMap = new HashMap<>();
@Override
public void handle(int sheetIndex, long rowNum, List<Object> r) {
orderMap.put("sid", orderSid);
if (rowNum == 1) {
orderMap.put("code", r.get(2));
String tdrCode_s = r.get(4).toString();
String[] split = tdrCode_s.split("\\[");
String s = split[1];
String replace = s.replace("]", "");
orderMap.put("tdrCode", replace);//填单人
orderMap.put("tdrName", split[0]);//填单人
orderMap.put("purchaseDate", r.get(6));//填单时间
orderMap.put("supplierName", r.get(6));//
orderMap.put("supplierCode", r.get(6));//
}
if (rowNum == 2) {
String s = r.get(2).toString();
String[] split = s.split("]");
orderMap.put("supplierName", split[1]);//
String s1 = split[0];
String replace = s1.replace("[", "");
orderMap.put("supplierCode", replace);//
String o = r.get(4).toString();
// String[] split1 = o.split("]");
orderMap.put("warehousePosition", o.substring(3));
// String s2 = split1[0];
// String replace1 = s2.replace("[", "");
orderMap.put("warehousePositionCode", o.substring(0, 3));
orderMap.put("arrivalDate", r.get(6));
}
if (rowNum == 3) {
String s = r.get(2).toString();
String[] split = s.split("\\[");
orderMap.put("buyerName", split[0]);//
String s1 = split[1];
String replace = s1.replace("]", "");
orderMap.put("buyerCode", replace);//
String s3 = r.get(4).toString();
String substring = s3.substring(s3.indexOf("[") + 1, s3.indexOf("]"));
String substring1 = s3.substring(s3.indexOf("]") + 1, s3.length());
orderMap.put("purchasingOrgCode", substring);
orderMap.put("purchasingOrgName", substring1);
String expiryDate = r.get(6) == null ? "" : r.get(6).toString();
orderMap.put("expiryDate", expiryDate);
}
if (rowNum == 4) {
String completionStatus = r.get(6) == null ? "" : r.get(6).toString();
orderMap.put("completionStatus", completionStatus);
orderMap.put("completionStatus", "0");
}
if (rowNum > 5) {
Map<String, Object> sd_map = new HashMap<>();
String o = "" + r.get(3);
if (StringUtils.isNotBlank(o) && o.length() > 9) {
try {
sd_map.put("yCode", r.get(2));//卷烟代码
String[] split = o.split("]");
String substring = split[0].substring(split[0].indexOf("[") + 1, split[0].length());
sd_map.put("storeCode", substring);//门店代码
sd_map.put("storeName", split[1]);//门店名称
sd_map.put("price", r.get(4));//金额
sd_map.put("pc", r.get(5));//批次
sd_map.put("mainSid", orderSid);//关联sid
PurchaseRequisitionStore sd = new PurchaseRequisitionStore();
BeanUtil.fillBeanWithMap(sd_map, sd, true);
toInsertList.add(sd);
} catch (Exception e) {
e.printStackTrace();
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
baseMapper.insertIntoImportDataInfo(sdf.format(new Date()), "烟草数据导入第" + rowNum + "出现异常" + e.getMessage());
System.err.println("i=" + rowNum + ",value=null");
}
}
log.info("productInformation:{}", JSONObject.toJSONString(sd_map));
log.info("rowNum:{}", rowNum);
}
}
@Override
public void handleCell(int sheetIndex, long rowIndex, int cellIndex, Object value, CellStyle xssfCellStyle) {
RowHandler.super.handleCell(sheetIndex, rowIndex, cellIndex, value, xssfCellStyle);
}
@Override
public void doAfterAllAnalysed() {
if (orderMap != null && !orderMap.isEmpty()) {
String orderCode = ("" + orderMap.get("purchaseDate")).replace(".", "");
PurchaseRequisitionTobaccoService.this.clearAllByCode(orderCode);
PurchaseRequisitionTobacco sd = new PurchaseRequisitionTobacco();
BeanUtil.fillBeanWithMap(orderMap, sd, true);
sd.setCode(orderCode);
baseMapper.insert(sd);
}
if (toInsertList != null && !toInsertList.isEmpty()) {
purchaseRequisitionStoreService.saveBatch(toInsertList);
}
RowHandler.super.doAfterAllAnalysed();
}
};
}
public void clearAllByCode(String orderCode) {
PurchaseRequisitionTobacco tt = fetchByCode(orderCode);
if (tt == null)
return;
purchaseRequisitionStoreService.clearAllByMainSid(tt.getSid());
baseMapper.clearByCode(orderCode);
}
/**
* 通过单号查找订单信息
*
* @param orderCode
* @return
*/
public PurchaseRequisitionTobacco fetchByCode(String orderCode) {
QueryWrapper<PurchaseRequisitionTobacco> qw = new QueryWrapper<>();
qw.eq("code", orderCode);
List<PurchaseRequisitionTobacco> list = baseMapper.selectList(qw);
if (list == null || list.isEmpty())
return null;
return list.get(0);
}
public PurchaseRequisitionTobaccoVo fetchVoBySid(String sid) {
QueryWrapper<PurchaseRequisitionTobacco> qw = new QueryWrapper<>();
qw.eq("sid", sid);
List<PurchaseRequisitionTobacco> list = baseMapper.selectList(qw);
if (list == null || list.isEmpty())
return null;
PurchaseRequisitionTobacco entity = list.get(0);
PurchaseRequisitionTobaccoVo vo = new PurchaseRequisitionTobaccoVo();
BeanUtil.copyProperties(entity, vo, true);
List<PurchaseRequisitionStoreVo> storeVoList = purchaseRequisitionStoreService.listVoByMainSid(sid);
vo.setStoreList(storeVoList);
return vo;
}
} }

23
yxt_supervise/supervise-portal/supervise-portal-biz/src/main/java/com/yxt/supervise/portal/biz/purchaserequisitiontobaccodetails/PurchaseRequisitionTobaccoDetailsRest.java

@ -82,22 +82,25 @@ public class PurchaseRequisitionTobaccoDetailsRest {
purchaseRequisitionTobaccoDetailsService.saveOrUpdate(entity); purchaseRequisitionTobaccoDetailsService.saveOrUpdate(entity);
return rb.success(); return rb.success();
} }
@ApiOperation("导入门店的明细根据汇总表中门店数据的sid") @ApiOperation("导入门店的明细根据汇总表中门店数据的sid")
@RequestMapping(value = "/importBrandSort", method = RequestMethod.POST) @RequestMapping(value = "/importBrandSort", method = RequestMethod.POST)
public ResultBean importBrandSort(@RequestParam("filename") MultipartFile file, @RequestParam( name ="sid", required = false)String sid){ public ResultBean importBrandSort(@RequestParam("filename") MultipartFile file, @RequestParam(name = "sid", required = false) String sid) {
ResultBean rb = ResultBean.fireFail(); ResultBean rb = ResultBean.fireFail();
purchaseRequisitionTobaccoDetailsService.readBrandPeriodSorXls1(file,sid); purchaseRequisitionTobaccoDetailsService.readBrandPeriodSorXls1(file, sid);
return rb.success(); return rb.success();
} }
@ApiOperation("根据汇总表的sid批量导入门店的明细") @ApiOperation("根据汇总表的sid批量导入门店的明细")
@RequestMapping(value = "/importBrandSortBatch", method = RequestMethod.POST) @RequestMapping(value = "/importBrandSortBatch", method = RequestMethod.POST)
public ResultBean importBrandSortBatch(@RequestParam("filename") List<MultipartFile> file, @RequestParam( name ="sid", required = false)String sid){ public ResultBean importBrandSortBatch(@RequestParam("filename") List<MultipartFile> file, @RequestParam(name = "sid", required = false) String sid) {
ResultBean rb = ResultBean.fireFail(); ResultBean rb = ResultBean.fireFail();
for(MultipartFile f:file){ for (MultipartFile f : file) {
purchaseRequisitionTobaccoDetailsService.importBrandSortBatch(f,sid); purchaseRequisitionTobaccoDetailsService.importBrandSortBatch(f, sid);
} }
return rb.success(); return rb.success();
} }
@ApiOperation("删除记录") @ApiOperation("删除记录")
@GetMapping("/del/{ids}") @GetMapping("/del/{ids}")
public ResultBean del(@PathVariable("ids") String ids) { public ResultBean del(@PathVariable("ids") String ids) {
@ -113,4 +116,10 @@ public class PurchaseRequisitionTobaccoDetailsRest {
PurchaseRequisitionTobaccoDetails entity = purchaseRequisitionTobaccoDetailsService.fetchById(id); PurchaseRequisitionTobaccoDetails entity = purchaseRequisitionTobaccoDetailsService.fetchById(id);
return rb.success().setData(entity); return rb.success().setData(entity);
} }
@ApiOperation("根据汇总表的sid批量导入门店的明细")
@RequestMapping(value = "/importCsvBatch", method = RequestMethod.POST)
public ResultBean importCsvBatch(@RequestParam("filename") List<MultipartFile> files, @RequestParam(name = "sid") String sid) {
return purchaseRequisitionTobaccoDetailsService.importCsvBatch(files, sid);
}
} }

270
yxt_supervise/supervise-portal/supervise-portal-biz/src/main/java/com/yxt/supervise/portal/biz/purchaserequisitiontobaccodetails/PurchaseRequisitionTobaccoDetailsService.java

@ -42,8 +42,10 @@ import com.yxt.common.base.config.component.FileUploadComponent;
import com.yxt.common.base.service.MybatisBaseService; import com.yxt.common.base.service.MybatisBaseService;
import com.yxt.common.base.utils.PagerUtil; import com.yxt.common.base.utils.PagerUtil;
import com.yxt.common.core.query.PagerQuery; import com.yxt.common.core.query.PagerQuery;
import com.yxt.common.core.result.ResultBean;
import com.yxt.common.core.vo.PagerVo; import com.yxt.common.core.vo.PagerVo;
import com.yxt.supervise.portal.biz.purchaserequisitionstore.PurchaseRequisitionStoreService; import com.yxt.supervise.portal.biz.purchaserequisitionstore.PurchaseRequisitionStoreService;
import com.yxt.supervise.portal.biz.purchaserequisitiontobacco.PurchaseRequisitionTobaccoService;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.StringUtils;
@ -80,6 +82,9 @@ public class PurchaseRequisitionTobaccoDetailsService extends MybatisBaseService
private FileUploadComponent fileUploadComponent; private FileUploadComponent fileUploadComponent;
@Resource @Resource
private PurchaseRequisitionStoreService purchaseRequisitionStoreService; private PurchaseRequisitionStoreService purchaseRequisitionStoreService;
@Autowired
private PurchaseRequisitionTobaccoService purchaseRequisitionTobaccoService;
public PagerVo<PurchaseRequisitionTobaccoDetails> listPage(PagerQuery<PurchaseRequisitionTobaccoDetailsQuery> pq) { public PagerVo<PurchaseRequisitionTobaccoDetails> listPage(PagerQuery<PurchaseRequisitionTobaccoDetailsQuery> pq) {
PurchaseRequisitionTobaccoDetailsQuery query = pq.getParams(); PurchaseRequisitionTobaccoDetailsQuery query = pq.getParams();
QueryWrapper<PurchaseRequisitionTobaccoDetails> qw = createQueryWrapper(query); QueryWrapper<PurchaseRequisitionTobaccoDetails> qw = createQueryWrapper(query);
@ -93,28 +98,29 @@ public class PurchaseRequisitionTobaccoDetailsService extends MybatisBaseService
// todo: 这里根据具体业务调整查询条件 // todo: 这里根据具体业务调整查询条件
// 多字段Like示例:qw.and(wrapper -> wrapper.like("name", query.getName()).or().like("remark", query.getName())); // 多字段Like示例:qw.and(wrapper -> wrapper.like("name", query.getName()).or().like("remark", query.getName()));
QueryWrapper<PurchaseRequisitionTobaccoDetails> qw = new QueryWrapper<>(); QueryWrapper<PurchaseRequisitionTobaccoDetails> qw = new QueryWrapper<>();
if (StringUtils.isNotBlank(query.getCreateSid())) {
qw.eq("createSid", query.getCreateSid());
}
if (StringUtils.isNotBlank(query.getModifySid())) { if (StringUtils.isNotBlank(query.getCreateSid())) {
qw.eq("modifySid", query.getModifySid()); qw.eq("createSid", query.getCreateSid());
} }
if (StringUtils.isNotBlank(query.getModifySid())) {
qw.eq("modifySid", query.getModifySid());
}
return qw; return qw;
} }
public void readBrandPeriodSorXls1(MultipartFile file,String sid) {
public void readBrandPeriodSorXls1(MultipartFile file, String sid) {
CsvReader csvReader = CsvUtil.getReader(); CsvReader csvReader = CsvUtil.getReader();
File f = this.multiToFile(file); File f = this.multiToFile(file);
BufferedReader reader = ResourceUtil.getReader(f.getPath(), CharsetUtil.CHARSET_GBK); BufferedReader reader = ResourceUtil.getReader(f.getPath(), CharsetUtil.CHARSET_GBK);
List<HashMap > rows = csvReader.read(reader, HashMap.class); List<HashMap> rows = csvReader.read(reader, HashMap.class);
List<PurchaseRequisitionTobaccoDetails> ls=new ArrayList<>(); List<PurchaseRequisitionTobaccoDetails> ls = new ArrayList<>();
int i = 0; int i = 0;
BigDecimal bigDecimal=new BigDecimal("0"); BigDecimal bigDecimal = new BigDecimal("0");
for(HashMap hm:rows){ for (HashMap hm : rows) {
/*"商品": "钻石(硬迎宾)\t", /*"商品": "钻石(硬迎宾)\t",
"批发价": "61.500000\t", "批发价": "61.500000\t",
"卷烟代码": "130690\t", "卷烟代码": "130690\t",
@ -123,54 +129,56 @@ public class PurchaseRequisitionTobaccoDetailsService extends MybatisBaseService
"零售指导价": "70.00\t", "零售指导价": "70.00\t",
"金额": "184.50\t", "金额": "184.50\t",
"厂家名称": "河北中烟\t"*/ "厂家名称": "河北中烟\t"*/
try{ String sp = hm.get("商品").toString().trim(); try {
String pfj = hm.get("批发价").toString().trim(); String sp = hm.get("商品").toString().trim();
String jydm = hm.get("卷烟代码").toString().trim(); String pfj = hm.get("批发价").toString().trim();
String ddl = hm.get("订单量").toString().trim(); String jydm = hm.get("卷烟代码").toString().trim();
String yhl = hm.get("要货量").toString().trim(); String ddl = hm.get("订单量").toString().trim();
String lszdj = hm.get("零售指导价").toString().trim(); String yhl = hm.get("要货量").toString().trim();
String je = hm.get("金额").toString().trim(); String lszdj = hm.get("零售指导价").toString().trim();
String cjmc = hm.get("厂家名称").toString().trim(); String je = hm.get("金额").toString().trim();
PurchaseRequisitionTobaccoDetails p=new PurchaseRequisitionTobaccoDetails(); String cjmc = hm.get("厂家名称").toString().trim();
p.setCjmc(cjmc); PurchaseRequisitionTobaccoDetails p = new PurchaseRequisitionTobaccoDetails();
p.setDdl(ddl); p.setCjmc(cjmc);
p.setLszdj(lszdj); p.setDdl(ddl);
p.setPfj(pfj); p.setLszdj(lszdj);
p.setPfj(pfj);
BigDecimal price = new BigDecimal(je.trim()); BigDecimal price = new BigDecimal(je.trim());
bigDecimal= bigDecimal.add(price); bigDecimal = bigDecimal.add(price);
p.setPrice(je); p.setPrice(je);
p.setProdName(sp); p.setProdName(sp);
p.setYCode(jydm); p.setYCode(jydm);
p.setYhl(yhl); p.setYhl(yhl);
p.setMainSid(sid); p.setMainSid(sid);
ls.add(p); ls.add(p);
i++; i++;
}catch(Exception e){ } catch (Exception e) {
e.printStackTrace(); e.printStackTrace();
SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
baseMapper.insertIntoImportDataInfo(sdf.format(new Date()),"烟草数据明细导入第"+i+"出现异常"+e.getMessage()); baseMapper.insertIntoImportDataInfo(sdf.format(new Date()), "烟草数据明细导入第" + i + "出现异常" + e.getMessage());
System.err.println("i="+i+",value=null"); System.err.println("i=" + i + ",value=null");
} }
} }
log.info("rows:{}",JSONObject.toJSONString(rows)); log.info("rows:{}", JSONObject.toJSONString(rows));
log.info("ls:{}",JSONObject.toJSONString(ls)); log.info("ls:{}", JSONObject.toJSONString(ls));
baseMapper.batchInsert(ls); baseMapper.batchInsert(ls);
purchaseRequisitionStoreService.updateDetailsPrice(sid,bigDecimal.toString()); purchaseRequisitionStoreService.updateDetailsPrice(sid, bigDecimal.toString());
} }
public void importBrandSortBatch(MultipartFile file,String sid) {
public void importBrandSortBatch(MultipartFile file, String sid) {
CsvReader csvReader = CsvUtil.getReader(); CsvReader csvReader = CsvUtil.getReader();
File f = this.multiToFile(file); File f = this.multiToFile(file);
BufferedReader reader = ResourceUtil.getReader(f.getPath(), CharsetUtil.CHARSET_GBK); BufferedReader reader = ResourceUtil.getReader(f.getPath(), CharsetUtil.CHARSET_GBK);
List<HashMap > rows = csvReader.read(reader, HashMap.class); List<HashMap> rows = csvReader.read(reader, HashMap.class);
List<PurchaseRequisitionTobaccoDetails> ls=new ArrayList<>(); List<PurchaseRequisitionTobaccoDetails> ls = new ArrayList<>();
String name = file.getOriginalFilename();//365[0100]省直店 String name = file.getOriginalFilename();//365[0100]省直店
String[] split = name.split("]"); String[] split = name.split("]");
String s = split[0]; String s = split[0];
String storeCode= s.replace("365[", ""); String storeCode = s.replace("365[", "");
PurchaseRequisitionStore purchaseRequisitionStore=purchaseRequisitionStoreService.selectByMainSidAndStoreCode(storeCode,sid); PurchaseRequisitionStore purchaseRequisitionStore = purchaseRequisitionStoreService.selectByMainSidAndStoreCode(storeCode, sid);
int i = 0; int i = 0;
BigDecimal bigDecimal=new BigDecimal("0"); BigDecimal bigDecimal = new BigDecimal("0");
for(HashMap hm:rows){ for (HashMap hm : rows) {
/*"商品": "钻石(硬迎宾)\t", /*"商品": "钻石(硬迎宾)\t",
"批发价": "61.500000\t", "批发价": "61.500000\t",
"卷烟代码": "130690\t", "卷烟代码": "130690\t",
@ -179,7 +187,8 @@ public class PurchaseRequisitionTobaccoDetailsService extends MybatisBaseService
"零售指导价": "70.00\t", "零售指导价": "70.00\t",
"金额": "184.50\t", "金额": "184.50\t",
"厂家名称": "河北中烟\t"*/ "厂家名称": "河北中烟\t"*/
try{ String sp = hm.get("商品").toString().trim(); try {
String sp = hm.get("商品").toString().trim();
String pfj = hm.get("批发价").toString().trim(); String pfj = hm.get("批发价").toString().trim();
String jydm = hm.get("卷烟代码").toString().trim(); String jydm = hm.get("卷烟代码").toString().trim();
String ddl = hm.get("订单量").toString().trim(); String ddl = hm.get("订单量").toString().trim();
@ -187,13 +196,13 @@ public class PurchaseRequisitionTobaccoDetailsService extends MybatisBaseService
String lszdj = hm.get("零售指导价").toString().trim(); String lszdj = hm.get("零售指导价").toString().trim();
String je = hm.get("金额").toString().trim(); String je = hm.get("金额").toString().trim();
String cjmc = hm.get("厂家名称").toString().trim(); String cjmc = hm.get("厂家名称").toString().trim();
PurchaseRequisitionTobaccoDetails p=new PurchaseRequisitionTobaccoDetails(); PurchaseRequisitionTobaccoDetails p = new PurchaseRequisitionTobaccoDetails();
p.setCjmc(cjmc); p.setCjmc(cjmc);
p.setDdl(ddl); p.setDdl(ddl);
p.setLszdj(lszdj); p.setLszdj(lszdj);
p.setPfj(pfj); p.setPfj(pfj);
BigDecimal price = new BigDecimal(je.trim()); BigDecimal price = new BigDecimal(je.trim());
bigDecimal= bigDecimal.add(price); bigDecimal = bigDecimal.add(price);
p.setPrice(je); p.setPrice(je);
p.setProdName(sp); p.setProdName(sp);
p.setYCode(jydm); p.setYCode(jydm);
@ -201,21 +210,23 @@ public class PurchaseRequisitionTobaccoDetailsService extends MybatisBaseService
p.setMainSid(purchaseRequisitionStore.getSid()); p.setMainSid(purchaseRequisitionStore.getSid());
ls.add(p); ls.add(p);
i++; i++;
}catch(Exception e){ } catch (Exception e) {
e.printStackTrace(); e.printStackTrace();
SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
baseMapper.insertIntoImportDataInfo(sdf.format(new Date()),"烟草数据明细导入第"+i+"出现异常"+e.getMessage()); baseMapper.insertIntoImportDataInfo(sdf.format(new Date()), "烟草数据明细导入第" + i + "出现异常" + e.getMessage());
System.err.println("i="+i+",value=null"); System.err.println("i=" + i + ",value=null");
} }
} }
log.info("rows:{}",JSONObject.toJSONString(rows)); log.info("rows:{}", JSONObject.toJSONString(rows));
log.info("ls:{}",JSONObject.toJSONString(ls)); log.info("ls:{}", JSONObject.toJSONString(ls));
baseMapper.batchInsert(ls); baseMapper.batchInsert(ls);
purchaseRequisitionStoreService.updateDetailsPrice(purchaseRequisitionStore.getSid(),storeCode,bigDecimal.toString()); purchaseRequisitionStoreService.updateDetailsPrice(purchaseRequisitionStore.getSid(), storeCode, bigDecimal.toString());
} }
/** /**
* MultipartFile转file * MultipartFile转file
*
* @param multipartFile * @param multipartFile
* @return * @return
*/ */
@ -225,7 +236,7 @@ public class PurchaseRequisitionTobaccoDetailsService extends MybatisBaseService
try { try {
String originalFilename = multipartFile.getOriginalFilename(); String originalFilename = multipartFile.getOriginalFilename();
String[] filename = originalFilename.split("\\."); String[] filename = originalFilename.split("\\.");
file=File.createTempFile(filename[0], filename[1]); file = File.createTempFile(filename[0], filename[1]);
multipartFile.transferTo(file); multipartFile.transferTo(file);
file.deleteOnExit(); file.deleteOnExit();
} catch (IOException e) { } catch (IOException e) {
@ -235,42 +246,43 @@ public class PurchaseRequisitionTobaccoDetailsService extends MybatisBaseService
return file; return file;
} }
private RowHandler createRowHandler(String sid ) { private RowHandler createRowHandler(String sid) {
return new RowHandler() { return new RowHandler() {
List<String> lisss=new ArrayList<>(); List<String> lisss = new ArrayList<>();
List<PurchaseRequisitionTobaccoDetails> salesDatas=new ArrayList<>(); List<PurchaseRequisitionTobaccoDetails> salesDatas = new ArrayList<>();
int i = 0; int i = 0;
// int j = 0; // int j = 0;
BigDecimal bigDecimal=new BigDecimal("0"); BigDecimal bigDecimal = new BigDecimal("0");
@Override @Override
public void handle(int sheetIndex, long rowNum, List<Object> r) { public void handle(int sheetIndex, long rowNum, List<Object> r) {
if(rowNum>0){ if (rowNum > 0) {
Map<String,Object> sd_map=new HashMap<>(); Map<String, Object> sd_map = new HashMap<>();
try{ try {
sd_map.put("yCode",r.get(0).toString().trim());//卷烟代码 sd_map.put("yCode", r.get(0).toString().trim());//卷烟代码
sd_map.put("prodCode","12");//商品代码 sd_map.put("prodCode", "12");//商品代码
sd_map.put("prodName",r.get(1).toString().trim());//商品名称 sd_map.put("prodName", r.get(1).toString().trim());//商品名称
sd_map.put("pfj",r.get(2).toString().trim());//批发价 sd_map.put("pfj", r.get(2).toString().trim());//批发价
sd_map.put("yhl",r.get(3).toString().trim());//要货量 sd_map.put("yhl", r.get(3).toString().trim());//要货量
sd_map.put("ddl",r.get(4).toString().trim());//订单量 sd_map.put("ddl", r.get(4).toString().trim());//订单量
sd_map.put("price",r.get(5).toString().trim());//金额 sd_map.put("price", r.get(5).toString().trim());//金额
BigDecimal price = new BigDecimal(r.get(5).toString().trim()); BigDecimal price = new BigDecimal(r.get(5).toString().trim());
bigDecimal= bigDecimal.add(price); bigDecimal = bigDecimal.add(price);
sd_map.put("cjmc",r.get(6).toString().trim());//厂家名称 sd_map.put("cjmc", r.get(6).toString().trim());//厂家名称
sd_map.put("lszdj",r.get(7).toString().trim());//零售指导价 sd_map.put("lszdj", r.get(7).toString().trim());//零售指导价
sd_map.put("mainSid",sid);//关联表sid sd_map.put("mainSid", sid);//关联表sid
PurchaseRequisitionTobaccoDetails sd=new PurchaseRequisitionTobaccoDetails(); PurchaseRequisitionTobaccoDetails sd = new PurchaseRequisitionTobaccoDetails();
BeanUtil.fillBeanWithMap(sd_map, sd, true); BeanUtil.fillBeanWithMap(sd_map, sd, true);
salesDatas.add(sd); salesDatas.add(sd);
i++; i++;
}catch(Exception e){ } catch (Exception e) {
e.printStackTrace(); e.printStackTrace();
SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
baseMapper.insertIntoImportDataInfo(sdf.format(new Date()),"烟草数据明细导入第"+i+"出现异常"+e.getMessage()); baseMapper.insertIntoImportDataInfo(sdf.format(new Date()), "烟草数据明细导入第" + i + "出现异常" + e.getMessage());
System.err.println("i="+i+",value=null"); System.err.println("i=" + i + ",value=null");
} }
lisss.add(rowNum+""); lisss.add(rowNum + "");
log.info("productInformation:{}", JSONObject.toJSONString(sd_map)); log.info("productInformation:{}", JSONObject.toJSONString(sd_map));
log.info("rowNum:{}", rowNum); log.info("rowNum:{}", rowNum);
} }
@ -286,22 +298,102 @@ public class PurchaseRequisitionTobaccoDetailsService extends MybatisBaseService
List<List<PurchaseRequisitionTobaccoDetails>> listArray = new ArrayList<List<PurchaseRequisitionTobaccoDetails>>(); List<List<PurchaseRequisitionTobaccoDetails>> listArray = new ArrayList<List<PurchaseRequisitionTobaccoDetails>>();
int listSize = salesDatas.size(); int listSize = salesDatas.size();
if(listSize>0){ if (listSize > 0) {
baseMapper.deleteByMainSid(salesDatas.get(0).getMainSid()); baseMapper.deleteByMainSid(salesDatas.get(0).getMainSid());
} }
int pageSize=5000; int pageSize = 5000;
for (int i = 0; i < listSize; i += pageSize) { for (int i = 0; i < listSize; i += pageSize) {
int toIndex = Math.min(i + pageSize, listSize); int toIndex = Math.min(i + pageSize, listSize);
listArray.add(salesDatas.subList(i, toIndex)); listArray.add(salesDatas.subList(i, toIndex));
} }
for(List<PurchaseRequisitionTobaccoDetails> l:listArray){ for (List<PurchaseRequisitionTobaccoDetails> l : listArray) {
log.info("batchInsert-start:{}",l.size()); log.info("batchInsert-start:{}", l.size());
baseMapper.batchInsert(l); baseMapper.batchInsert(l);
log.info("batchInsert-end:{}",l.size()); log.info("batchInsert-end:{}", l.size());
} }
purchaseRequisitionStoreService.updateDetailsPrice(sid,bigDecimal.toString()); purchaseRequisitionStoreService.updateDetailsPrice(sid, bigDecimal.toString());
RowHandler.super.doAfterAllAnalysed(); RowHandler.super.doAfterAllAnalysed();
} }
}; };
} }
public void clearByMainSids(List<String> mainsidList) {
mainsidList.forEach(mainsid -> baseMapper.deleteByMainSid(mainsid));
}
public List<PurchaseRequisitionTobaccoDetails> listByMainSid(String mainSid) {
QueryWrapper<PurchaseRequisitionTobaccoDetails> qw = new QueryWrapper<>();
qw.eq("mainSid", mainSid);
return baseMapper.selectList(qw);
}
public ResultBean importCsvBatch(List<MultipartFile> files, String sid) {
ResultBean rb = ResultBean.fireFail();
if (files == null || files.isEmpty())
return rb.setMsg("没有上传文件");
if (StringUtils.isBlank(sid))
return rb.setMsg("没有订单ID");
List<PurchaseRequisitionTobaccoDetails> toInsertList = new ArrayList<>();
Map<String, String> priceMap = new HashMap<>();
List<String> sidList = new ArrayList<>();
for (MultipartFile file : files) {
CsvReader csvReader = CsvUtil.getReader();
File f = this.multiToFile(file);
BufferedReader reader = ResourceUtil.getReader(f.getPath(), CharsetUtil.CHARSET_GBK);
List<HashMap> rows = csvReader.read(reader, HashMap.class);
String filename = file.getOriginalFilename();//365[0100]省直店
String[] split = filename.split("]");
String s = split[0];
String storeCode = s.replace("365[", "");
PurchaseRequisitionStore purchaseRequisitionStore = purchaseRequisitionStoreService.selectByMainSidAndStoreCode(storeCode, sid);
if (purchaseRequisitionStore == null)
return rb.setMsg(filename + " 没有对应订单记录");
String mainSid = purchaseRequisitionStore.getSid();
int i = 0;
BigDecimal bigDecimal = new BigDecimal("0");
for (HashMap hm : rows) {
try {
String sp = hm.get("商品").toString().trim();
String pfj = hm.get("批发价").toString().trim();
String jydm = hm.get("卷烟代码").toString().trim();
String ddl = hm.get("订单量").toString().trim();
String yhl = hm.get("要货量").toString().trim();
String lszdj = hm.get("零售指导价").toString().trim();
String je = hm.get("金额").toString().trim();
String cjmc = hm.get("厂家名称").toString().trim();
PurchaseRequisitionTobaccoDetails p = new PurchaseRequisitionTobaccoDetails();
p.setCjmc(cjmc);
p.setDdl(ddl);
p.setLszdj(lszdj);
p.setPfj(pfj);
BigDecimal price = new BigDecimal(je.trim());
bigDecimal = bigDecimal.add(price);
p.setPrice(je);
p.setProdName(sp);
p.setYCode(jydm);
p.setYhl(yhl);
p.setMainSid(mainSid);
toInsertList.add(p);
i++;
} catch (Exception e) {
e.printStackTrace();
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
baseMapper.insertIntoImportDataInfo(sdf.format(new Date()), "烟草数据明细导入第" + i + "出现异常" + e.getMessage());
System.err.println("i=" + i + ",value=null");
}
}
sidList.add(mainSid);
priceMap.put(mainSid, bigDecimal.toString());
}
this.clearByMainSids(sidList);
this.saveBatch(toInsertList);
for (String key : priceMap.keySet()) {
purchaseRequisitionStoreService.updateDetailsPrice(key, priceMap.get(key));
}
return rb.success();
}
} }

Loading…
Cancel
Save