package com.fzzy.sys.manager.print;
|
|
import com.fzzy.igds.bill.InoutBill;
|
import com.fzzy.igds.constant.Constant;
|
import com.fzzy.igds.constant.FoodVariety;
|
import com.fzzy.igds.data.InoutPrintBill;
|
import com.fzzy.igds.domain.Depot;
|
import com.fzzy.igds.domain.InoutRecord;
|
import com.fzzy.igds.service.DepotService;
|
import com.fzzy.igds.service.SysDeptService;
|
import com.fzzy.igds.utils.NumberUtil;
|
import com.ruoyi.common.core.domain.entity.SysDept;
|
import com.ruoyi.common.utils.StringUtils;
|
import org.apache.commons.lang3.time.DateFormatUtils;
|
import org.springframework.stereotype.Component;
|
import javax.annotation.Resource;
|
import java.text.DecimalFormat;
|
import java.util.*;
|
|
/**
|
* @Description 单据打印
|
* @Author CZT
|
* @Date 2025/12/4 9:27
|
*/
|
@Component
|
public class PrintManager {
|
|
@Resource
|
private SysDeptService sysDeptService;
|
@Resource
|
private DepotService depotService;
|
|
/**
|
* 获取入库过磅单数据信息
|
*
|
* @param data
|
* @return
|
*/
|
public String inWeightBill(InoutRecord data) {
|
|
// 获取表单数据
|
InoutPrintBill bill = this.createBillData(data, "入库划码单");
|
|
// 调整模版数据并返回
|
String htmlStr = InoutBill.IN_WEIGHT_DEFAULT;
|
|
htmlStr = htmlStr.replace("billTitle", bill.getBillTitle());
|
|
htmlStr = htmlStr.replace("registerTime", bill.getRegisterTime());
|
htmlStr = htmlStr.replace("completeTime", bill.getCompleteTime());
|
htmlStr = htmlStr.replace("fullTime", bill.getFullTime());
|
htmlStr = htmlStr.replace("emptyTime", bill.getEmptyTime());
|
htmlStr = htmlStr.replace("serId", bill.getSerId());
|
|
htmlStr = htmlStr.replace("customerName", bill.getCustomerName());
|
htmlStr = htmlStr.replace("deptName", bill.getUnitName());
|
|
htmlStr = htmlStr.replace("driverName", bill.getDriverName());
|
htmlStr = htmlStr.replace("userNumberId", bill.getUserId());
|
htmlStr = htmlStr.replace("userContact", bill.getUserContact());
|
htmlStr = htmlStr.replace("userAddress", bill.getUserAddress());
|
htmlStr = htmlStr.replace("foodVariety", bill.getFoodVariety());
|
htmlStr = htmlStr.replace("depotName", bill.getDepotName());
|
htmlStr = htmlStr.replace("foodLocation", bill.getFoodLocation());
|
|
if ("5326".equals(data.getCompanyId())) {
|
htmlStr = htmlStr.replace("recordWeight", new DecimalFormat("0").format(bill.getRecordWeight()));
|
htmlStr = htmlStr.replace("settleWeight", new DecimalFormat("0").format(bill.getSettleWeight()));
|
htmlStr = htmlStr.replace("fullWeight", new DecimalFormat("0").format(bill.getFullWeight()));
|
htmlStr = htmlStr.replace("emptyWeight", new DecimalFormat("0").format(bill.getEmptyWeight()));
|
htmlStr = htmlStr.replace("netWeight", new DecimalFormat("0").format(bill.getNetWeight()));
|
}
|
htmlStr = htmlStr.replace("plateNum", bill.getPlateNum());
|
htmlStr = htmlStr.replace("fullWeight",
|
new DecimalFormat("0.00").format(bill.getFullWeight()));
|
htmlStr = htmlStr.replace("emptyWeight",
|
new DecimalFormat("0.00").format(bill.getEmptyWeight()));
|
htmlStr = htmlStr.replace("netWeight",
|
new DecimalFormat("0.00").format(bill.getNetWeight()));
|
|
htmlStr = htmlStr.replace("deImpurity", bill.getDeImpurity() + "");
|
htmlStr = htmlStr.replace("deWet", bill.getDeWet() + "");
|
|
htmlStr = htmlStr.replace("recordWeight", new DecimalFormat("0.00").format(bill.getRecordWeight()));
|
htmlStr = htmlStr.replace("deCheck", bill.getDeCheck() + "");
|
htmlStr = htmlStr.replace("addCheck", bill.getAddCheck() + "");
|
|
htmlStr = htmlStr.replace("deSum", bill.getDeSum() + "");
|
htmlStr = htmlStr.replace("settleWeight",
|
new DecimalFormat("0.00").format(bill.getSettleWeight()));
|
|
htmlStr = htmlStr.replace("dePackage", bill.getDePackage() + "");
|
htmlStr = htmlStr.replace("deHandle", bill.getDeHandle() + "");
|
htmlStr = htmlStr.replace("deOther", bill.getDeOther() + "");
|
htmlStr = htmlStr.replace("price", bill.getPrice());
|
htmlStr = htmlStr.replace("settleMoney", bill.getSettleMoney() + "");
|
htmlStr = htmlStr.replace("wet", bill.getWet() + "");
|
htmlStr = htmlStr.replace("impurity", bill.getImpurity() + "");
|
|
htmlStr = htmlStr.replace("checkStatus", bill.getCheckStatus());
|
htmlStr = htmlStr.replace("remark", bill.getRemark());
|
htmlStr = htmlStr.replace("moneyName", bill.getMoneyName());
|
|
htmlStr = htmlStr.replace("unitName", bill.getUnitName());
|
htmlStr = htmlStr.replace("time", bill.getRegisterTime());
|
htmlStr = htmlStr.replace("handleStart", "");
|
htmlStr = htmlStr.replace("handleEnd", "");
|
htmlStr = htmlStr.replace("noticeId", bill.getNoticeId() == null ? "" : bill.getNoticeId());
|
htmlStr = htmlStr.replace("phone", data.getUserContact() == null ? "" : data.getUserContact() + "");
|
htmlStr = htmlStr.replace("printTime", DateFormatUtils.format(new Date(), "yyyy-MM-dd HH:mm"));
|
|
htmlStr = htmlStr.replaceAll("weightUser",
|
bill.getWeightUser() == null ? "" : bill.getWeightUser());
|
htmlStr = htmlStr.replaceAll("handleUser",
|
bill.getHandleUser() == null ? "" : bill.getHandleUser());
|
htmlStr = htmlStr.replaceAll("keeperName",
|
bill.getKeeperUser() == null ? "" : bill.getKeeperUser());
|
|
|
return htmlStr;
|
}
|
|
/**
|
* 获取出库过磅单
|
*
|
* @param data
|
* @return
|
*/
|
public String outWeightBill(InoutRecord data) {
|
// 获取表单数据
|
InoutPrintBill bill = this.createBillData(data, "出库划码单");
|
|
//默认模版
|
String htmlStr = InoutBill.OUT_WEIGHT_DEFAULT;
|
|
htmlStr = htmlStr.replace("billTitle", bill.getBillTitle());
|
|
htmlStr = htmlStr.replace("registerTime", bill.getRegisterTime());
|
htmlStr = htmlStr.replace("completeTime", bill.getCompleteTime());
|
htmlStr = htmlStr.replace("fullTime", bill.getFullTime());
|
htmlStr = htmlStr.replace("emptyTime", bill.getEmptyTime());
|
htmlStr = htmlStr.replace("serId", bill.getSerId());
|
|
htmlStr = htmlStr.replace("customerName", bill.getCustomerName());
|
htmlStr = htmlStr.replace("deptName", bill.getUnitName());
|
|
htmlStr = htmlStr.replace("driverName", bill.getDriverName());
|
htmlStr = htmlStr.replace("userNumberId", bill.getUserId());
|
htmlStr = htmlStr.replace("userContact", bill.getUserContact());
|
htmlStr = htmlStr.replace("userAddress", bill.getUserAddress());
|
htmlStr = htmlStr.replace("foodVariety", bill.getFoodVariety());
|
htmlStr = htmlStr.replace("depotName", bill.getDepotName());
|
htmlStr = htmlStr.replace("foodLocation", bill.getFoodLocation());
|
|
if ("5326".equals(data.getCompanyId())) {
|
htmlStr = htmlStr.replace("recordWeight", new DecimalFormat("0").format(bill.getRecordWeight()));
|
htmlStr = htmlStr.replace("settleWeight", new DecimalFormat("0").format(bill.getSettleWeight()));
|
htmlStr = htmlStr.replace("fullWeight", new DecimalFormat("0").format(bill.getFullWeight()));
|
htmlStr = htmlStr.replace("emptyWeight", new DecimalFormat("0").format(bill.getEmptyWeight()));
|
htmlStr = htmlStr.replace("netWeight", new DecimalFormat("0").format(bill.getNetWeight()));
|
}
|
htmlStr = htmlStr.replace("plateNum", bill.getPlateNum());
|
htmlStr = htmlStr.replace("fullWeight",
|
new DecimalFormat("0.00").format(bill.getFullWeight()));
|
htmlStr = htmlStr.replace("emptyWeight",
|
new DecimalFormat("0.00").format(bill.getEmptyWeight()));
|
htmlStr = htmlStr.replace("netWeight",
|
new DecimalFormat("0.00").format(bill.getNetWeight()));
|
htmlStr = htmlStr.replace("dePackage",
|
new DecimalFormat("0.00").format(bill.getDePackage()));
|
htmlStr = htmlStr.replace("remark", bill.getRemark());
|
|
htmlStr = htmlStr.replace("settleWeight",
|
new DecimalFormat("0.00").format(bill.getSettleWeight()));
|
htmlStr = htmlStr.replace("deHandle", bill.getDeHandle() + "");
|
htmlStr = htmlStr.replace("recordWeight", new DecimalFormat("0.00").format(bill.getRecordWeight()));
|
htmlStr = htmlStr.replace("deSum", bill.getDeSum() + "");
|
htmlStr = htmlStr.replace("deOther", bill.getDeOther() + "");
|
htmlStr = htmlStr.replace("price", bill.getPrice());
|
htmlStr = htmlStr.replace("settleMoney", bill.getSettleMoney() + "");
|
htmlStr = htmlStr.replace("wet", bill.getWet() + "");
|
htmlStr = htmlStr.replace("impurity", bill.getImpurity() + "");
|
|
htmlStr = htmlStr.replace("unitName", getValue(bill.getUnitName()));
|
htmlStr = htmlStr.replace("time", bill.getRegisterTime());
|
htmlStr = htmlStr.replace("handleStart", "");
|
htmlStr = htmlStr.replace("handleEnd", "");
|
htmlStr = htmlStr.replace("noticeId", bill.getNoticeId() == null ? "" : bill.getNoticeId());
|
htmlStr = htmlStr.replace("phone", data.getUserContact() == null ? "" : data.getUserContact() + "");
|
htmlStr = htmlStr.replace("printTime", DateFormatUtils.format(new Date(), "yyyy-MM-dd HH:mm"));
|
|
htmlStr = htmlStr.replaceAll("weightUser", getValue(bill.getWeightUser()));
|
htmlStr = htmlStr.replace("handleUser", getValue(bill.getHandleUser()));
|
htmlStr = htmlStr.replaceAll("keeperName", getValue(bill.getKeeperUser()));
|
return htmlStr;
|
}
|
|
|
public String getValue(String value) {
|
if (null == value) return "";
|
return value;
|
}
|
|
/**
|
* 封装过磅单数据
|
*
|
* @param data
|
* @param billTitle
|
* @return
|
*/
|
private InoutPrintBill createBillData(InoutRecord data, String billTitle) {
|
InoutPrintBill bill = new InoutPrintBill();
|
|
bill.setBillTitle(billTitle);
|
|
SysDept dept = sysDeptService.getCacheDept(data.getCompanyId(), data.getDeptId());
|
if (null != dept && StringUtils.isNotEmpty(dept.getDeptName())) {
|
bill.setBillTitle(dept.getDeptName() + billTitle);
|
bill.setDeptId(dept.getDeptId() + "");
|
bill.setDeptName(dept.getDeptName() + "");
|
bill.setUnitName(dept.getDeptName());
|
}
|
|
//清远出发货单位及标题,使用公司名
|
if ("5368".equals(data.getCompanyId())) {
|
SysDept company = sysDeptService.getCacheDept(data.getCompanyId(), data.getCompanyId());
|
if (null != company && StringUtils.isNotEmpty(company.getDeptName())) {
|
bill.setBillTitle(company.getDeptName() + billTitle);
|
bill.setUnitName(company.getDeptName());
|
}
|
}
|
|
bill.setCompanyId(data.getCompanyId() == null ? "" : data
|
.getCompanyId());
|
if (null == data.getRegisterTime()) {
|
data.setRegisterTime(new Date());
|
}
|
bill.setRegisterTime(DateFormatUtils.format(data.getRegisterTime(),
|
"yyyy-MM-dd HH:mm"));
|
|
if (null == data.getCompleteTime()) {
|
data.setCompleteTime(new Date());
|
}
|
bill.setCompleteTime(DateFormatUtils.format(data.getCompleteTime(),
|
"yyyy-MM-dd HH:mm"));
|
|
bill.setEmptyTime(DateFormatUtils.format(data.getEmptyWeightTime(),
|
"yyyy-MM-dd HH:mm:ss"));
|
bill.setFullTime(DateFormatUtils.format(data.getFullWeightTime(),
|
"yyyy-MM-dd HH:mm:ss"));
|
bill.setSerId(data.getId());
|
if ("5016".equals(data.getCompanyId()) || "5347".equals(data.getCompanyId()) || "5352".equals(data.getCompanyId())) {
|
bill.setCompleteTime(DateFormatUtils.format(data.getCompleteTime(), "yyyy-MM-dd"));
|
bill.setSerId(data.getId().substring(2));
|
|
}
|
|
//客户信息
|
bill.setCustomerName(data.getCustomerName() == null ? "" : data.getCustomerName());
|
bill.setUserId(data.getUserId() == null ? "" : data.getUserId());
|
bill.setUserAddress(data.getUserAddress() == null ? "" : data.getUserAddress());
|
bill.setUserContact(data.getUserContact() == null ? "" : data.getUserContact());
|
|
|
bill.setNoticeId(data.getNoticeId());
|
|
|
bill.setDriverName(data.getUserName() == null ? "" : data.getUserName());
|
|
// 获取仓库信息
|
Depot depot = depotService.getCacheDepot(data.getCompanyId(),
|
data.getDepotId());
|
if (depot != null) {
|
bill.setDepotName(depot.getName() == null ? "" : depot.getName());
|
bill.setHandleUser(depot.getStoreKeeperName() == null ? "" : depot
|
.getStoreKeeperName());
|
}
|
|
bill.setFoodVariety(FoodVariety.getMsg(data.getFoodVariety()));
|
bill.setFoodLocation(data.getFoodLocation() == null ? "" : data
|
.getFoodLocation());
|
bill.setPlateNum(data.getPlateNum());
|
|
bill.setFullWeight(data.getFullWeight());
|
bill.setEmptyWeight(data.getEmptyWeight());
|
bill.setNetWeight(data.getNetWeight());
|
bill.setRecordWeight(data.getRecordWeight());
|
bill.setCheckStatus(data.getCheckStatus().equals(Constant.STATUS_CHECK) ? "合格" : "不合格");
|
|
bill.setDeOther(data.getDeOther());
|
bill.setSettleWeight(data.getSettleWeight());
|
|
bill.setPrice(data.getPrice() == null ? "" : data.getPrice() + "");
|
if (data.getSettleMoney() <= 0) {
|
if (null != data.getPrice() && null != data.getRecordWeight()) {
|
data.setSettleMoney(NumberUtil.keepPrecision(data.getPrice() * data.getRecordWeight(), 2));
|
}
|
}
|
bill.setSettleMoney(data.getSettleMoney() == null ? "" : data.getSettleMoney() + "");
|
bill.setRemark(data.getRemarks() == null ? "" : data.getRemarks());
|
|
if (Constant.TYPE_IN.equals(data.getType())) {
|
bill.setWeightUser(data.getFullWeightUser());
|
}
|
if (Constant.TYPE_OUT.equals(data.getType())) {
|
bill.setWeightUser(data.getEmptyWeightUser());
|
}
|
bill.setHandleUser(data.getHandleUser());
|
bill.setKeeperUser(depot.getStoreKeeperName());
|
return bill;
|
}
|
|
}
|