diff --git a/yxt-as/src/main/java/com/yxt/anrui/as/api/asbusrepairbillsitemrepairer/AsBusrepairBillSitemRepairer.java b/yxt-as/src/main/java/com/yxt/anrui/as/api/asbusrepairbillsitemrepairer/AsBusrepairBillSitemRepairer.java index 62e14129ba..45c4a80a46 100644 --- a/yxt-as/src/main/java/com/yxt/anrui/as/api/asbusrepairbillsitemrepairer/AsBusrepairBillSitemRepairer.java +++ b/yxt-as/src/main/java/com/yxt/anrui/as/api/asbusrepairbillsitemrepairer/AsBusrepairBillSitemRepairer.java @@ -5,6 +5,7 @@ import com.yxt.common.core.domain.BaseEntity; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Data; +import org.apache.poi.hpsf.Decimal; import java.math.BigDecimal; @@ -30,6 +31,8 @@ public class AsBusrepairBillSitemRepairer extends BaseEntity { private String groupSid; @ApiModelProperty("所在班组名称") private String groupName; + @ApiModelProperty("维修提成") + private BigDecimal commission; diff --git a/yxt-as/src/main/java/com/yxt/anrui/as/biz/asbusrepairbill/AsBusrepairBillService.java b/yxt-as/src/main/java/com/yxt/anrui/as/biz/asbusrepairbill/AsBusrepairBillService.java index 8f724dfa7e..01fd0bc38a 100644 --- a/yxt-as/src/main/java/com/yxt/anrui/as/biz/asbusrepairbill/AsBusrepairBillService.java +++ b/yxt-as/src/main/java/com/yxt/anrui/as/biz/asbusrepairbill/AsBusrepairBillService.java @@ -45,6 +45,7 @@ import com.yxt.anrui.as.biz.asbusrepairbillsitemrepairer.AsBusrepairBillSitemRep import com.yxt.anrui.as.biz.asbusrepairbillvech.AsBusrepairBillVechService; import com.yxt.anrui.as.biz.asbusrepairinventorybilldetail.AsBusrepairInventorybillDetailService; import com.yxt.anrui.as.biz.asserviceitem.AsServiceItemService; +import com.yxt.anrui.as.biz.astechtitledetail.AsTechTitleDetailService; import com.yxt.anrui.as.biz.astrackbill.AsTrackBillService; import com.yxt.anrui.as.feign.crm.CrmCustomerTemp; import com.yxt.anrui.as.feign.crm.CrmCustomerTempFeign; @@ -150,6 +151,9 @@ public class AsBusrepairBillService extends MybatisBaseService goodsDetails = asBusrepairInventorybillDetailService.getGoodsDetailsByBillSid(sid); - DecimalFormat df2 =new DecimalFormat("#.00"); + DecimalFormat df2 = new DecimalFormat("#.00"); if (!goodsDetails.isEmpty()) { for (AsBusrepairInventorybillDetail goodsDetail : goodsDetails) { GoodsDetailsVo goodsDetailsVo = new GoodsDetailsVo(); @@ -1067,7 +1071,7 @@ public class AsBusrepairBillService extends MybatisBaseService page = PagerUtil.queryToPage(pagerQuery); IPage pagging = baseMapper.listPage(page, qw); @@ -1193,11 +1197,11 @@ public class AsBusrepairBillService extends MybatisBaseService wrapper.like("b.billNo", query.getName()).or().like("b.billType", query.getName()).or().like("b.subject", query.getName()).or().like("b.customerName", query.getName()).or().like("v.vinNo", query.getName()).or().like("v.vehMark", query.getName()).or().like("b.nodeName", query.getName())); } - qw.eq("b.outDoorState",2); - qw.eq("b.isOutFactory",0); + qw.eq("b.outDoorState", 2); + qw.eq("b.isOutFactory", 0); qw.orderByDesc("b.createTime"); IPage page = PagerUtil.queryToPage(pagerQuery); IPage pagging = baseMapper.listPage(page, qw); @@ -1438,6 +1442,54 @@ public class AsBusrepairBillService extends MybatisBaseService sitems = asBusrepairBillSitemService.fetchByBillSid(sid); + if (sitems != null) { + if (!sitems.isEmpty()) { + for (AsBusrepairBillSitem sitem : sitems) { + BigDecimal examineHourPrice = BigDecimal.ZERO; + if (null != sitem.getExamineHourPrice()) { + examineHourPrice = sitem.getExamineHourPrice(); + } + if (examineHourPrice.compareTo(BigDecimal.ZERO) > 0) { + String billSid = sitem.getBillSid(); + String serviceItemSid = sitem.getServiceItemSid(); + List repairers = asBusrepairBillSitemRepairerService.fetchByBillSid(billSid, serviceItemSid); + if (null != repairers) { + if (!repairers.isEmpty()) { + //查询权重之和 + BigDecimal sum = BigDecimal.ZERO; + Map map = new HashMap<>(); + for (AsBusrepairBillSitemRepairer repairer : repairers) { + String rSid = repairer.getSid(); + String pSid = repairer.getRepairerSid(); + BigDecimal weight = BigDecimal.ZERO; + String w = asTechTitleDetailService.selWeightByUserSid(pSid); + if (StringUtils.isNotBlank(w)) { + weight = new BigDecimal(w); + } + sum = sum.add(weight); + map.put(rSid,weight); + } + if (sum.compareTo(BigDecimal.ZERO) > 0) { + if (map.size() > 0) { + for (Map.Entry entry : map.entrySet()) { + String mSid = entry.getKey(); + BigDecimal mWeight = entry.getValue(); + AsBusrepairBillSitemRepairer repairer = asBusrepairBillSitemRepairerService.fetchBySid(mSid); + BigDecimal finalWeight = mWeight.divide(sum, 2, BigDecimal.ROUND_HALF_UP).multiply(examineHourPrice); + repairer.setCommission(finalWeight); + asBusrepairBillSitemRepairerService.updateById(repairer); + } + } + } + } + } + } + } + } + } + if (asBusrepairBill.getSubject().equals("保内")) { if (asBusrepairBill.getOldIsReclaim() != 1) { return rb.setMsg("请先完成旧件入库,再进行操作!"); @@ -2127,6 +2179,7 @@ public class AsBusrepairBillService extends MybatisBaseService notConfirmList(PagerQuery pagerQuery) { GoodsReceiveQuery query = pagerQuery.getParams(); QueryWrapper qw = new QueryWrapper<>(); @@ -2311,13 +2364,13 @@ public class AsBusrepairBillService extends MybatisBaseService dataMap = new HashMap(); List> list = new ArrayList<>(); @@ -2356,9 +2409,9 @@ public class AsBusrepairBillService extends MybatisBaseService defaultIdReltBean = sysUserFeign.selectPrivilegeLevel(privilegeQuery); - if (com.yxt.common.base.utils.StringUtils.isNotBlank(defaultIdReltBean.getData())) { - //数据权限ID(1集团、2事业部、3分公司、4部门、5个人) - String orgSidPath = query.getOrgPath(); - orgSidPath = orgSidPath + "/"; - int i1 = orgSidPath.indexOf("/"); - int i2 = orgSidPath.indexOf("/", i1 + 1); - int i3 = orgSidPath.indexOf("/", i2 + 1); - int i4 = orgSidPath.indexOf("/", i3 + 1); - String orgLevelKey = defaultIdReltBean.getData(); - if ("1".equals(orgLevelKey)) { - orgSidPath = orgSidPath.substring(0, i1); - qw.like("s.orgSidPath", orgSidPath); - } else if ("2".equals(orgLevelKey)) { - orgSidPath = orgSidPath.substring(0, i2); - qw.like("s.orgSidPath", orgSidPath); - } else if ("3".equals(orgLevelKey)) { - orgSidPath = orgSidPath.substring(0, i3); - qw.like("s.orgSidPath", orgSidPath); - } else if ("4".equals(orgLevelKey)) { - orgSidPath = orgSidPath.substring(0, i4); - qw.like("s.orgSidPath", orgSidPath); - } else if ("5".equals(orgLevelKey)) { + if (com.yxt.common.base.utils.StringUtils.isNotBlank(defaultIdReltBean.getData())) { + //数据权限ID(1集团、2事业部、3分公司、4部门、5个人) + String orgSidPath = query.getOrgPath(); + orgSidPath = orgSidPath + "/"; + int i1 = orgSidPath.indexOf("/"); + int i2 = orgSidPath.indexOf("/", i1 + 1); + int i3 = orgSidPath.indexOf("/", i2 + 1); + int i4 = orgSidPath.indexOf("/", i3 + 1); + String orgLevelKey = defaultIdReltBean.getData(); + if ("1".equals(orgLevelKey)) { + orgSidPath = orgSidPath.substring(0, i1); + qw.like("s.orgSidPath", orgSidPath); + } else if ("2".equals(orgLevelKey)) { + orgSidPath = orgSidPath.substring(0, i2); + qw.like("s.orgSidPath", orgSidPath); + } else if ("3".equals(orgLevelKey)) { + orgSidPath = orgSidPath.substring(0, i3); + qw.like("s.orgSidPath", orgSidPath); + } else if ("4".equals(orgLevelKey)) { + orgSidPath = orgSidPath.substring(0, i4); + qw.like("s.orgSidPath", orgSidPath); + } else if ("5".equals(orgLevelKey)) { qw.eq("a.createBySid", query.getUserSid()); - } else { - PagerVo p = new PagerVo<>(); - return p; - } } else { PagerVo p = new PagerVo<>(); return p; } + } else { + PagerVo p = new PagerVo<>(); + return p; + } if (com.yxt.common.base.utils.StringUtils.isNotBlank(query.getName())) { qw.and(wrapper -> wrapper.like("a.billNo", query.getName()) .or().like("a.billType", query.getName()) @@ -2481,7 +2534,7 @@ public class AsBusrepairBillService extends MybatisBaseService page = PagerUtil.queryToPage(pq); IPage pagging = baseMapper.appRepairs(page, qw); diff --git a/yxt-as/src/main/java/com/yxt/anrui/as/biz/astechtitledetail/AsTechTitleDetailMapper.java b/yxt-as/src/main/java/com/yxt/anrui/as/biz/astechtitledetail/AsTechTitleDetailMapper.java index 64f88064f6..09df91dbcb 100644 --- a/yxt-as/src/main/java/com/yxt/anrui/as/biz/astechtitledetail/AsTechTitleDetailMapper.java +++ b/yxt-as/src/main/java/com/yxt/anrui/as/biz/astechtitledetail/AsTechTitleDetailMapper.java @@ -31,6 +31,7 @@ import com.yxt.anrui.as.api.astechtitledetail.AsTechTitleInit; import org.apache.ibatis.annotations.Delete; import org.apache.ibatis.annotations.Mapper; import com.yxt.anrui.as.api.astechtitledetail.AsTechTitleDetail; +import org.apache.ibatis.annotations.Param; import org.apache.ibatis.annotations.Select; import java.util.List; @@ -58,4 +59,6 @@ public interface AsTechTitleDetailMapper extends BaseMapper { List selByMainSid(String mainSid); AsTechTitleInit selByTechSid(String titleSid); -} \ No newline at end of file + + String selWeightByUserSid(@Param("pSid") String pSid); +} diff --git a/yxt-as/src/main/java/com/yxt/anrui/as/biz/astechtitledetail/AsTechTitleDetailMapper.xml b/yxt-as/src/main/java/com/yxt/anrui/as/biz/astechtitledetail/AsTechTitleDetailMapper.xml index 87e8145e18..0c02b86718 100644 --- a/yxt-as/src/main/java/com/yxt/anrui/as/biz/astechtitledetail/AsTechTitleDetailMapper.xml +++ b/yxt-as/src/main/java/com/yxt/anrui/as/biz/astechtitledetail/AsTechTitleDetailMapper.xml @@ -34,4 +34,14 @@ ) AND titleSid = #{titleSid}) AS a - \ No newline at end of file + + diff --git a/yxt-as/src/main/java/com/yxt/anrui/as/biz/astechtitledetail/AsTechTitleDetailService.java b/yxt-as/src/main/java/com/yxt/anrui/as/biz/astechtitledetail/AsTechTitleDetailService.java index 2882b8cf30..21c65a74fd 100644 --- a/yxt-as/src/main/java/com/yxt/anrui/as/biz/astechtitledetail/AsTechTitleDetailService.java +++ b/yxt-as/src/main/java/com/yxt/anrui/as/biz/astechtitledetail/AsTechTitleDetailService.java @@ -57,7 +57,7 @@ import java.util.List; */ @Service public class AsTechTitleDetailService extends MybatisBaseService { - + public void insertByDto(AsTechTitleDetailDto dto){ AsTechTitleDetail entity = new AsTechTitleDetail(); BeanUtil.copyProperties(dto, entity, "id", "sid"); @@ -67,7 +67,7 @@ public class AsTechTitleDetailService extends MybatisBaseService { List selJJByDeptSidAndRackSid(@Param("deptSid") String deptSid,@Param("rackSids") List rackSids); List selJJByDeptSid(String deptSid); + + WmsInventory selbyGoodsId(@Param("goodsID") String goodsID); } diff --git a/yxt-wms-biz/src/main/java/com/yxt/wms/biz/inventory/wmsinventory/WmsInventoryMapper.xml b/yxt-wms-biz/src/main/java/com/yxt/wms/biz/inventory/wmsinventory/WmsInventoryMapper.xml index 945746f09a..6ee6f7d049 100644 --- a/yxt-wms-biz/src/main/java/com/yxt/wms/biz/inventory/wmsinventory/WmsInventoryMapper.xml +++ b/yxt-wms-biz/src/main/java/com/yxt/wms/biz/inventory/wmsinventory/WmsInventoryMapper.xml @@ -619,4 +619,7 @@ AND wwi.warehouseTypeKey = '02' AND RIGHT(wi.`goodsID`,2) = '-O' + diff --git a/yxt-wms-biz/src/main/java/com/yxt/wms/biz/inventory/wmsinventory/WmsInventoryService.java b/yxt-wms-biz/src/main/java/com/yxt/wms/biz/inventory/wmsinventory/WmsInventoryService.java index ad9a7d3172..f03b54e703 100644 --- a/yxt-wms-biz/src/main/java/com/yxt/wms/biz/inventory/wmsinventory/WmsInventoryService.java +++ b/yxt-wms-biz/src/main/java/com/yxt/wms/biz/inventory/wmsinventory/WmsInventoryService.java @@ -978,4 +978,8 @@ public class WmsInventoryService extends MybatisBaseService selJJByDeptSid(String deptSid) { return baseMapper.selJJByDeptSid(deptSid); } + + public WmsInventory selbyGoodsId(String goodsID) { + return baseMapper.selbyGoodsId(goodsID); + } } diff --git a/yxt-wms-biz/src/main/java/com/yxt/wms/biz/inventory/wmsinventoryrecord/InventoryRecordDto.java b/yxt-wms-biz/src/main/java/com/yxt/wms/biz/inventory/wmsinventoryrecord/InventoryRecordDto.java new file mode 100644 index 0000000000..9cdec42286 --- /dev/null +++ b/yxt-wms-biz/src/main/java/com/yxt/wms/biz/inventory/wmsinventoryrecord/InventoryRecordDto.java @@ -0,0 +1,92 @@ +package com.yxt.wms.biz.inventory.wmsinventoryrecord; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +/** + * @author Fan + * @description + * @date 2024/10/30 10:19 + */ +@Data +public class InventoryRecordDto { + + private String sid; // sid + + @ApiModelProperty("库存sid") + private String inventorySid; // 库存sid + @ApiModelProperty("创建人sid") + private String createBySid; // 商品ID + @ApiModelProperty("商品ID") + private String goodsID; // 商品ID + @ApiModelProperty("来源单sid(业务单sid)") + private String sourceBillSid; // 来源单sid(业务单sid) + @ApiModelProperty("来源单据编号") + private String billNo; // 来源单据编号 + @ApiModelProperty("单据类型(1入库、0出库)") + private String billType; // 单据类型(1入库、0出库) + @ApiModelProperty("业务类型key(采购入库、维修出入库、销售出入库等)") + private String busTypeKey; // 业务类型key(采购入库、维修出入库、销售出入库等) + @ApiModelProperty("业务类型value(采购入库、调拨入库、退货入库、盘盈入库等销售出库、调拨出库、采购退货出库、报损出库、盘亏出库等)") + private String busTypeValue; // 业务类型value(采购入库、调拨入库、退货入库、盘盈入库等销售出库、调拨出库、采购退货出库、报损出库、盘亏出库等) + @ApiModelProperty("批次号") + private String batchNumber; // 批次号 + @ApiModelProperty("商品基础信息Sid") + private String goodsSpuSid; // 商品基础信息Sid + @ApiModelProperty("商品名称") + private String goodsSpuName; // 商品名称 + @ApiModelProperty("商品Skusid") + private String goodsSkuSid; // 商品Skusid + @ApiModelProperty("商品Sku名称") + private String goodsSkuTitle; // 商品Sku名称 + @ApiModelProperty("商品编码(图号)") + private String goodsSkuCode; // 商品编码(图号) + @ApiModelProperty("规格型号") + private String goodsSkuOwnSpec; // 规格型号 +// @ApiModelProperty("出入库后的库存量") +// private String currentCount; // 出入库后的库存量 + @ApiModelProperty("计量单位") + private String unit; // 计量单位 + @ApiModelProperty("数量") + private String count; // 数量 + @ApiModelProperty("仓库sid") + private String warehouseSid; // 仓库sid + @ApiModelProperty("仓库名称") + private String warehouseName; // 仓库名称 + @ApiModelProperty("库位sid") + private String warehouseRackSid; // 库位sid + @ApiModelProperty("库位编号") + private String warehouseRackCode; // 库位编号 + @ApiModelProperty("入库单价") + private String cost; + @ApiModelProperty("税率") + private String taxRate; + @ApiModelProperty("入库金额") + private String amount; + @ApiModelProperty("经办人sid") + private String handlerSid; // 库位sid + @ApiModelProperty("经办人") + private String handlerName; // 库位编号 + @ApiModelProperty("创建组织sid") + private String createOrgSid; + @ApiModelProperty("使用组织sid") + private String useOrgSid; + @ApiModelProperty("厂家订单号") + private String manufactorBillNo; + + @ApiModelProperty("销售指导价") + private String guidPrice; + @ApiModelProperty("客户/供应商sid,出库是为客户,入库时为供应商") + private String supplierSid; + @ApiModelProperty("客户/供应商名称") + private String supplierName; + @ApiModelProperty("厂家名称") + private String manufacturerName; + @ApiModelProperty("厂家sid") + private String manufacturerSid; + @ApiModelProperty("前一单据明细sid(溯源使用)") + private String preBillSid; + @ApiModelProperty("前一单编号") + private String preBillNo; + +} diff --git a/yxt-wms-biz/src/main/java/com/yxt/wms/biz/inventory/wmsinventoryrecord/WmsInventoryRecordService.java b/yxt-wms-biz/src/main/java/com/yxt/wms/biz/inventory/wmsinventoryrecord/WmsInventoryRecordService.java index 35c92a3d53..24824ee309 100644 --- a/yxt-wms-biz/src/main/java/com/yxt/wms/biz/inventory/wmsinventoryrecord/WmsInventoryRecordService.java +++ b/yxt-wms-biz/src/main/java/com/yxt/wms/biz/inventory/wmsinventoryrecord/WmsInventoryRecordService.java @@ -370,4 +370,58 @@ public class WmsInventoryRecordService extends MybatisBaseService