Browse Source

完善维修工单结算

master
fanzongzhe 10 months ago
parent
commit
a02e681d88
  1. 9
      yxt-as/src/main/java/com/yxt/anrui/as/api/asbusrepairbill/AsBusrepairBill.java
  2. 1
      yxt-as/src/main/java/com/yxt/anrui/as/api/asbusrepairbill/AsBusrepairBillDetailsVo.java
  3. 2
      yxt-as/src/main/java/com/yxt/anrui/as/api/asbusrepairbill/AsBusrepairBillDto.java
  4. 3
      yxt-as/src/main/java/com/yxt/anrui/as/api/asbusrepairbill/GoodsDetailsVo.java
  5. 1
      yxt-as/src/main/java/com/yxt/anrui/as/api/asbusrepairinventorybill/AsBusrepairInventoryBillInit.java
  6. 304
      yxt-as/src/main/java/com/yxt/anrui/as/biz/asbusrepairbill/AsBusrepairBillService.java
  7. 17
      yxt-as/src/main/java/com/yxt/anrui/as/biz/asbusrepairinventorybill/AsBusrepairInventorybillService.java
  8. 65
      yxt-as/src/main/java/com/yxt/anrui/as/feign/wms/wmsInventory/WmsInventory.java
  9. 4
      yxt-as/src/main/java/com/yxt/anrui/as/feign/wms/wmsInventory/WmsInventoryFeign.java
  10. 8
      yxt-pms-biz/src/main/java/com/yxt/pms/biz/pms/pmspurchasebill/PmsPurchaseBillService.java
  11. 2
      yxt-pms-biz/src/main/java/com/yxt/pms/feign/wms/wmsansbill/WmsAnsBillDto.java
  12. 3
      yxt-wms-biz/src/main/java/com/yxt/wms/biz/inventory/wmsansbill/WmsAnsBill.java
  13. 3
      yxt-wms-biz/src/main/java/com/yxt/wms/biz/inventory/wmsansbill/WmsAnsBillDto.java
  14. 2
      yxt-wms-biz/src/main/java/com/yxt/wms/biz/inventory/wmsinventory/WmsInventory.java
  15. 2
      yxt-wms-biz/src/main/java/com/yxt/wms/biz/inventory/wmsinventoryrecord/WmsInventoryRecordDto.java
  16. 3
      yxt-wms-biz/src/main/java/com/yxt/wms/biz/inventory/wmsinventoryrecord/WmsInventoryRecordService.java
  17. 3
      yxt-wms-biz/src/main/java/com/yxt/wms/biz/inventory/wmsreceiptbill/WmsReceiptBillQuery.java
  18. 4
      yxt-wms-biz/src/main/java/com/yxt/wms/biz/inventory/wmsreceiptbill/WmsReceiptBillService.java
  19. 16
      yxt-wms-biz/src/main/java/com/yxt/wms/biz/inventory/wmsshelfbill/WmsShelfBillService.java

9
yxt-as/src/main/java/com/yxt/anrui/as/api/asbusrepairbill/AsBusrepairBill.java

@ -139,4 +139,13 @@ public class AsBusrepairBill extends BaseEntity {
private Integer completeState;
@ApiModelProperty("出库确认备注")
private String outboundRemarks;
@ApiModelProperty("对接人sid")
private String dockingPeopleSid;
@ApiModelProperty("对接人")
private String dockingPeople;
@ApiModelProperty("对接人电话")
private String dockingPhone;
@ApiModelProperty("是否确认材料费(1是,0否)")
private Integer materialConfirm;
}

1
yxt-as/src/main/java/com/yxt/anrui/as/api/asbusrepairbill/AsBusrepairBillDetailsVo.java

@ -167,4 +167,5 @@ public class AsBusrepairBillDetailsVo implements Vo {
private List<FileUrlQuery> fileName = new ArrayList<>(); //文件名称
@ApiModelProperty("商品登记备注")
private String registerRemarks;
}

2
yxt-as/src/main/java/com/yxt/anrui/as/api/asbusrepairbill/AsBusrepairBillDto.java

@ -151,4 +151,6 @@ public class AsBusrepairBillDto implements Dto {
private List<FileUrlQuery> fileName = new ArrayList<>(); //文件名称
@ApiModelProperty("商品登记备注")
private String registerRemarks;
@ApiModelProperty("附加费")
private String addAmount;
}

3
yxt-as/src/main/java/com/yxt/anrui/as/api/asbusrepairbill/GoodsDetailsVo.java

