Commit 3a4d405d authored by 谢希宇's avatar 谢希宇

Submit by Strive

Date 2021/03/24
Project End
parent efba531b
......@@ -377,7 +377,7 @@
"aTargets": [3],
"mData": "userName",
"mRender": function (a, b, c, d) {
if (c) {
if (c.userName) {
return c.userName.slice(0, 1) + '*' + c.userName.slice(2, c.userName.length);
} else {
return null;
......
......@@ -33,7 +33,7 @@ public class ConsultSheetVO {
private String phone;
/* 疾病史 */
@ExportConfig(value = "三期用户", width = 100, showLevel = 1)
@ExportConfig(value = "患者类型", width = 100, showLevel = 1)
private String isThree;
// /* 病情描述 */
......
......@@ -348,7 +348,7 @@ public class ConsultSheetController {
consultSheetVO.setSex(consultSheetObj.getSex() == 1 ? "男" : "女");
consultSheetVO.setPhone( tpl.append(consultSheetObj.getPhone()).replace(3,7, "****").toString());
tpl.setLength(0);
consultSheetVO.setIsThree(StringUtils.equals(consultSheetVO.getIsThree(), "0")? "三期患者":(StringUtils.equals(consultSheetVO.getIsThree(), "1") ? "四期患者":""));
consultSheetVO.setIsThree(StringUtils.equals(consultSheetObj.getIsThree(), "0")? "三期患者":(StringUtils.equals(consultSheetObj.getIsThree(), "1") ? "四期患者":""));
consultSheetVO.setStatus("0".equals(consultSheetObj.getStatus()) ? "未审核" : "1".equals(consultSheetObj.getStatus()) ? "已通过" : "已拒绝");
consultSheetVO.setPharmaName(consultSheetObj.getPharmaName());
consultSheetVO.setCustomerName(consultSheetObj.getCustomerName());
......
......@@ -93,21 +93,21 @@
>
</div>
<div class="form-group form-md-line-input col-md-12">
<label>抬头类型</label>
<input type="text" required class="form-control pull-right" readonly
value="$!{data.status}" maxlength="500" required
name="status" placeholder="抬头类型"
>
</div>
<div class="form-group form-md-line-input col-md-12">
<label>发票内容</label>
<input type="text" required class="form-control pull-right" readonly
value="$!{data.invoiceContent}" maxlength="500" required
name="invoiceContent" placeholder="发票内容"
>
</div>
<!-- <div class="form-group form-md-line-input col-md-12">-->
<!-- <label>抬头类型</label>-->
<!-- <input type="text" required class="form-control pull-right" readonly-->
<!-- value="$!{data.status}" maxlength="500" required-->
<!-- name="status" placeholder="抬头类型"-->
<!-- >-->
<!-- </div>-->
<!-- <div class="form-group form-md-line-input col-md-12">-->
<!-- <label>发票内容</label>-->
<!-- <input type="text" required class="form-control pull-right" readonly-->
<!-- value="$!{data.invoiceContent}" maxlength="500" required-->
<!-- name="invoiceContent" placeholder="发票内容"-->
<!-- >-->
<!-- </div>-->
<div class="form-group form-md-line-input col-md-12">
<label>发票类型</label>
......@@ -133,13 +133,13 @@
>
</div>
<div class="form-group form-md-line-input col-md-12">
<label>开票人</label>
<input type="text" required class="form-control pull-right" readonly
value="$!{data.clerkId}" maxlength="500" required
name="clerkId" placeholder="开票人"
>
</div>
<!-- <div class="form-group form-md-line-input col-md-12">-->
<!-- <label>开票人</label>-->
<!-- <input type="text" required class="form-control pull-right" readonly-->
<!-- value="$!{data.clerkId}" maxlength="500" required-->
<!-- name="clerkId" placeholder="开票人"-->
<!-- >-->
<!-- </div>-->
<div class="form-group form-md-line-input col-md-12">
<label>openId</label>
......
......@@ -120,7 +120,7 @@
<th>订单编码</th>
<th>抬头类型</th>
<th>来源</th>
<th>开票人</th>
<!-- <th>开票人</th>-->
<th>别名</th>
<th>操作人</th>
<th>推送邮箱</th>
......@@ -233,9 +233,9 @@
{
"mData":"invoiceForm"
},
{
"mData":"clerkId"
},
// {
// "mData":"clerkId"
// },
{
"mData":"aliasName"
},
......@@ -359,14 +359,14 @@
// },
{
"aTargets": [8],
"aTargets": [7],
"mData": "createTime",
"mRender": function (a, b, c, d) {
return formatDates(a, "yyyy-MM-dd HH:mm:ss");
}
},
{
"aTargets": [9],
"aTargets": [8],
"mData": "id",
"mRender": function (a, b, c, d) {
var html = '#if($shiro.hasPermission("qy:invoice:edit"))';
......
......@@ -33,9 +33,9 @@ public class Invoice implements Serializable {
/** 来源(0:移动端 1:后台) */
@ExportConfig(value = "来源", width = 100, showLevel = 1)
private String invoiceForm;
/** 开票人id(移动端传opendId,后台传userid) */
/** 开票人(移动端传opendId,后台传userid) */
@ExportConfig(value = "开票人", width = 100, showLevel = 1)
private String clerkId;
private String operator;
/** 订单ID */
@ExportConfig(value = "订单编码", width = 100, showLevel = 1)
private String orderId;
......@@ -58,7 +58,6 @@ public class Invoice implements Serializable {
/**
* 状态( 0:个人 1:企业 )
*/
@ExportConfig(value = "抬头类型")
private String status;
/** 创建时间 */
private Date createTime;
......@@ -77,7 +76,7 @@ public class Invoice implements Serializable {
/**
* 操作者
*/
private String operator;
private String clerkId;
//发票代码
private String invoiceCode;
......
......@@ -15,37 +15,40 @@ public class InvoiceDto {
private String id;
/**
* 抬头类型(0:个人 1:企业)
* 发票类型
*/
private String type;
private String invoiceType;
/**
* 发票税号
* 发票内容
*/
private String unitTaxNumber;
private String invoiceContent;
/**
* 发票抬头
* 抬头类型(0:个人 1:企业)
*/
private String invoiceTitle;
private String type;
/**
* 发票内容
* 发票抬头
*/
private String invoiceContent;
private String invoiceTitle;
/**
* 开票人ID
* 发票税号
*/
private String openId;
private String unitTaxNumber;
/**
* 邮箱
*/
private String email;
private String appId;
/**
* 开票人ID
*/
private String openId;
private String appId;
}
......@@ -65,7 +65,7 @@ public class InvoiceController {
if (!StringUtils.isEmpty(id)) {
Invoice invoice = invoiceService.fetchById(id);
if (!StringUtils.isEmpty(invoice.getInvoiceType())){
invoice.setInvoiceType(invoice.getInvoiceType().equals("1") ? "蓝票" : "红票");
invoice.setInvoiceType(invoice.getInvoiceType().equals("1") ? "企业" : "个人");
}
if (!StringUtils.isEmpty(invoice.getInvoiceForm())){
invoice.setInvoiceForm(invoice.getInvoiceForm().equals("0") ? "移动端" : "后台");
......@@ -73,9 +73,9 @@ public class InvoiceController {
if (!StringUtils.isEmpty(invoice.getPushMode())){
invoice.setPushMode(invoice.getPushMode().equals("0") ? "邮箱" : "");
}
if (!StringUtils.isEmpty(invoice.getStatus())){
invoice.setStatus(invoice.getStatus().equals("0") ? "个人" : "企业");
}
// if (!StringUtils.isEmpty(invoice.getStatus())){
// invoice.setStatus(invoice.getStatus().equals("0") ? "个人" : "企业");
// }
if (invoice.getCreateTime() != null){
SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
invoice.setDescription(format.format(invoice.getCreateTime()));
......@@ -128,7 +128,6 @@ public class InvoiceController {
conds.like("t.order_id", invoice.getOrderId());
}
Sort sort = new Sort("t.create_time", OrderType.DESC);
List<Invoice> list = invoiceService.fetchSearchByPage(conds, sort, iDisplayStart, iDisplayLength);
......@@ -169,10 +168,10 @@ public class InvoiceController {
List<Invoice> list = invoiceService.fetchSearchByPage(conds, sort, 0, 0);
if (list.size() > 0){
for (Invoice invoiceObj : list) {
invoiceObj.setInvoiceType(StringUtils.isEmpty(invoiceObj.getInvoiceType()) ? "" : invoiceObj.getInvoiceType().equals("1") ? "正票":"红票" );
invoiceObj.setInvoiceType(StringUtils.isEmpty(invoiceObj.getInvoiceType()) ? "" : invoiceObj.getInvoiceType().equals("1") ? "企业":"个人" );
invoiceObj.setInvoiceForm(StringUtils.isEmpty(invoiceObj.getInvoiceForm()) ? "" : invoiceObj.getInvoiceForm().equals("0") ? "移动端" : "后台");
invoiceObj.setPushMode(StringUtils.isEmpty(invoiceObj.getPushMode()) ? "" : "邮箱");
invoiceObj.setStatus(StringUtils.isEmpty(invoiceObj.getStatus()) ? "" : invoiceObj.getStatus().equals("0") ? "个人" :"企业");
//invoiceObj.setStatus(StringUtils.isEmpty(invoiceObj.getStatus()) ? "" : invoiceObj.getStatus().equals("0") ? "个人" :"企业");
}
}
ExcelKit.$Export(Invoice.class, response).toExcel(list, "开票信息信息");
......
......@@ -268,6 +268,7 @@
var pageType = '${pageType}';
var areaList = [];
var batchNoList = [];
var orderSplitBatchDtoLists = '${orderSplitBatchDtos}';
let status = `$!{data.status}`;
if (status != null && status != '') {
......@@ -368,7 +369,6 @@
function delGoodsFun() {
$('.list-group').on('click', '.delGoods', function() {
console.log("删除");
let productCode = $(this).parent().find('input[name="productCode"]').val();
let numbers = $(this).parent().find('input[name="sendNum"]').val();
let scanGoods = $('textarea[name="scanGoodsCode"]').text();
......@@ -442,11 +442,14 @@
delGoodsFun();
list();
initBatchNo();
splitOrders();
if (pageType == 'true') {
initSplitHtml();
} else {
orderSplit();
}
initBatchNo();
splitOrders();
});
......@@ -484,7 +487,7 @@
if (pageType == 'true') {
HtmlAmount = `<input name="sendNum" class="form-control" type="text" style="width: 100px;margin-right: 50px;" readonly value="${count}"></input>`;
} else {
HtmlAmount = `<input name="sendNum" class="form-control" type="text" style="width: 100px;margin-right: 50px;" readonly value="0"></input>`;
HtmlAmount = `<input name="sendNum" class="form-control" type="text" style="width: 100px;margin-right: 50px;" readonly value="${count}"></input>`;
}
//var HtmlBatchNo = `<input name="batchNo" class="form-control" type="text" style="width: 300px; margin-right: 50px;"></input>`;
......@@ -509,15 +512,6 @@
</li>`;
$("#group").append(html);
toTal();
}
function toTal() {
var count = 0
$('.group [name="htmlAmount"]').each(function(index, item){
count += +item.value
})
$("#orderAmount").val(count.toFixed(2));
}
/**
......@@ -726,6 +720,30 @@
});
}
/**
* 初始化详情拆分页面
*/
function initSplitHtml() {
let list = JSON.parse(orderSplitBatchDtoLists);
let htmlStr = "";
for (let i=0; i<list.length; i++) {
let objs = list[i];
htmlStr += `<li name="form-translate" class="list-group-item split-translate" style="display:flex;">
<input type="hidden" name="idDetail" value="${objs.id}">
<input type="hidden" name="productId" value="${objs.drugsId}">
<input name="productName" class="form-control" style="width: 160px; margin-right: 50px" type="text"
readOnly="readonly" value="${objs.drugsName}">
<input name="productCode" class="form-control" style="width: 200px; margin-right: 50px"
type="text" readOnly="readonly" value="${objs.orderCode}">
<input name="splitNum" class="form-control splitNum" type="text"
style="width: 100px; margin-right: 50px;" readOnly="readonly" value="${objs.drugsNum}">
<input name="batchNo" class="form-control pull-right" readOnly="readonly" value="${objs.drugsBatchNo}"
style="width: 150px; margin-right: 30px;" /></li>`;
}
$('#splitTable').append(htmlStr);
}
var recdTypeAdd = function () {
var initForm = function () {
var initFormCtrl = function () {
......
......@@ -406,10 +406,10 @@
function clickAdd(id, productId, count, price, amount) {
var options = goodsList.map(function (item) {
if (productId && productId != null && item.id === productId) {
return `<option selected value="${item.id}" data-price="${item.price}">${item.productName}</option>`
if (productId != null && item.id == productId) {
return `<option selected value="${item.id}" data-price="${item.price}">${item.productName}</option>`;
} else {
return `<option value="${item.id}" data-price="${item.price}">${item.productName}</option>`
return `<option value="${item.id}" data-price="${item.price}">${item.productName}</option>`;
}
}).join('');
......@@ -417,40 +417,31 @@
if (id && id != null) {
idHtml += `<input type="hidden" id="idDetail" name="idDetail" value="` + id + `">`;
} else {
idHtml += `<input type="hidden" id="idDetail" name="idDetail" value="">`
idHtml += `<input type="hidden" id="idDetail" name="idDetail" value="">`;
}
var listHtml = "";
if (count && count != null) {
listHtml += `<input name="listHtml" class="form-control" type='number' style="width: 180px;margin-right: 50px; margin-left: 50px;" #if($!{isView} == 'true') readonly="readonly" #end oninput="if(value>100)value=100;if(value.length>2)value=value.slice(0,2);if(value<=0)value=1" onchange="updateCount(this)" value=${count} ></input>`;
listHtml += `<input name="listHtml" class="form-control" type='number' style="width: 180px;margin-right: 50px; margin-left: 50px;" #if($!{isView} == 'true')
readonly="readonly" #end oninput="if(value>100)value=100;if(value.length>2)value=value.slice(0,2);if(value<=0)value=1" onchange="updateCount(this)" value=${count}></input>`;
} else {
listHtml += `<input name="listHtml" class="form-control" type='number' style="width: 180px ;margin-right: 50px; margin-left: 50px;" oninput="if(value>100)value=100;if(value.length>2)value=value.slice(0,2);if(value<=0)value=1" onchange="updateCount(this)" value="1"></input>`;
listHtml += `<input name="listHtml" class="form-control" type='number' style="width: 180px ;margin-right: 50px; margin-left: 50px;" oninput="if(value>100)value=100;if(value.length>2)value=value.slice(0,2);if(value<=0)value=1" onchange="updateCount(this)" value="1" />`;
}
let bool = `$!{isThree}`;
var HtmlPrice = "";
if (price != null) {
HtmlPrice += `<input name="htmlPrice" class="form-control" data-price="` + price + `" style="width: 180px ;margin-right: 50px" type='text' `;
if (bool == "1" || isView == "true") {
HtmlPrice += `readonly="readonly"`;
}
let priceTmp = parseInt(price).toFixed(2);
HtmlPrice += ` onchange="updatePrice(this)" value="` + priceTmp + `"></input>`;
HtmlPrice += `<input name="htmlPrice" class="form-control" data-price="` + Number(price).toFixed(2) + `" style="width:180px;margin-right:50px" type='text' onchange="updatePrice(this)"
readonly="readonly" value="` + Number(price).toFixed(2) + `" />`;
} else {
let priceTmp = parseInt(goodsList[0].price).toFixed(2);
HtmlPrice += `<input name="htmlPrice" class="form-control" data-price="` + priceTmp + `" style="width: 180px ;margin-right: 50px" type="text" `;
if (bool == "1" || isView == "true") {
HtmlPrice += `readonly="readonly"`;
}
HtmlPrice += ` onchange="updatePrice(this)" value="` + priceTmp + `"></input>`;
HtmlPrice += `<input name="htmlPrice" class="form-control" data-price="` + Number(goodsList[0].price).toFixed(2) + `"
style="width: 180px;margin-right: 50px" type="text" readonly="readonly" onchange="updatePrice(this)" value="` + Number(goodsList[0].price).toFixed(2) + `" />`;
}
var HtmlAmount = "";
if (amount != null) {
HtmlAmount += `<input id="htmlAmount" class="form-control" name="htmlAmount" style="width: 180px ;margin-right: 50px" type='text' readonly="readonly" value="` + parseInt(amount).toFixed(2) + `" ></input>`;
HtmlAmount += `<input id="htmlAmount" class="form-control" name="htmlAmount" style="width: 180px ;margin-right: 50px" type='text' readonly="readonly" value="` + Number(amount).toFixed(2) + `" ></input>`;
} else {
var amountTmp = parseInt(goodsList[0].price).toFixed(2);
HtmlAmount += `<input id="htmlAmount" class="form-control" name="htmlAmount" style="width: 180px;margin-right: 50px" type="number" readonly="readonly" value="` + amountTmp + `"></input>`
HtmlAmount += `<input id="htmlAmount" class="form-control" name="htmlAmount" style="width: 180px;margin-right: 50px" type="number" readonly="readonly" value="` + Number(goodsList[0].price).toFixed(2) + `"></input>`
}
let htmlDel = "";
......@@ -470,7 +461,6 @@
${htmlDel}
</li>`;
$("#group").append(html);
initSelect2();
toTal();
......@@ -526,6 +516,9 @@
}
/**
* 需求清单确认提交
*/
function save() {
var arr = []
var obj = {}
......@@ -663,6 +656,9 @@
}
}
/**
* 付款二维码
*/
let qrcodeUrl = `$!{data.payUrl}`;
if (qrcodeUrl != null && qrcodeUrl != '') {
var qrcode = new QRCode("qrcodeDiv",
......
......@@ -238,17 +238,6 @@
readonly="readonly">
</div>
</div>
<!-- <div class="col-xs-2">-->
<!-- <div class="input-group date">-->
<!-- <div class="input-group-addon">-->
<!-- <i class="fa fa-calendar"></i>-->
<!-- </div>-->
<!-- <input type="text"-->
<!-- class="form-control pull-right datepicker"-->
<!-- name="orderEndTime" placeholder="订单结束时间"-->
<!-- readonly="readonly">-->
<!-- </div>-->
<!-- </div>-->
<div class="col-xs-4">
<button type="button" class="search btn btn-primary">搜索</button>
......@@ -530,8 +519,8 @@
"aTargets": [5],
"mData": "orderAmount",
"mRender": function (a, b, c, d) {
if (a != null && Number.isInteger(a)) {
return parseInt(a).toFixed(2);
if (a != null) {
return Number(a).toFixed(2);
} else {
return a;
}
......@@ -543,7 +532,7 @@
"mData": "totalAmount",
"mRender": function (a, b, c, d) {
if (a != null) {
return parseInt(a/100).toFixed(2);
return Number(a/100).toFixed(2);
}
return '';
}
......
......@@ -446,13 +446,7 @@ public class OrderServiceImpl extends GenericServiceImpl<Order> implements Order
SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
order.setCreateTimeStr(format.format(order.getCreateTime()));
//抬头类型为企业设置发票税号
String unitTax = null;
if (invoiceDto.getType().equals("1")) {
unitTax = invoiceDto.getUnitTaxNumber();
}
String str = invoiceUtil.startInvoice(order, order.getNickName(), invoiceDto.getEmail(), invoiceDto.getType(), "0", unitTax, invoiceDto.getInvoiceTitle());
String str = invoiceUtil.startInvoice(order, invoiceDto.getEmail(), invoiceDto.getType(), invoiceDto.getUnitTaxNumber(), invoiceDto.getInvoiceTitle());
JSONObject json = JSON.parseObject(str);
if (StringUtils.isNotBlank(json.getString("code")) && json.getString("code").equals("E0000")) {
//开票成功 添加一条开票记录
......@@ -468,9 +462,9 @@ public class OrderServiceImpl extends GenericServiceImpl<Order> implements Order
invoice.setNumber(codingruleUtils.getNumber(mpAccountsEntity.getId(), Invoice.class.getName()));
invoice.setInvoiceTitle(invoiceDto.getInvoiceTitle());
invoice.setInvoiceContent(invoiceDto.getInvoiceContent());
invoice.setInvoiceType("1");
invoice.setInvoiceType(invoiceDto.getType());
invoice.setInvoiceForm("0");
invoice.setClerkId(order.getMemberName());
invoice.setClerkId(order.getOpenid());
invoice.setOrderId(order.getNumber());
invoice.setPushMode("0");
invoice.setEmail(invoiceDto.getEmail());
......@@ -495,6 +489,7 @@ public class OrderServiceImpl extends GenericServiceImpl<Order> implements Order
e.printStackTrace();
jsonObject.put("errorNo", "1");
jsonObject.put("errorMsg", "程序异常");
return jsonObject;
}
return jsonObject;
}
......
......@@ -41,14 +41,12 @@ public class InvoiceUtil {
/**
* 开票接口
* @param orderObj
* @param clerk 开票员
* @param email 邮箱
* @param type 0:个人 1:企业
* @param from 0:移动端 1:后台
* @param unitTax 单位税号 移动端发票抬头为公司需要填写税号
* @return
*/
public String startInvoice(Order orderObj, String clerk, String email, String type, String from, String unitTax, String invoiceTitle){
public String startInvoice(Order orderObj, String email, String type, String unitTax, String invoiceTitle){
NNOpenSDK sdk = NNOpenSDK.getIntance();
// 授权企业税号
String taxNum = SystemConfig.p.getProperty("INVOICE_TAX");
......@@ -64,83 +62,78 @@ public class InvoiceUtil {
String senId = UUID.randomUUID().toString().replace("-", "");
JSONObject order = new JSONObject();
order.put("terminalNumber", "");//终端号(开票终端号,只能 为空或数字)
// 购方名称 必填
if(StringUtils.equals(type, "0")){
order.put("buyerName", "个人");
}else{
order.put("buyerName", invoiceTitle);
}
//购方税号(企业要填,个人可为空)
if (StringUtils.equals(type, "0")){
order.put("buyerTaxNum", "");
} else {
order.put("buyerTaxNum", unitTax);
}
//购方电话 非必传
order.put("buyerTel", StringUtils.isNoneBlank(orderObj.getMemberPhone()) ? "": //
orderObj.getMemberPhone().substring(0,3) + "****" + orderObj.getMemberPhone().substring(7, orderObj.getMemberPhone().length()));
//清单标志:非清单:0;清单:1,默认:0 非必传
order.put("listFlag", "0");
//推送方式:-1,不推送;0,邮箱;1,手机(默认);2,邮箱、手机 非必填
order.put("pushMode", "0");
//部门门店id(诺诺系统中的id) 非必填 9F7E9439CA8B4C60A2FFF3EA3290B088
order.put("departmentId", "");
//开票员id(诺诺系统中的id) 非必填
order.put("clerkId", "");
//备注 非必填
order.put("remark", "");
//复核人 非必填
order.put("checker", SystemConfig.p.getProperty("CHECKER"));
//收款人 非必填
order.put("payee", SystemConfig.p.getProperty("PAYEE"));
//购方地址 非必填
order.put("buyerAddress", StringUtils.isNoneBlank(orderObj.getAddressDes()) ? "": //
orderObj.getAddressDes().substring(0,3) + "****" + orderObj.getAddressDes().substring(7, orderObj.getMemberPhone().length()));
//购方税号(企业要填,个人可为空)
if (StringUtils.isNotBlank(unitTax)){
order.put("buyerTaxNum", unitTax);
} else {
order.put("buyerTaxNum", "");
}
//开票类型:1:蓝票;2:红票 必填
order.put("invoiceType", "1");
//发票种类:p,普通发票(电票)(默认);c,普通发票(纸票);s,专用发票;e,收购发票(电票);f,收购发票(纸质);r,普通发票(卷式) 非必填
order.put("invoiceLine", "p");
//推送邮箱(pushMode为0或2时,此项为必填) 必填
order.put("email", email);
//销方银行账号和开户行地址 非必填
order.put("salerAccount", SystemConfig.p.getProperty("KAIHUHANG_ADDRESS"));
orderObj.getAddressDes().substring(0,3) + "****" + orderObj.getAddressDes().substring(7, orderObj.getAddressDes().length()));
//购方银行账号及开户行地址 非必填
order.put("buyerAccount", "");
//销方税号(使用沙箱环境请求时消息体参数salerTaxNum和消息头参数userTax填写339901999999142)必填
order.put("salerTaxNum", SystemConfig.p.getProperty("INVOICE_TAX"));
//销方电话 必填
order.put("salerTel", SystemConfig.p.getProperty("SALER_TEL"));
//销方地址 必填
order.put("salerAddress", SystemConfig.p.getProperty("SALER_ADDRESS"));
//销方银行账号和开户行地址 非必填
order.put("salerAccount", SystemConfig.p.getProperty("KAIHUHANG_ADDRESS"));
//订单号 (每个企业唯一) 必填
order.put("orderNo", orderObj.getNumber());
// 开票完成回传发票信息地址 非必填
//order.put("callBackUrl", "http:127.0.0.1/invoice/callback/");
// 购方名称 必填
if(type.equals("0")){
order.put("buyerName", "个人");
}else{
order.put("buyerName", invoiceTitle);
}
// 订单时间 必填
order.put("invoiceDate", orderObj.getCreateTimeStr());
//冲红时填写的对应蓝票发票代码(红票必填,不满12位请左补0) 非必填
order.put("invoiceCode", "");
//冲红时填写的对应蓝票发票号码(红票必填,不满8位请左补0) 非必填
order.put("invoiceNum", "");
//销方地址 必填
order.put("salerAddress", SystemConfig.p.getProperty("SALER_ADDRESS"));
//部门门店id(诺诺系统中的id) 非必填 9F7E9439CA8B4C60A2FFF3EA3290B088
order.put("departmentId", "");
//开票员id(诺诺系统中的id) 非必填
order.put("clerkId", "");
//备注 非必填
order.put("remark", "");
//复核人 非必填
order.put("checker", SystemConfig.p.getProperty("CHECKER"));
//收款人 非必填
order.put("payee", SystemConfig.p.getProperty("PAYEE"));
//开票员 必填
if (from.equals("1")) {
order.put("clerk", SystemConfig.p.getProperty("CLERK"));
}else{
order.put("clerk", SystemConfig.p.getProperty("CLERK"));
}
//清单标志:非清单:0;清单:1,默认:0 非必传
order.put("listFlag", "0");
//清单项目名称:对应发票票面项目名称(listFlag为1时,必填,默认为“详见销货清单”) 非必填
order.put("listName", "详见销货清单");
//推送方式:-1,不推送; 0,邮箱; 1,手机(默认); 2,邮箱、手机 非必填
order.put("pushMode", "0");
//购方手机(pushMode为1或2时,此项为必填) 必填
order.put("buyerPhone", "");
//购方银行账号及开户行地址 非必填
order.put("buyerAccount", "");
//推送邮箱(pushMode为0或2时,此项为必填) 必填
order.put("email", email);
//开票类型:1:蓝票;2:红票 必填
order.put("invoiceType", "1");
//发票种类:p,普通发票(电票)(默认);c,普通发票(纸票);s,专用发票;e,收购发票(电票);f,收购发票(纸质);r,普通发票(卷式) 非必填
order.put("invoiceLine", "p");
//成品油标志:非成品油(默认):0;成品油:1 非必填
//order.put("productOilFlag","0");
//代开标志:0非代开; 1代开。 代开蓝票时备注要求填写文案:代开企业税号:***,代开企业名称:***;代开红票时备注要求填写文案:对应正数发票代码:***号码:***代开企业税号:***代开企业名称:*** 非必填
order.put("proxyInvoiceFlag", "0");
// 开票完成回传发票信息地址 非必填
//order.put("callBackUrl", "http:127.0.0.1/invoice/callback/");
//分机号(只能为空或者数字) 非必填
order.put("extensionNumber", "");
//销方税号(使用沙箱环境请求时消息体参数salerTaxNum和消息头参数userTax填写339901999999142) 必填
order.put("salerTaxNum", SystemConfig.p.getProperty("INVOICE_TAX"));
//清单项目名称:对应发票票面项目名称(listFlag为1时,必填,默认为“详见销货清单”) 非必填
order.put("listName", "详见销货清单");
//代开标志:0非代开;1代开。代开蓝票时备注要求填写文案:代开企业税号:***,代开企业名称:***;代开红票时备注要求填写文案:对应正数发票代码:***号码:***代开企业税号:***代开企业名称:*** 非必填
order.put("proxyInvoiceFlag", "0");
//终端号(开票终端号,只能 为空或数字)
order.put("terminalNumber", "");
/* --------------------------------------------------商品详情-----------------------------------------------------**/
Conds goodsDetail = new Conds();
......@@ -157,9 +150,6 @@ public class InvoiceUtil {
detail.put("goodsCode", obj.getInvoiceCode());
//自行编码(可不填) 非必填
detail.put("selfCode", "");
//税率,注:纸票清单红票存在为null的情况 必填
detail.put("taxRate", "0.13");
//单价含税标志:0:不含税,1:含税 必填
detail.put("withTaxFlag", "1");
//单价,当单价(price)为空时,数量(num)也必须为空;(price)为空时,含税金额(taxIncludedAmount)、不含税金额(taxExcludedAmount)、税额(tax)都不能为空
......@@ -170,29 +160,27 @@ public class InvoiceUtil {
detail.put("unit", obj.getUnit());
//规格型号 非必填
detail.put("specType", obj.getFormat());
// 发票行性质:0,正常行;1,折扣行;2,被折扣行 非必填
//税额,[不含税金额] * [税率] = [税额];税额允许误差为 0.06。红票为负。不含税金额、税额、含税金额任何一个不传时,会根据传入的单价,数量进行计算,可能和实际数值存在误差,建议都传入 非必填
detail.put("tax", "");
//税率,注:纸票清单红票存在为null的情况 必填
detail.put("taxRate", "0.13");
//不含税金额。红票为负。不含税金额、税额、含税金额任何一个不传时,会根据传入的单价,数量进行计算,可能和实际数值存在误差,建议都传入 非毕传
detail.put("taxExcludedAmount", "");
//含税金额,[不含税金额] + [税额] = [含税金额],红票为负。不含税金额、税额、含税金额任何一个不传时,会根据传入的单价,数量进行计算,可能和实际数值存在误差,建议都传入 非必填
detail.put("taxIncludedAmount", "");
//发票行性质:0,正常行;1,折扣行;2,被折扣行 非必填
detail.put("invoiceLineProperty", "0");
//优惠政策标识:0,不使用;1,使用 非必填
detail.put("favouredPolicyFlag", "0");
// 增值税特殊管理(优惠政策名称),当favouredPolicyFlag为1时,此项必填
//增值税特殊管理(优惠政策名称),当favouredPolicyFlag为1时,此项必填
detail.put("favouredPolicyName", "");
//扣除额,差额征收时填写,目前只支持填写一项。 注意:当传0、空或字段不传时,都表示非差额征税;传0.00才表示差额征税:0.00 非必填
detail.put("deduction", "0");
//零税率标识 非必填
detail.put("zeroRateFlag", "");
//税额,[不含税金额] * [税率] = [税额];税额允许误差为 0.06。红票为负。不含税金额、税额、含税金额任何一个不传时,会根据传入的单价,数量进行计算,可能和实际数值存在误差,建议都传入 非必填
detail.put("tax", "");
// 不含税金额。红票为负。不含税金额、税额、含税金额任何一个不传时,会根据传入的单价,数量进行计算,可能和实际数值存在误差,建议都传入 非毕传
detail.put("taxExcludedAmount", "");
//含税金额,[不含税金额] + [税额] = [含税金额],红票为负。不含税金额、税额、含税金额任何一个不传时,会根据传入的单价,数量进行计算,可能和实际数值存在误差,建议都传入 非必填
detail.put("taxIncludedAmount", "");
detailArray.add(detail);
}
order.put("invoiceDetail", detailArray);
JSONObject total = new JSONObject();
......
......@@ -187,6 +187,13 @@ public class OrderController {
String jsonArray = JSON.toJSONString(fromVO, DOUBLE_JSON_FILTER, SerializerFeature.WriteMapNullValue);
model.addAttribute("data", jsonObject);
model.addAttribute("list", jsonArray);
Conds conds = new Conds();
conds.equal("t.del_flag", Constants.DEL_FLAG_0);
conds.equal("t.order_id", id);
List<OrderSplitBatchDto> orderSplitBatchDtos = orderDetailsService.fetchSearchByBatchDrug(conds, null, 0, 0);
String OrderSplitBatchArr = JSON.toJSONString(orderSplitBatchDtos, DOUBLE_JSON_FILTER, SerializerFeature.WriteMapNullValue);
model.addAttribute("orderSplitBatchDtos", OrderSplitBatchArr);
}
model.addAttribute("pageType", StringUtils.equals(pageType, "View") ? true : false);
return "order/orderSendOut";
......@@ -349,7 +356,7 @@ public class OrderController {
SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
order.setCreateTimeStr(format.format(order.getCreateTime()));
String str = invoiceUtil.startInvoice(order, String.valueOf(userid), email, "0", "1", null, null);
String str = invoiceUtil.startInvoice(order, email, "0", null, null);
JSONObject json = JSON.parseObject(str);
if (StringUtils.isNotBlank(json.getString("code")) && json.getString("code").equals("E0000")) {
//开票成功 添加一条开票记录
......@@ -358,19 +365,19 @@ public class OrderController {
Invoice invoice = new Invoice();
//发票抬头
invoice.setNumber(codingruleUtils.getNumber(accountsId, Invoice.class.getName()));
invoice.setInvoiceTitle(order.getNickName());
invoice.setInvoiceTitle("个人");
invoice.setInvoiceContent("商品费用");
invoice.setInvoiceType("1");
invoice.setInvoiceType("0");
invoice.setInvoiceForm("1");
invoice.setClerkId(SystemConfig.p.getProperty("CLERK"));
invoice.setOrderId(order.getNickName());
invoice.setClerkId(String.valueOf(UserUtils.getUser().getUsername()));
invoice.setOrderId(String.valueOf(order.getNumber()));
invoice.setPushMode("0");
invoice.setEmail(email);
invoice.setInvoiceSerialNum(invoiceSerialNum);
invoice.setAccountsId(accountsId);
invoice.setOpenId(order.getOpenid());
String userName = userService.fetchAuthById(userid).getWxUserName();
invoice.setOperator(StringUtils.isEmpty(userName) ? "" : userName);
invoice.setOperator(StringUtils.isEmpty(userName) ? "admin" : userName);
invoiceService.save(invoice);
//更新是否开票状态
......
......@@ -100,8 +100,8 @@
<div id="printContent" style="display:none;">
<div class="invoice">
<div class="header">
<div class="describe">诺康大药房咨询平台</div>
<!-- <div class="describe">***一切为了百姓***</div>-->
<div style="font-size: 16px; margin-left: 48px;">诺康大药房咨询平台</div>
<div class="describe">&nbsp;&nbsp;&nbsp;</div>
<div class="orderNumber">订单号 <span>$!{printData.orderCode}</span></div>
<div class="deliverydate">发货日期 <span>$!date.format('yyyy-MM-dd HH:mm:ss', $!printData.printDate)</span></div>
<div class="splitline"></div>
......@@ -265,7 +265,7 @@
}
var retrieveData = function (sSource, aoData, fnCallback) {
$("#seachTableForm input").each(function () {
$("#seachTableForm input,select ").each(function () {
var params = {
name: $(this).attr("name"),
value: $(this).val()
......
......@@ -88,8 +88,10 @@ public class Waybill implements Serializable {
/* 删除标识 */
private boolean delFlag;
/* 状态 */
@ExportConfig(value = "打印状态", width = 100, showLevel = 1)
private String status;
/* 创建时间 */
@ExportConfig(value = "物流创建时间", width = 120, showLevel = 1, dateFormat = "yyyy-MM-dd HH:mm")
private Date createTime;
/* 更新时间 */
private Date updateTime;
......
......@@ -231,7 +231,11 @@ public class WaybillController {
str.replace(3, 7, "****");
item.setMobile(str.toString());
}
if (StringUtils.equals(item.getStatus(), "0")) {
item.setStatus("未打印");
} else if (StringUtils.equals(item.getStatus(), "1")) {
item.setStatus("已打印");
}
});
ExcelKit.$Export(Waybill.class, response).toExcel(list, "顺丰物流单信息");
}
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment