Browse Source

优化完善销售单

master
fanzongzhe 9 months ago
parent
commit
338251355a
  1. 70
      yxt-as/src/main/java/com/yxt/anrui/as/biz/asbusrepairbill/AsBusrepairBillService.java
  2. 5
      yxt-as/src/main/resources/application-pro.yml
  3. 2079
      yxt-as/src/main/resources/ftl/baoneilingliao.ftl
  4. 2056
      yxt-as/src/main/resources/ftl/baowailingliao.ftl
  5. 6
      yxt-sms-biz/src/main/java/com/yxt/sms/apiadmin/SmsSalesBillRest.java
  6. 25
      yxt-sms-biz/src/main/java/com/yxt/sms/biz/smssalesbill/PrintPdfDetailsPdfVo.java
  7. 16
      yxt-sms-biz/src/main/java/com/yxt/sms/biz/smssalesbill/PrintPdfQuery.java
  8. 32
      yxt-sms-biz/src/main/java/com/yxt/sms/biz/smssalesbill/PrintPdfVo.java
  9. 28
      yxt-sms-biz/src/main/java/com/yxt/sms/biz/smssalesbill/SalesGoodsVo.java
  10. 3
      yxt-sms-biz/src/main/java/com/yxt/sms/biz/smssalesbill/SalesInvoiceVo.java
  11. 2
      yxt-sms-biz/src/main/java/com/yxt/sms/biz/smssalesbill/SmsAttachitemVo.java
  12. 38
      yxt-sms-biz/src/main/java/com/yxt/sms/biz/smssalesbill/SmsSalesBillMapper.xml
  13. 204
      yxt-sms-biz/src/main/java/com/yxt/sms/biz/smssalesbill/SmsSalesBillService.java
  14. 39
      yxt-sms-biz/src/main/java/com/yxt/sms/biz/smssalesbill/SmsWmsInventorySalesVo.java
  15. 3
      yxt-sms-biz/src/main/java/com/yxt/sms/biz/smssalesbillaitem/SmsSalesBillAitem.java
  16. 24
      yxt-sms-biz/src/main/java/com/yxt/sms/biz/smssalesbilldetail/SmsSalesBillDetail.java
  17. 6
      yxt-sms-biz/src/main/java/com/yxt/sms/biz/smssalesbillinvoice/SmsSalesBillInvoice.java
  18. 4
      yxt-sms-biz/src/main/resources/application-pro.yml
  19. 2014
      yxt-sms-biz/src/main/resources/ftl/xiaoshoudan.ftl
  20. 8
      yxt-sms-biz/src/main/resources/ftl/配件销售单.doc

70
yxt-as/src/main/java/com/yxt/anrui/as/biz/asbusrepairbill/AsBusrepairBillService.java

@ -2120,7 +2120,6 @@ public class AsBusrepairBillService extends MybatisBaseService<AsBusrepairBillMa
if (StringUtils.isNotBlank(goodsDetailsVo.getWarehouseName())) {
goodsPdfVo.setHouseInfo(goodsDetailsVo.getWarehouseName());
}
goodsPdfVo.setPrice(String.valueOf(price.intValue()));
goodsPdfVo.setCurrentCount(String.valueOf(count.intValue()));
BigDecimal amount = price.multiply(count);
goodsPdfVos.add(goodsPdfVo);
@ -2131,13 +2130,76 @@ public class AsBusrepairBillService extends MybatisBaseService<AsBusrepairBillMa
String caps2 = bigDecimalToLocalStr(sumMoney2);
vo.setCaps(caps2);
vo.setUserName(userName);
String path = createPrintInventoryPdf(vo, type, subject);
vo.setNowDate(DateUtil.formatDate(new Date()));
String path = createPrintInventoryPdf(vo,subject);
filePath = path;
}
return rb.success().setData(filePath);
}
private String createPrintInventoryPdf(RepairBillPdfVo vo, String type, String subject) {
return null;
private String createPrintInventoryPdf(RepairBillPdfVo vo,String subject) {
String finalPath = "";
Map<String, Object> dataMap = new HashMap();
List<Map<String, Object>> list = new ArrayList<>();
dataMap.put("company", vo.getCompany());
dataMap.put("dept", vo.getDept());
dataMap.put("customer", vo.getCustomer());
dataMap.put("billNo", vo.getBillNo());
dataMap.put("vinNo", vo.getVinNo());
dataMap.put("vehMark", vo.getVehMark());
dataMap.put("isKp", vo.getIsKp());
dataMap.put("caps", vo.getCaps());
dataMap.put("amountTotal", vo.getAmountTotal());
dataMap.put("userName", vo.getUserName());
dataMap.put("nowDate", vo.getNowDate());
List<RepairBillDetailsPdfVo> goods = vo.getGoods();
if (!goods.isEmpty()) {
for (RepairBillDetailsPdfVo good : goods) {
Map<String, Object> map = new HashMap<>();
map.put("sortNo", good.getSortNo());
map.put("goodsSpuName", good.getGoodsSpuName());
map.put("goodsSkuCode", good.getGoodsSkuCode());
map.put("goodsSkuOwnSpec", good.getGoodsSkuOwnSpec());
map.put("unit", good.getUnit());
map.put("currentCount", good.getCurrentCount());
map.put("price", good.getPrice());
map.put("amount", good.getAmount());
map.put("receivedTime", good.getReceivedTime());
map.put("remarks", good.getRemarks());
map.put("operName", good.getOperName());
list.add(map);
}
}
dataMap.put("list", list);
String temp = "/template/";
String targetPath = docPdfComponent.getUploadTemplateUrl();
String ftl = "";
if (subject.equals("保内")) {
ftl = "ftl/baoneilingliao.ftl";
} else if (subject.equals("保外")) {
ftl = "ftl/baowailingliao.ftl";
}
try {
//获取模板
InputStream inputStream = this.getClass().getClassLoader().getResourceAsStream(ftl);
//生成word文件名
String dateStr = DateUtil.format(new Date(), "yyyyMMdd");
long seconds = System.currentTimeMillis();
String typeName = dateStr + seconds + ".doc";
File file = new File(targetPath + "templateSettle" + seconds + ".ftl");
File dir = new File(targetPath);
WordConvertUtils.inputStreamToFile(inputStream, file);
WordConvertUtils.creatWord1(dataMap, file, targetPath, typeName, dir);
//新生成的word路径
String wordPath = targetPath + typeName;
String pdfName = "领料单" + dateStr + seconds + ".pdf";
WordConvertUtils.doc2pdf(wordPath, targetPath, pdfName);
finalPath = temp + pdfName;
} catch (NoClassDefFoundError e) {
e.printStackTrace();
finalPath = targetPath;
}
return finalPath;
}
}

5
yxt-as/src/main/resources/application-pro.yml

@ -26,3 +26,8 @@ image:
path: D:\anrui\upload\
url:
prefix: http://120.46.172.184/api/upload/
templateUrl:
uploadUrl: D:\anrui\upload\template\
prefixUrl: http://120.46.172.184/api/upload/template/

2079
yxt-as/src/main/resources/ftl/baoneilingliao.ftl

File diff suppressed because one or more lines are too long

2056
yxt-as/src/main/resources/ftl/baowailingliao.ftl

File diff suppressed because one or more lines are too long

6
yxt-sms-biz/src/main/java/com/yxt/sms/apiadmin/SmsSalesBillRest.java

@ -143,6 +143,12 @@ public class SmsSalesBillRest {
}
@ApiOperation("打印配件销售单")
@PostMapping("/printSmsBill")
public ResultBean<String> printSmsBill(@RequestBody PrintPdfQuery query) {
return smsSalesBillService.printSmsBill(query);
}
@ApiOperation("根据sid批量删除")
@DeleteMapping("/delBySids")
public ResultBean delBySids(@RequestBody String[] sids) {

25
yxt-sms-biz/src/main/java/com/yxt/sms/biz/smssalesbill/PrintPdfDetailsPdfVo.java

@ -0,0 +1,25 @@
package com.yxt.sms.biz.smssalesbill;
import lombok.Data;
/**
* @author Fan
* @description
* @date 2024/8/5 17:28
*/
@Data
public class PrintPdfDetailsPdfVo {
private String sortNo; //序号
private String goodsSpuName; //商品名称
private String goodsSkuCode; //图号
private String goodsSkuOwnSpec; //规格
private String unit; //单位
private String count; //数量
private String price; //单价
private String amount; //销售金额
private String remarks; //备注
private String discountAmount; //优惠
private String discount; //折扣
}

16
yxt-sms-biz/src/main/java/com/yxt/sms/biz/smssalesbill/PrintPdfQuery.java

@ -0,0 +1,16 @@
package com.yxt.sms.biz.smssalesbill;
import lombok.Data;
/**
* @author Fan
* @description
* @date 2024/8/1 10:09
*/
@Data
public class PrintPdfQuery {
private String sid;
private String useOrgSid; //部门sid
private String createOrgSid; //分公司sid
private String userSid; //登录用户sid
}

32
yxt-sms-biz/src/main/java/com/yxt/sms/biz/smssalesbill/PrintPdfVo.java

@ -0,0 +1,32 @@
package com.yxt.sms.biz.smssalesbill;
import lombok.Data;
import java.util.ArrayList;
import java.util.List;
/**
* @author Fan
* @description
* @date 2024/8/5 17:24
*/
@Data
public class PrintPdfVo {
private String company; //分公司
private String dept; //部门
private String billNo; //单据编号
private String mobile; //联系电话
private String customer; //客户名称
private String vinNo; //车架号
private String vehMark; //车牌号
private String isKp; //是否开票
private String nowDate; //打印日期
private String caps; //维修用料合计大写
private String amountTotal; //维修用料合计
private List<PrintPdfDetailsPdfVo> goods = new ArrayList<>();
private String userName; //经办人
}

28
yxt-sms-biz/src/main/java/com/yxt/sms/biz/smssalesbill/SalesGoodsVo.java

@ -22,14 +22,8 @@ public class SalesGoodsVo {
private String goodsSpuName;
//商品编码(图号)
private String goodsSkuCode;
//规格型号
private String goodsSkuOwnSpec;
@ApiModelProperty("计量单位")
private String unit;
@ApiModelProperty("仓库名称")
private String warehouseName;
//库位编号
private String warehouseRackCode;
@ApiModelProperty("出/退库数量")
private String count;
@ApiModelProperty("销售价(元)")
@ -50,4 +44,26 @@ public class SalesGoodsVo {
@ApiModelProperty("商品ID")
private String goodsID; // 商品ID
//规格型号
private String goodsSkuOwnSpec;
//仓库Sid
private String warehouseSid;
//仓库
private String warehouseName;
//库区sid
private String areaSid;
//库区
private String areaName;
//库位sid
private String warehouseRackSid;
//库位编码
private String warehouseRackCode;
//供应商sid
private String billObjSid;
//供应商
private String billObjName;
//销售价常量
private String goodsDetailsPrice;
//是否含税(0含税,1不含税)
private String isTaxRate;
}

3
yxt-sms-biz/src/main/java/com/yxt/sms/biz/smssalesbill/SalesInvoiceVo.java

@ -26,6 +26,7 @@ public class SalesInvoiceVo {
private String invoiceCode; // 发票号码
@ApiModelProperty("税率")
private String taxRate; // 税率
@ApiModelProperty("开票单位sid")
private String invoiceTitleSid; // 开票单位sid
}

2
yxt-sms-biz/src/main/java/com/yxt/sms/biz/smssalesbill/SmsAttachitemVo.java

@ -18,5 +18,7 @@ public class SmsAttachitemVo {
private String price;
@ApiModelProperty("备注")
private String remarks;
@ApiModelProperty("销售价常量")
private String aitemPrice;
}

38
yxt-sms-biz/src/main/java/com/yxt/sms/biz/smssalesbill/SmsSalesBillMapper.xml

@ -101,23 +101,29 @@
</select>
<select id="listPageSalesGoods" resultType="com.yxt.sms.biz.smssalesbill.SmsWmsInventorySalesVo">
SELECT
*
i.sid inventorySid,
s.price,
i.goodSpuSid,
i.goodsSkuSid,
i.goodsSpuName,
i.goodsSkuCode,
i.goodsSkuOwnSpec,
i.unit,
i.count as currentCount,
i.goodsID,
s.supplierName as billObjName,
s.supplierSid as billObjSid,
i.warehouseSid,
i.warehouseName,
wa.sid as areaSid,
wa.areaName,
i.warehouseRackSid,
i.warehouseRackCode,
IF( IFNULL(i.taxRate,0) > 0, '0', '1' ) AS isTaxRate
FROM
(
SELECT
a.*,
(
SELECT
IFNULL( SUM( wi.count ), 0 )
FROM
yxt_wms.wms_inventory AS wi
WHERE
wi.goodsID = a.goodsID
AND wi.useOrgSid = a.useOrgSid
) AS currentCount
FROM
sms_goods AS a
) AS s
sms_goods AS s
LEFT JOIN yxt_wms.wms_inventory as i ON s.goodsID = i.goodsID
LEFT JOIN yxt_wms.wms_warehouse_area as wa ON wa.warehouseSid = i.warehouseSid
<where>${ew.sqlSegment}</where>
</select>
<select id="selectBySid" resultType="java.lang.Integer">

204
yxt-sms-biz/src/main/java/com/yxt/sms/biz/smssalesbill/SmsSalesBillService.java

@ -29,6 +29,8 @@ import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.date.DateUtil;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.yxt.common.base.config.component.DocPdfComponent;
import com.yxt.common.base.utils.WordConvertUtils;
import com.yxt.sms.biz.smsgoods.SmsGoods;
import com.yxt.sms.biz.smsgoods.SmsGoodsService;
import com.yxt.sms.biz.smssalesbill.report.*;
@ -46,6 +48,7 @@ import com.yxt.sms.feign.portal.sysorganization.SysOrganizationFeign;
import com.yxt.sms.feign.portal.sysorganization.SysOrganizationVo;
import com.yxt.sms.feign.privilege.PrivilegeQuery;
import com.yxt.sms.feign.sysuser.SysUserFeign;
import com.yxt.sms.feign.sysuser.SysUserVo;
import com.yxt.sms.feign.wms.wmsinventory.*;
import com.yxt.sms.feign.wms.wmsinventoryrecord.WmsInventoryRecordDto;
import com.yxt.sms.feign.wms.wmsinventoryrecord.WmsInventoryRecordFeign;
@ -64,6 +67,8 @@ import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import javax.annotation.Resource;
import java.io.File;
import java.io.InputStream;
import java.math.BigDecimal;
import java.util.*;
@ -103,7 +108,8 @@ public class SmsSalesBillService extends MybatisBaseService<SmsSalesBillMapper,
private SysUserFeign sysUserFeign;
@Autowired
private SysOrganizationFeign sysOrganizationFeign;
@Autowired
private DocPdfComponent docPdfComponent;
private QueryWrapper<SmsSalesBill> createQueryWrapper(SmsSalesBillQuery query) {
// todo: 这里根据具体业务调整查询条件
// 多字段Like示例:qw.and(wrapper -> wrapper.like("name", query.getName()).or().like("remark", query.getName()));
@ -319,12 +325,12 @@ public class SmsSalesBillService extends MybatisBaseService<SmsSalesBillMapper,
for (SmsSalesBillDetail smsSalesBillDetail : billDetailList) {
SalesGoodsVo salesGoodsVo = new SalesGoodsVo();
BeanUtil.copyProperties(smsSalesBillDetail, salesGoodsVo);
SmsGoods goods = smsGoodsService.fetchEntityByGoodsID(smsSalesBillDetail.getGoodsID());
if (null != goods) {
if (StringUtils.isNotBlank(goods.getSupplierName())) {
salesGoodsVo.setSupplierName(goods.getSupplierName());
}
}
// SmsGoods goods = smsGoodsService.fetchEntityByGoodsID(smsSalesBillDetail.getGoodsID());
// if (null != goods) {
// if (StringUtils.isNotBlank(goods.getSupplierName())) {
// salesGoodsVo.setSupplierName(goods.getSupplierName());
// }
// }
goodsVos.add(salesGoodsVo);
}
vo.setGoodsVos(goodsVos);
@ -352,6 +358,9 @@ public class SmsSalesBillService extends MybatisBaseService<SmsSalesBillMapper,
if (null != aitem.getPrice()) {
aitemVo.setPrice(aitem.getPrice().toString());
}
if (null != aitem.getAitemPrice()) {
aitemVo.setAitemPrice(aitem.getAitemPrice().toString());
}
aitemVos.add(aitemVo);
}
vo.setAitemVos(aitemVos);
@ -380,12 +389,12 @@ public class SmsSalesBillService extends MybatisBaseService<SmsSalesBillMapper,
SmsWmsInventorySalesQuery query = pq.getParams();
QueryWrapper<SmsGoods> qw = new QueryWrapper<>();
if (StringUtils.isNotBlank(query.getGoodsName())) {
qw.like("s.goodsSpuName", query.getGoodsName());
qw.and(wrapper -> wrapper.like("i.goodsSpuName", query.getGoodsName()).or().like("i.goodsSkuCode", query.getGoodsName()));
}
if (StringUtils.isNotBlank(query.getUseOrgSid())) {
qw.like("s.useOrgSid", query.getUseOrgSid());
qw.eq("s.useOrgSid", query.getUseOrgSid());
}
qw.apply("s.currentCount > 0");
qw.apply("i.count > 0");
IPage<SmsSalesBill> page = PagerUtil.queryToPage(pq);
IPage<SmsWmsInventorySalesVo> pagging = baseMapper.listPageSalesGoods(page, qw);
PagerVo<SmsWmsInventorySalesVo> p = PagerUtil.pageToVo(pagging, null);
@ -612,4 +621,179 @@ public class SmsSalesBillService extends MybatisBaseService<SmsSalesBillMapper,
PagerVo<SmsBillListReturnGoodsVo> p = PagerUtil.pageToVo(pagging, null);
return p;
}
public ResultBean<String> printSmsBill(PrintPdfQuery query) {
ResultBean rb = ResultBean.fireFail();
PrintPdfVo vo = new PrintPdfVo();
String filePath = "";
String company = "";
String dept = "";
String userName = "";
String sid = query.getSid(); //单据sid
BigDecimal sumMoney2 = BigDecimal.ZERO; //维修项目合计
String subject = "";
SysOrganizationVo u = sysOrganizationFeign.fetchBySid(query.getUseOrgSid()).getData();
if (null != u) {
dept = u.getName();
}
SysOrganizationVo c = sysOrganizationFeign.fetchBySid(query.getCreateOrgSid()).getData();
if (null != c) {
company = c.getName();
}
SysUserVo userVo = sysUserFeign.fetchBySid(query.getUserSid()).getData();
if (null != userVo) {
userName = userVo.getName();
}
vo.setCompany(company);
vo.setDept(dept);
vo.setUserName(userName);
SmsSalesBill detailsVo = fetchBySid(sid);
if (null != detailsVo) {
if (StringUtils.isNotBlank(detailsVo.getCustomerName())) {
vo.setCustomer(detailsVo.getCustomerName());
}
if (StringUtils.isNotBlank(detailsVo.getBillNo())) {
vo.setBillNo(detailsVo.getBillNo());
}
if (StringUtils.isNotBlank(detailsVo.getMobile())) {
vo.setMobile(detailsVo.getMobile());
}
if (StringUtils.isNotBlank(detailsVo.getVehMark())) {
vo.setVehMark(detailsVo.getVehMark());
}
if (StringUtils.isNotBlank(detailsVo.getVinNo())) {
vo.setVinNo(detailsVo.getVinNo());
}
SmsSalesBillInvoice invoiceVo = smsSalesBillInvoiceService.fetchByMainSid(sid);
if (null != invoiceVo) {
if (null != invoiceVo.getIsInvoicing()) {
if (invoiceVo.getIsInvoicing().intValue() == 1) {
vo.setIsKp("是");
} else {
vo.setIsKp("否");
}
} else {
vo.setIsKp("否");
}
} else {
vo.setIsKp("否");
}
List<SmsSalesBillDetail> detailsVos = smsSalesBillDetailService.fetchByMainSid(sid);
if (!detailsVos.isEmpty()) {
List<PrintPdfDetailsPdfVo> goodsPdfVos = new ArrayList<>();
for (int i = 0; i < detailsVos.size(); i++) {
SmsSalesBillDetail goodsDetailsVo = detailsVos.get(i);
PrintPdfDetailsPdfVo goodsPdfVo = new PrintPdfDetailsPdfVo();
BeanUtil.copyProperties(goodsDetailsVo, goodsPdfVo);
goodsPdfVo.setSortNo(String.valueOf(i + 1));
BigDecimal price = BigDecimal.ZERO;
BigDecimal count = BigDecimal.ZERO;
if (null != goodsDetailsVo.getPrice()) {
price = goodsDetailsVo.getPrice();
}
if (null != goodsDetailsVo.getCount()) {
count = goodsDetailsVo.getCount();
}
BigDecimal amount = price.multiply(count);
goodsPdfVos.add(goodsPdfVo);
sumMoney2.add(amount);
}
}
vo.setAmountTotal(sumMoney2.toString());
String caps2 = bigDecimalToLocalStr(sumMoney2);
vo.setCaps(caps2);
vo.setUserName(userName);
vo.setNowDate(DateUtil.formatDate(new Date()));
String path = createPrintSmsPdf(vo);
filePath = path;
}
return rb.success().setData(filePath);
}
private String createPrintSmsPdf(PrintPdfVo vo) {
String finalPath = "";
Map<String, Object> dataMap = new HashMap();
List<Map<String, Object>> list = new ArrayList<>();
dataMap.put("company", vo.getCompany());
dataMap.put("dept", vo.getDept());
dataMap.put("customer", vo.getCustomer());
dataMap.put("billNo", vo.getBillNo());
dataMap.put("vinNo", vo.getVinNo());
dataMap.put("mobile", vo.getMobile());
dataMap.put("vehMark", vo.getVehMark());
dataMap.put("isKp", vo.getIsKp());
dataMap.put("caps", vo.getCaps());
dataMap.put("amountTotal", vo.getAmountTotal());
dataMap.put("userName", vo.getUserName());
dataMap.put("nowDate", vo.getNowDate());
List<PrintPdfDetailsPdfVo> goods = vo.getGoods();
if (!goods.isEmpty()) {
for (PrintPdfDetailsPdfVo good : goods) {
Map<String, Object> map = new HashMap<>();
map.put("sortNo", good.getSortNo());
map.put("goodsSpuName", good.getGoodsSpuName());
map.put("goodsSkuCode", good.getGoodsSkuCode());
map.put("goodsSkuOwnSpec", good.getGoodsSkuOwnSpec());
map.put("unit", good.getUnit());
map.put("count", good.getCount());
map.put("price", good.getPrice());
map.put("amount", good.getAmount());
map.put("discountAmount", good.getDiscountAmount());
map.put("discount", good.getDiscount());
map.put("remarks", good.getRemarks());
list.add(map);
}
}
dataMap.put("list", list);
String temp = "/template/";
String targetPath = docPdfComponent.getUploadTemplateUrl();
String ftl = "ftl/xiaoshoudan.ftl";
try {
//获取模板
InputStream inputStream = this.getClass().getClassLoader().getResourceAsStream(ftl);
//生成word文件名
String dateStr = DateUtil.format(new Date(), "yyyyMMdd");
long seconds = System.currentTimeMillis();
String typeName = dateStr + seconds + ".doc";
File file = new File(targetPath + "templateSettle" + seconds + ".ftl");
File dir = new File(targetPath);
WordConvertUtils.inputStreamToFile(inputStream, file);
WordConvertUtils.creatWord1(dataMap, file, targetPath, typeName, dir);
//新生成的word路径
String wordPath = targetPath + typeName;
String pdfName = "配件销售单" + dateStr + seconds + ".pdf";
WordConvertUtils.doc2pdf(wordPath, targetPath, pdfName);
finalPath = temp + pdfName;
} catch (NoClassDefFoundError e) {
e.printStackTrace();
finalPath = targetPath;
}
return finalPath;
}
public static String bigDecimalToLocalStr(BigDecimal bigDecimal) {
String[] chinese = new String[]{"", "拾", "佰", "仟", "万", "拾", "佰", "仟", "亿", "拾", "佰", "仟", "万"};
String[] numChinese = new String[]{"零", "壹", "贰", "叁", "肆", "伍", "陆", "柒", "捌", "玖"};
String[] afterChinese = new String[]{"角", "分"};
String str = String.valueOf(bigDecimal);
String[] arr = str.split("\\.");
char[] chars = arr[0].toCharArray();
StringBuffer sb = new StringBuffer();
for (int i = 0; i < chars.length; ++i) {
sb.append(numChinese[Integer.valueOf(String.valueOf(chars[i])).intValue()]).append(chinese[chars.length - i - 1]);
}
if (arr.length == 1) {
return sb.toString() + "元整";
} else if (arr[1].length() > 2) {
throw new IllegalArgumentException("人民币大写转换BigDecimal只能保留2位小数");
} else {
sb.append("元");
char[] chars1 = arr[1].toCharArray();
for (int i = 0; i < chars1.length; ++i) {
sb.append(numChinese[Integer.valueOf(String.valueOf(chars1[i])).intValue()]).append(afterChinese[i]);
}
return sb.toString();
}
}
}