@ -68,5 +68,6 @@ public class GoodsDetailsVo implements Vo {
private List<String> partsSellersSids = new ArrayList<>();
@ApiModelProperty("配件销售")
private List<String> partsSellers = new ArrayList<>();
@ApiModelProperty("维修项目")
private String serviceItem;
}

1
yxt-as/src/main/java/com/yxt/anrui/as/api/asbusrepairinventorybill/AsBusrepairInventoryBillInit.java

@ -62,6 +62,7 @@ public class AsBusrepairInventoryBillInit {
private List<SitemsVo> sitemVoList = new ArrayList<>();
@ApiModelProperty("商品登记备注")
private String registerRemarks;
private String isGoOut;
private List<AsBusrepairInventorybillDetailSDto> detailList = new ArrayList<>();
}

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

@ -59,6 +59,7 @@ import com.yxt.anrui.as.feign.sms.SmsGoods;
import com.yxt.anrui.as.feign.sms.SmsGoodsFeign;
import com.yxt.anrui.as.feign.wms.wmsoldinventory.WmsOldInventoryFeign;
import com.yxt.anrui.as.feign.wms.wmsoldinventory.WmsOldInventoryPush;
import com.yxt.common.base.config.component.DocPdfComponent;
import com.yxt.common.base.config.component.FileUploadComponent;
import com.yxt.common.base.service.MybatisBaseService;
import com.yxt.common.base.utils.ConstantUtils;
@ -137,7 +138,8 @@ public class AsBusrepairBillService extends MybatisBaseService<AsBusrepairBillMa
private CrmCustomerTempFeign crmCustomerTempFeign;
@Autowired
private AsServiceItemService asServiceItemService;
@Autowired
private DocPdfComponent docPdfComponent;
/**
* 维修领料获取派工单
*
@ -944,18 +946,9 @@ public class AsBusrepairBillService extends MybatisBaseService<AsBusrepairBillMa
if (asBusrepairBill.getOldIsReclaim() != 1) {
return rb.setMsg("请先完成旧件入库,再进行操作!");
}
asBusrepairBill.setNodeCode(6);
asBusrepairBill.setNodeName("出厂");
asBusrepairBill.setNodeTime(new DateTime());
asBusrepairBill.setMaterialConfirm(1);
asBusrepairBill.setOutDoorState("2");
baseMapper.updateById(asBusrepairBill);
//新增工单环节信息
AsBusrepairBillNode billNode = new AsBusrepairBillNode();
billNode.setBillSid(sid);
billNode.setCreateByName(dto.getOperator());
billNode.setNodeName("出厂");
billNode.setCreateBySid(dto.getOperatorSid());
billNode.setNodeCode("6");
asBusrepairBillNodeService.insert(billNode);
}
}
return rb.success();
@ -971,56 +964,75 @@ public class AsBusrepairBillService extends MybatisBaseService<AsBusrepairBillMa
return rb.setMsg("请先完成旧件入库,再进行操作!");
}
asBusrepairBill.setNodeCode(6);
asBusrepairBill.setNodeName("出厂");
asBusrepairBill.setNodeName("已结算");
asBusrepairBill.setNodeTime(new DateTime());
if (asBusrepairBill.getMaterialConfirm().intValue() == 0) {
asBusrepairBill.setMaterialConfirm(1);
asBusrepairBill.setOutDoorState("2");
}
baseMapper.updateById(asBusrepairBill);
//新增工单环节信息
AsBusrepairBillNode billNode = new AsBusrepairBillNode();
billNode.setBillSid(sid);
billNode.setCreateByName(dto.getOperator());
billNode.setNodeName("出厂");
billNode.setNodeName("已结算");
billNode.setCreateBySid(dto.getOperatorSid());
billNode.setNodeCode("6");
asBusrepairBillNodeService.insert(billNode);
}
SettleVo settleVo = dto.getSettleVo();
if (null != settleVo) {
FmsReceivesettleDto settleDto = new FmsReceivesettleDto();
BeanUtil.copyProperties(settleVo, settleDto, "id", "sid");
settleDto.setCreateBySid(dto.getOperatorSid());
settleDto.setCreateByName(dto.getOperator());
settleDto.setSourceBillSid(dto.getSid());
settleDto.setSourceBillNo(asBusrepairBill.getBillNo());
fmsReceivesettleFeign.save(settleDto);
FinUncollectedReceivablesDetailedDto finUncollectedReceivablesDetailedDto = new FinUncollectedReceivablesDetailedDto();
finUncollectedReceivablesDetailedDto.setCreateByName(asBusrepairBill.getCreateByName());
finUncollectedReceivablesDetailedDto.setCreateBySid(asBusrepairBill.getCreateBySid());
finUncollectedReceivablesDetailedDto.setCustomerSid(asBusrepairBill.getCustomerSid());
finUncollectedReceivablesDetailedDto.setCustomerName(asBusrepairBill.getCustomerName());
AsBusrepairBillVech billVech = asBusrepairBillVechService.fetchByBillSid(asBusrepairBill.getSid());
if (null != billVech) {
if (StringUtils.isNotBlank(billVech.getVinNo())) {
finUncollectedReceivablesDetailedDto.setVIN(billVech.getVinNo());
if (asBusrepairBill.getSubject().equals("保外")) {
SettleVo settleVo = dto.getSettleVo();
if (null != settleVo) {
FmsReceivesettleDto settleDto = new FmsReceivesettleDto();
BeanUtil.copyProperties(settleVo, settleDto, "id", "sid");
settleDto.setCreateBySid(dto.getOperatorSid());
settleDto.setCreateByName(dto.getOperator());
settleDto.setSourceBillSid(dto.getSid());
settleDto.setSourceBillNo(asBusrepairBill.getBillNo());
fmsReceivesettleFeign.save(settleDto);
FinUncollectedReceivablesDetailedDto finUncollectedReceivablesDetailedDto = new FinUncollectedReceivablesDetailedDto();
finUncollectedReceivablesDetailedDto.setCreateByName(asBusrepairBill.getCreateByName());
finUncollectedReceivablesDetailedDto.setCreateBySid(asBusrepairBill.getCreateBySid());
finUncollectedReceivablesDetailedDto.setCustomerSid(asBusrepairBill.getCustomerSid());
finUncollectedReceivablesDetailedDto.setCustomerName(asBusrepairBill.getCustomerName());
AsBusrepairBillVech billVech = asBusrepairBillVechService.fetchByBillSid(asBusrepairBill.getSid());
if (null != billVech) {
if (StringUtils.isNotBlank(billVech.getVinNo())) {
finUncollectedReceivablesDetailedDto.setVIN(billVech.getVinNo());
}
}
}
finUncollectedReceivablesDetailedDto.setCustomerPhone(asBusrepairBill.getMobile());
finUncollectedReceivablesDetailedDto.setUseOrgSid(asBusrepairBill.getUseOrgSid());
finUncollectedReceivablesDetailedDto.setOrgSidPath(asBusrepairBill.getOrgSidPath());
finUncollectedReceivablesDetailedDto.setReceivablesName("工时费、材料费");
BigDecimal settleAmount = new BigDecimal("0");
BigDecimal otherSettleAmount = new BigDecimal("0");
if (StringUtils.isNotBlank(settleVo.getSettleAmount())) {
settleAmount = new BigDecimal(settleVo.getSettleAmount());
}
if (StringUtils.isNotBlank(settleVo.getOtherSettleAmount())) {
otherSettleAmount = new BigDecimal(settleVo.getOtherSettleAmount());
}
finUncollectedReceivablesDetailedDto.setCurrentReceivableMoney((settleAmount.add(otherSettleAmount)).toString());
finUncollectedReceivablesDetailedDto.setReveivableMoney((settleAmount.add(otherSettleAmount)).toString());
finUncollectedReceivablesDetailedDto.setUseOrgName(asBusrepairBill.getUseOrgName());
finUncollectedReceivablesDetailedDto.setKxState("01");
finUncollectedReceivablesDetailedFeign.saveOrUpdate(finUncollectedReceivablesDetailedDto);
finUncollectedReceivablesDetailedDto.setCustomerPhone(asBusrepairBill.getMobile());
finUncollectedReceivablesDetailedDto.setUseOrgSid(asBusrepairBill.getUseOrgSid());
finUncollectedReceivablesDetailedDto.setOrgSidPath(asBusrepairBill.getOrgSidPath());
finUncollectedReceivablesDetailedDto.setReceivablesName("工时费、材料费");
BigDecimal settleAmount = new BigDecimal("0");
BigDecimal otherSettleAmount = new BigDecimal("0");
if (StringUtils.isNotBlank(settleVo.getSettleAmount())) {
settleAmount = new BigDecimal(settleVo.getSettleAmount());
}
if (StringUtils.isNotBlank(settleVo.getOtherSettleAmount())) {
otherSettleAmount = new BigDecimal(settleVo.getOtherSettleAmount());
}
finUncollectedReceivablesDetailedDto.setCurrentReceivableMoney((settleAmount.add(otherSettleAmount)).toString());
finUncollectedReceivablesDetailedDto.setReveivableMoney((settleAmount.add(otherSettleAmount)).toString());
finUncollectedReceivablesDetailedDto.setUseOrgName(asBusrepairBill.getUseOrgName());
finUncollectedReceivablesDetailedDto.setKxState("01");
finUncollectedReceivablesDetailedFeign.saveOrUpdate(finUncollectedReceivablesDetailedDto);
}
asBusrepairBill.setNodeCode(6);
asBusrepairBill.setNodeName("已结算");
asBusrepairBill.setNodeTime(new DateTime());
asBusrepairBill.setOutDoorState("2");
baseMapper.updateById(asBusrepairBill);
//新增工单环节信息
AsBusrepairBillNode billNode = new AsBusrepairBillNode();
billNode.setBillSid(sid);
billNode.setCreateByName(dto.getOperator());
billNode.setNodeName("已结算");
billNode.setCreateBySid(dto.getOperatorSid());
billNode.setNodeCode("6");
asBusrepairBillNodeService.insert(billNode);
}
}
AsTrackBillDto asTrackBillDto = new AsTrackBillDto();
@ -1225,6 +1237,8 @@ public class AsBusrepairBillService extends MybatisBaseService<AsBusrepairBillMa
} else if (asBusrepairBill.getNodeCode() == 3) {
nodeCode = 2;
nodeName = "派工";
asBusrepairBill.setCompleteState(0);
asBusrepairBill.setRepairState(0);
}
asBusrepairBill.setNodeCode(nodeCode);
asBusrepairBill.setNodeName(nodeName);
@ -1411,6 +1425,7 @@ public class AsBusrepairBillService extends MybatisBaseService<AsBusrepairBillMa
}
vo.setUserName(userName);
String path = createSettlePdf(vo, type, subject);
filePath = path;
}
return rb.success().setData(filePath);
}
@ -1420,91 +1435,136 @@ public class AsBusrepairBillService extends MybatisBaseService<AsBusrepairBillMa
Map<String, Object> dataMap = new HashMap();
List<Map<String, Object>> list = new ArrayList<>();
List<Map<String, Object>> newList = new ArrayList<>();
boolean price0 = false;
if (subject.equals("保内") && type.equals("1")) {
price0 = true;
}
dataMap.put("company", vo.getCompany());
dataMap.put("dept", vo.getDept());
dataMap.put("settleTime", vo.getSettleTime());
dataMap.put("customer", vo.getCustomer());
dataMap.put("mobile", vo.getCompany());
dataMap.put("billNo", vo.getCompany());
dataMap.put("billType", vo.getCompany());
dataMap.put("vehModel", vo.getCompany());
dataMap.put("claimManufacturer", vo.getCompany());
dataMap.put("claimNo", vo.getCompany());
dataMap.put("vinNo", vo.getCompany());
dataMap.put("vehMark", vo.getCompany());
dataMap.put("isKp", vo.getCompany());
dataMap.put("caps1", vo.getCompany());
dataMap.put("sumMoney1", vo.getCompany());
dataMap.put("caps2", vo.getCompany());
dataMap.put("sumMoney2", vo.getCompany());
dataMap.put("outAmount", vo.getCompany());
dataMap.put("subsidyAmount", vo.getCompany());
dataMap.put("rescueAmount", vo.getCompany());
dataMap.put("receivableAmount", vo.getCompany());
dataMap.put("actualAmount", vo.getCompany());
dataMap.put("mobile", vo.getMobile());
dataMap.put("billNo", vo.getBillNo());
dataMap.put("billType", vo.getBillType());
dataMap.put("vehModel", vo.getVehModel());
dataMap.put("claimManufacturer", vo.getClaimManufacturer());
dataMap.put("claimNo", vo.getClaimNo());
dataMap.put("vinNo", vo.getVinNo());
dataMap.put("vehMark", vo.getVehMark());
dataMap.put("isKp", vo.getIsKp());
if (price0) {
dataMap.put("caps1", "");
dataMap.put("sumMoney1", "0");
dataMap.put("caps2","");
dataMap.put("sumMoney2", "0");
dataMap.put("outAmount","0");
dataMap.put("subsidyAmount","0");
dataMap.put("rescueAmount","0");
dataMap.put("receivableAmount","0");
dataMap.put("actualAmount","0");
} else {
dataMap.put("caps1", vo.getCaps1());
dataMap.put("sumMoney1", vo.getSumMoney1());
dataMap.put("caps2", vo.getCaps2());
dataMap.put("sumMoney2", vo.getSumMoney2());
dataMap.put("outAmount", vo.getOutAmount());
dataMap.put("subsidyAmount", vo.getSubsidyAmount());
dataMap.put("rescueAmount", vo.getRescueAmount());
dataMap.put("receivableAmount", vo.getReceivableAmount());
dataMap.put("actualAmount", vo.getActualAmount());
}
dataMap.put("userName", vo.getCompany());
//
// private String sortNo; //序号
// private String serviceItem; //维修项目
// private String serviceItemCode; //维修项目编码
// private String serviceType; //工种
// private String hourPrice; //工时单价
// private String hours; //工时数量
// private String price; //维修金额
// private String discount; //折扣
// private String discountAmount; //优惠
// private String amount; //销售金额
// private String repairerName; //维修技师
// private String remarks; //备注
//
// private List<SettleGoodsPdfVo> goods = new ArrayList<>();
List<SettleItemPdfVo> items = vo.getItems();
if (!items.isEmpty()) {
for (SettleItemPdfVo itemPdfVo : items) {
Map<String, Object> map = new HashMap<>();
map.put("sortNo", itemPdfVo.getSortNo());
map.put("sortNo", itemPdfVo.getSortNo());
map.put("sortNo", itemPdfVo.getSortNo());
map.put("sortNo", itemPdfVo.getSortNo());
map.put("sortNo", itemPdfVo.getSortNo());
map.put("sortNo", itemPdfVo.getSortNo());
map.put("sortNo", itemPdfVo.getSortNo());
map.put("sortNo", itemPdfVo.getSortNo());
map.put("sortNo", itemPdfVo.getSortNo());
map.put("sortNo", itemPdfVo.getSortNo());
map.put("sortNo", itemPdfVo.getSortNo());
map.put("sortNo", itemPdfVo.getSortNo());
map.put("sortNo", itemPdfVo.getSortNo());
map.put("sortNo", itemPdfVo.getSortNo());
map.put("serviceItem", itemPdfVo.getServiceItem());
map.put("serviceItemCode", itemPdfVo.getServiceItemCode());
map.put("serviceType", itemPdfVo.getServiceType());
map.put("hourPrice", itemPdfVo.getHourPrice());
map.put("hours", itemPdfVo.getHours());
if (price0) {
map.put("price","0");
} else {
map.put("price", itemPdfVo.getPrice());
}
map.put("discount", itemPdfVo.getDiscount());
map.put("discountAmount", itemPdfVo.getDiscountAmount());
map.put("amount", itemPdfVo.getAmount());
map.put("repairerName", itemPdfVo.getRepairerName());
map.put("remarks", itemPdfVo.getRemarks());
list.add(map);
}
}
// dataMap.put("list", list);
// String temp = "/template/";
// String targetPath = docPdfComponent.getUploadTemplateUrl();
// try {
// //获取模板
// InputStream inputStream = this.getClass().getClassLoader().getResourceAsStream("ftl/vouchers/yhjt.ftl");
// //生成word文件名
// String dateStr = DateUtil.format(new Date(), "yyyyMMdd");
// long seconds = System.currentTimeMillis();
// String typeName = dateStr + seconds + ".doc";
// File file = new File(targetPath + "templateVouchers" + 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;
// }
dataMap.put("list", list);
List<SettleGoodsPdfVo> goods = vo.getGoods();
if (!goods.isEmpty()) {
for (SettleGoodsPdfVo 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());
if (price0) {
map.put("price","0");
map.put("amount","0");
} else {
map.put("price", good.getPrice());
map.put("amount", good.getAmount());
}
map.put("discount", good.getDiscount());
map.put("discountAmount", good.getDiscountAmount());
map.put("remarks", good.getRemarks());
map.put("operName", good.getOperName());
newList.add(map);
}
}
dataMap.put("newList", newList);
String temp = "/template/";
String targetPath = docPdfComponent.getUploadTemplateUrl();
String ftl = "";
boolean add = true;
if (StringUtils.isBlank(vo.getOutAmount()) &&
StringUtils.isBlank(vo.getSubsidyAmount()) &&
StringUtils.isBlank(vo.getRescueAmount())) {
add = false;
}
if (subject.equals("保内")) {
if (add) {
ftl = "ftl/baoneifujia.ftl";
} else {
ftl = "ftl/baonei.ftl";
}
} else if (subject.equals("保外")) {
if (add) {
ftl = "ftl/baowaifujia.ftl";
} else {
ftl = "ftl/baowai.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;
}

17
yxt-as/src/main/java/com/yxt/anrui/as/biz/asbusrepairinventorybill/AsBusrepairInventorybillService.java

@ -26,6 +26,7 @@ import com.yxt.anrui.as.feign.portal.sysorganization.SysOrganizationFeign;
import com.yxt.anrui.as.feign.portal.sysorganization.SysOrganizationVo;
import com.yxt.anrui.as.feign.portal.sysstafforg.SysStaffOrgFeign;
import com.yxt.anrui.as.feign.portal.sysuser.SysUserFeign;
import com.yxt.anrui.as.feign.wms.wmsInventory.WmsInventory;
import com.yxt.anrui.as.feign.wms.wmsInventory.WmsInventoryFeign;
import com.yxt.anrui.as.feign.wms.wmsInventory.WmsUpdateCountQuery;
import com.yxt.anrui.as.feign.wms.wmsinventorybill.WmsInventoryBillDetailDto;
@ -279,6 +280,19 @@ public class AsBusrepairInventorybillService extends MybatisBaseService<AsBusrep
detail.setCurrentCount(new BigDecimal(sDto.getOutboundCount()));
}
detail.setBillSid(entity.getSid());
String inventorySid = sDto.getInventorySid();
WmsInventory inventory = wmsInventoryFeign.fetchEntityBySid(inventorySid).getData();
if (null != inventory) {
if (null != inventory.getTaxRate()) {
if (inventory.getTaxRate().compareTo(BigDecimal.ZERO) > 0) {
detail.setIsTaxRate(1);
} else {
detail.setIsTaxRate(0);
}
} else {
detail.setIsTaxRate(0);
}
}
asBusrepairInventorybillDetailService.insert(detail);
WmsUpdateCountQuery countQuery = new WmsUpdateCountQuery();
@ -382,6 +396,9 @@ public class AsBusrepairInventorybillService extends MybatisBaseService<AsBusrep
if (StringUtils.isNotBlank(data.getBillNo())) {
vo.setSourceBillNo(data.getBillNo());
}
if (StringUtils.isNotBlank(data.getIsGoOut())) {
vo.setIsGoOut(data.getIsGoOut());
}
if (StringUtils.isNotBlank(data.getWaitorName())) {
vo.setWaitorName(data.getWaitorName());
}

65
yxt-as/src/main/java/com/yxt/anrui/as/feign/wms/wmsInventory/WmsInventory.java

@ -0,0 +1,65 @@
package com.yxt.anrui.as.feign.wms.wmsInventory;
import com.baomidou.mybatisplus.annotation.TableName;
import com.yxt.common.core.domain.BaseEntity;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.math.BigDecimal;
import java.util.Date;
/**
* @author wangpengfei
* @date 2024/2/28 8:38
*/
@Data
@TableName("wms_inventory")
public class WmsInventory extends BaseEntity {
@ApiModelProperty("批次号")
private String batchNumber;
@ApiModelProperty("商品ID(唯一编码,入库时生成,生成规则为商品编码+YYMMdd+4位流水)")
private String goodsID;
@ApiModelProperty("商品基础信息sid")
private String goodSpuSid;
@ApiModelProperty("商品名称")
private String goodsSpuName;
@ApiModelProperty("商品Skusid")
private String goodsSkuSid;
@ApiModelProperty("商品Sku名称")
private String goodsSkuTitle;
@ApiModelProperty("商品编码(图号)")
private String goodsSkuCode;
@ApiModelProperty("规格型号")
private String goodsSkuOwnSpec;
@ApiModelProperty("计量单位")
private String unit;
@ApiModelProperty("现有量")
private BigDecimal count;
@ApiModelProperty("分配量(锁定数量,出库申请通过,但未实际出库)")
private BigDecimal allocateCount;
@ApiModelProperty("拣货量")
private BigDecimal pickCount;
@ApiModelProperty("冻结量")
private BigDecimal freezeCount;
@ApiModelProperty("入库单价")
private BigDecimal cost;
@ApiModelProperty("税率")
private BigDecimal taxRate;
@ApiModelProperty("仓库sid")
private String warehouseSid;
@ApiModelProperty("仓库名称")
private String warehouseName;
@ApiModelProperty("库位sid")
private String warehouseRackSid;
@ApiModelProperty("库位编码")
private String warehouseRackCode;
@ApiModelProperty("首次入库日期-计算库龄的依据")
private Date firstInDate;
@ApiModelProperty("创建组织sid")
private String createOrgSid;
@ApiModelProperty("使用组织sid")
private String useOrgSid;
@ApiModelProperty("厂家订单号")
private String manufactorBillNo;
}

4
yxt-as/src/main/java/com/yxt/anrui/as/feign/wms/wmsInventory/WmsInventoryFeign.java

@ -7,6 +7,7 @@ import io.swagger.annotations.ApiOperation;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestParam;
/**
* @description: 商品基础信息
@ -29,4 +30,7 @@ public interface WmsInventoryFeign {
@PostMapping("/updateInventoryCount")
ResultBean updateInventoryCount(@RequestBody WmsUpdateCountQuery query);
@ApiOperation("根据Sid获取库存实体")
@PostMapping("/fetchEntityBySid")
ResultBean<WmsInventory> fetchEntityBySid(@RequestParam("sid") String sid);
}

8
yxt-pms-biz/src/main/java/com/yxt/pms/biz/pms/pmspurchasebill/PmsPurchaseBillService.java

@ -511,12 +511,18 @@ public class PmsPurchaseBillService extends MybatisBaseService<PmsPurchaseBillMa
wmsAnsBillDto.setCreateBySid(pmsPurchaseBill.getCreateBySid());
wmsAnsBillDto.setSourceBillNo(pmsPurchaseBill.getBillNo());
wmsAnsBillDto.setBusTypeKey("01");
wmsAnsBillDto.setBusTypeValue("采购预约");
wmsAnsBillDto.setBusTypeValue("采购入库");
wmsAnsBillDto.setCreateByName(pmsPurchaseBill.getCreateByName());
wmsAnsBillDto.setBillState(0);
wmsAnsBillDto.setReviewStatus("");
wmsAnsBillDto.setRefuseReason("");
wmsAnsBillDto.setSourceBillSid(pmsPurchaseBill.getSid());
PmsPurchaseBillInvoiceDetailsVo invoiceDetailsVo = pmsPurchaseBillInvoiceService.selByMainSid(businessSid);
if (null != invoiceDetailsVo) {
if (null != invoiceDetailsVo.getTaxRate()) {
wmsAnsBillDto.setTaxRate(invoiceDetailsVo.getTaxRate().toString());
}
}
if (StringUtils.isNotBlank(pmsPurchaseBill.getManufacturersOrderTypeKey())) {
wmsAnsBillDto.setManufactorBillTypeKey(pmsPurchaseBill.getManufacturersOrderTypeKey());
}

2
yxt-pms-biz/src/main/java/com/yxt/pms/feign/wms/wmsansbill/WmsAnsBillDto.java

@ -64,4 +64,6 @@ public class WmsAnsBillDto {
@ApiModelProperty("厂家订单类型key")
private String manufactorBillTypeKey;
private List<WmsAnsBillDetailDto> wmsAnsBillDetailList = new ArrayList<>();
@ApiModelProperty("采购单税率")
private String taxRate;
}

3
yxt-wms-biz/src/main/java/com/yxt/wms/biz/inventory/wmsansbill/WmsAnsBill.java

@ -4,6 +4,7 @@ import com.yxt.common.core.domain.BaseEntity;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.math.BigDecimal;
import java.util.Date;
/**
@ -61,4 +62,6 @@ public class WmsAnsBill extends BaseEntity {
private String manufactorBillTypeValue;
@ApiModelProperty("厂家订单类型key")
private String manufactorBillTypeKey;
@ApiModelProperty("采购单税率")
private BigDecimal taxRate;
}

3
yxt-wms-biz/src/main/java/com/yxt/wms/biz/inventory/wmsansbill/WmsAnsBillDto.java

@ -4,6 +4,7 @@ import com.yxt.wms.biz.inventory.wmsansbilldetail.WmsAnsBillDetailDto;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
@ -64,4 +65,6 @@ public class WmsAnsBillDto {
@ApiModelProperty("厂家订单类型key")
private String manufactorBillTypeKey;
private List<WmsAnsBillDetailDto> wmsAnsBillDetailList = new ArrayList<>();
@ApiModelProperty("采购单税率")
private String taxRate;
}

2
yxt-wms-biz/src/main/java/com/yxt/wms/biz/inventory/wmsinventory/WmsInventory.java

@ -46,6 +46,8 @@ public class WmsInventory extends BaseEntity {
private BigDecimal freezeCount;
@ApiModelProperty("入库单价")
private BigDecimal cost;
@ApiModelProperty("税率")
private BigDecimal taxRate;
@ApiModelProperty("仓库sid")
private String warehouseSid;
@ApiModelProperty("仓库名称")

2
yxt-wms-biz/src/main/java/com/yxt/wms/biz/inventory/wmsinventoryrecord/WmsInventoryRecordDto.java

@ -104,7 +104,7 @@ public class WmsInventoryRecordDto implements Dto {
@ApiModelProperty("入库单价")
private String cost;
@ApiModelProperty("税率")
private String tax;
private String taxRate;
@ApiModelProperty("入库金额")
private String amount;
@ApiModelProperty("经办人sid")

3
yxt-wms-biz/src/main/java/com/yxt/wms/biz/inventory/wmsinventoryrecord/WmsInventoryRecordService.java

@ -351,6 +351,9 @@ public class WmsInventoryRecordService extends MybatisBaseService<WmsInventoryRe
WmsInventoryRecord inventoryRecord = new WmsInventoryRecord();
BeanUtil.copyProperties(dto,inventoryRecord,"id","sid");
inventoryRecord.setInventorySid(wmsInventory.getSid());
if (StringUtils.isNotBlank(dto.getTaxRate())) {
inventoryRecord.setTax(new BigDecimal(dto.getTaxRate()));
}
baseMapper.insert(inventoryRecord);
}

3
yxt-wms-biz/src/main/java/com/yxt/wms/biz/inventory/wmsreceiptbill/WmsReceiptBillQuery.java

@ -34,5 +34,6 @@ public class WmsReceiptBillQuery implements Query {
private String orgPath;
@ApiModelProperty("用户sid")
private String userSid;
@ApiModelProperty("分配状态")
private String distributeType;
}

4
yxt-wms-biz/src/main/java/com/yxt/wms/biz/inventory/wmsreceiptbill/WmsReceiptBillService.java

@ -127,6 +127,10 @@ public class WmsReceiptBillService extends MybatisBaseService<WmsReceiptBillMapp
if (StringUtils.isNotBlank(query.getBillState())) {
qw.like("wrb.billState", query.getBillState());
}
//分配状态
if (StringUtils.isNotBlank(query.getDistributeType())) {
qw.like("wrb.distributeType", query.getDistributeType());
}
//外部编号
if (StringUtils.isNotBlank(query.getSourceBillNo())) {
qw.like("wrb.sourceBillNo", query.getSourceBillNo());

16
yxt-wms-biz/src/main/java/com/yxt/wms/biz/inventory/wmsshelfbill/WmsShelfBillService.java

@ -18,6 +18,7 @@ import com.yxt.wms.biz.base.wmswarehouserack.WmsHouseInfoVo;
import com.yxt.wms.biz.base.wmswarehouserack.WmsWarehouseRack;
import com.yxt.wms.biz.base.wmswarehouserack.WmsWarehouseRackService;
import com.yxt.wms.biz.inventory.wmsansbill.WmsAnsBill;
import com.yxt.wms.biz.inventory.wmsansbill.WmsAnsBillService;
import com.yxt.wms.biz.inventory.wmsansbilldetail.WmsAnsListDetailsVo;
import com.yxt.wms.biz.inventory.wmsgoodstag.WmsGoodsTag;
import com.yxt.wms.biz.inventory.wmsgoodstag.WmsGoodsTagService;
@ -101,7 +102,8 @@ public class WmsShelfBillService extends MybatisBaseService<WmsShelfBillMapper,
private WmsGoodsTagService wmsGoodsTagService;
@Autowired
private BaseGoodsSpuFeign baseGoodsSpuFeign;
@Autowired
private WmsAnsBillService wmsAnsBillService;
public PagerVo<WmsShelfBillVo> listPage(PagerQuery<WmsShelfBillQuery> pq) {
WmsShelfBillQuery query = pq.getParams();
@ -777,8 +779,16 @@ public class WmsShelfBillService extends MybatisBaseService<WmsShelfBillMapper,
recordDto.setCost(receiptBillDetail.getCost().toString());
recordDto.setAmount(amount.toString());
}
if (null != receiptBillDetail.getTaxAmount()) {
recordDto.setTax(receiptBillDetail.getTaxAmount().toString());
//设置税率
WmsReceiptBill wmsReceiptBill = wmsReceiptBillService.fetchBySid(sourceBillSid); //收货单
if (null != wmsReceiptBill) {
String ansSid = wmsReceiptBill.getSourceBillSid(); //预约入库sid
WmsAnsBill ansBill = wmsAnsBillService.fetchBySid(ansSid);
if (null != ansBill) {
if (null != ansBill.getTaxRate()) {
recordDto.setTaxRate(ansBill.getTaxRate().toString());
}
}
}
}
wmsInventoryRecordService.saveRecord(recordDto);

Loading…
Cancel
Save