39
yxt-sms-biz/src/main/java/com/yxt/sms/biz/smssalesbill/SmsWmsInventorySalesVo.java

@ -40,8 +40,43 @@ public class SmsWmsInventorySalesVo implements Vo {
private String discountAmount;
//金额(销售价-优惠金额)
private String amount;
@ApiModelProperty("备注")
private String remarks;
// @ApiModelProperty("备注")
// private String remarks;
/**
* 库区
*/
private String areaName;
private String areaSid;
/**
* 供应商
*/
private String billObjName;
private String billObjSid;
/**
* 商品Sku名称
*/
private String goodsSkuTitle;
/**
* 商品库存sid
*/
private String inventorySid;
/**
* 是否含税0含税1不含税
*/
private String isTaxRate;
/**
* 仓库名称
*/
private String warehouseName;
/**
* 库位
*/
private String warehouseRackCode;
private String warehouseRackSid;
/**
* 仓库sid
*/
private String warehouseSid;
}

3
yxt-sms-biz/src/main/java/com/yxt/sms/biz/smssalesbillaitem/SmsSalesBillAitem.java

@ -25,5 +25,6 @@ public class SmsSalesBillAitem extends BaseEntity {
private String attachItem;
@ApiModelProperty("销售价")
private BigDecimal price;
@ApiModelProperty("销售价常量")
private BigDecimal aitemPrice;
}

24
yxt-sms-biz/src/main/java/com/yxt/sms/biz/smssalesbilldetail/SmsSalesBillDetail.java

@ -84,4 +84,28 @@ public class SmsSalesBillDetail extends BaseEntity {
private BigDecimal outboundCount; // 已出库数量(仓储中具体出库数量)
//规格型号
private String goodsSkuOwnSpec;
//仓库Sid
private String warehouseSid;
//仓库
private String warehouseName;
//库区sid
private String areaSid;
//库区
private String areaName;
//库位sid
private String warehouseRackSid;
//库位编码
private String warehouseRackCode;
//供应商sid
private String billObjSid;
//供应商
private String billObjName;
//销售价常量
private BigDecimal goodsDetailsPrice;
//是否含税(0含税,1不含税)
private Integer isTaxRate;
}

6
yxt-sms-biz/src/main/java/com/yxt/sms/biz/smssalesbillinvoice/SmsSalesBillInvoice.java

@ -59,8 +59,10 @@ public class SmsSalesBillInvoice extends BaseEntity {
@ApiModelProperty("发票类型")
private String invoiceType; // 发票类型
private String invoiceTypeKey; // 发票类型Key
@ApiModelProperty("开票名称")
private String invoiceTitle; // 开票名称
@ApiModelProperty("开票单位")
private String invoiceTitle; // 开票单位
@ApiModelProperty("开票单位sid")
private String invoiceTitleSid; // 开票单位sid
@ApiModelProperty("税号")
private String taxpayerNo; // 税号
@ApiModelProperty("发票号码")

4
yxt-sms-biz/src/main/resources/application-pro.yml

@ -25,3 +25,7 @@ image:
path: D:\anrui\upload\
url:
prefix: http://120.46.172.184/api/upload/
templateUrl:
uploadUrl: D:\anrui\upload\template\
prefixUrl: http://120.46.172.184/api/upload/template/

2014
yxt-sms-biz/src/main/resources/ftl/xiaoshoudan.ftl

File diff suppressed because it is too large

8
yxt-sms-biz/src/main/resources/ftl/配件销售单.doc

@ -0,0 +1,8 @@
|${company!}(${dept!}) |
|配件销售单 |
|客户名称:${customer!} |联系电话:${mobile!} |单据编号:${billNo!} |
|车架号:${vinNo!} |车牌号:${vehMark!}|是否开票:${isKp!} |销售日期:${nowDate!} |
|序号 |商品名称 |
|经办人:${userName!} | |收款人: | | |客户签字: |
Loading…
Cancel
Save