chengf
2026-03-24 b2358fc44148073645def4e723c8153a98a701da
导入测试
12个文件已修改
7个文件已添加
2296 ■■■■ 已修改文件
java110-bean/src/main/java/com/java110/dto/importData/ImportResourceStoreDto.java 153 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
java110-bean/src/main/java/com/java110/dto/resource/ResourceStoreDto.java 410 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
java110-bean/src/main/java/com/java110/po/purchase/DeliveryStorageRecord.java 87 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
java110-bean/src/main/java/com/java110/po/purchase/PurchaseApplyDetailPo.java 272 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
java110-bean/src/main/java/com/java110/po/purchase/PurchaseApplyPo.java 151 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
java110-bean/src/main/java/com/java110/po/purchase/PurchasePaymentRecord.java 77 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
java110-bean/src/main/java/com/java110/po/purchase/PurchaseReturnRecord.java 84 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
java110-bean/src/main/java/com/java110/po/purchase/ResourceStorePo.java 316 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
java110-db/src/main/resources/mapper/store/DeliveryStorageRecordServiceDaoImplMapper.xml 28 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
java110-db/src/main/resources/mapper/store/PurchaseApplyServiceDaoImplMapper.xml 50 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
java110-db/src/main/resources/mapper/store/PurchasePaymentRecordServiceDaoImplMapper.xml 25 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
java110-db/src/main/resources/mapper/store/PurchaseReturnRecordServiceDaoImpl.xml 24 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
java110-db/src/main/resources/mapper/store/ResourceStoreV1ServiceDaoImplMapper.xml 26 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
service-api/src/main/java/com/java110/api/importData/adapt/ImportPropertyWhiteListfFlowAdapt.java 8 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
service-api/src/main/java/com/java110/api/smo/assetImport/impl/ImportResourceStoreSMOImpl.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
service-api/src/main/java/com/java110/api/smo/assetImport/impl/ImportResourceStoreV2SMOImpl.java 516 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
service-store/src/main/java/com/java110/store/cmd/resourceStore/ImportResourceStoreCmd.java 37 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
service-store/src/main/java/com/java110/store/cmd/resourceStore/ListResourceStoresCmd.java 12 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
service-store/src/main/java/com/java110/store/smo/impl/PurchaseApplyInnerServiceSMOImpl.java 18 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
java110-bean/src/main/java/com/java110/dto/importData/ImportResourceStoreDto.java
@@ -1,16 +1,21 @@
package com.java110.dto.importData;
import com.java110.dto.purchase.PurchaseApplyDto;
import lombok.Data;
import java.io.Serializable;
@Data
public class ImportResourceStoreDto implements Serializable {
    private String resId;
    private String communityId;
    private String communityName;
    private String shId;
    private String resName;
    private String resCode;
    private String outLowPrice;
    private String outHighPrice;
@@ -26,116 +31,60 @@
    private String rstName;
    public String getCommunityId() {
        return communityId;
    }
    public void setCommunityId(String communityId) {
        this.communityId = communityId;
    }
    public String getShId() {
        return shId;
    }
    public void setShId(String shId) {
        this.shId = shId;
    }
    public String getResName() {
        return resName;
    }
    public void setResName(String resName) {
        this.resName = resName;
    }
    public String getUnitCode() {
        return unitCode;
    }
    public void setUnitCode(String unitCode) {
        this.unitCode = unitCode;
    }
    public String getPrice() {
        return price;
    }
    public void setPrice(String price) {
        this.price = price;
    }
    public String getStock() {
        return stock;
    }
    public void setStock(String stock) {
        this.stock = stock;
    }
    public String getRemark() {
        return remark;
    }
    public void setRemark(String remark) {
        this.remark = remark;
    }
    public String getAmount() {
        return amount;
    }
    public void setAmount(String amount) {
        this.amount = amount;
    }
    public String getRstName() {
        return rstName;
    }
    public void setRstName(String rstName) {
        this.rstName = rstName;
    }
    private String tripleWaybillNo;
    private String systemName;
    private String model;
    private String brand;
    private String supplier;
    public String getResCode() {
        return resCode;
    }
    private String budgetApproval; // 预决算部审批
    private String budgetQuantity; // 预算数量
    private String budgetUnitPrice; // 预算单价1(预算部给)
    private String budgetAmount; // 预算金额
    private String applyQuantityTotal; // 申请数量合计
    private String purchaseQuantityTotal; // 采购数量合计
    private String actualDeliveryQuantity; // 实际送货数量
    private String payableAmountTotal; // 应付金额合计
    private String paidAmountTotal; // 已付金额合计
    private String unpaidAmountTotal; // 未付金额合计
    private String isOccurred; // 未发生
    public void setResCode(String resCode) {
        this.resCode = resCode;
    }
    public String getOutLowPrice() {
        return outLowPrice;
    }
    /**
     * 应付金额
     */
    private String payableAmount;
    public void setOutLowPrice(String outLowPrice) {
        this.outLowPrice = outLowPrice;
    }
    /**
     * 已付金额
     */
    private String paidAmount;
    public String getOutHighPrice() {
        return outHighPrice;
    }
    /**
     * 未付金额
     */
    private String unpaidAmount;
    public void setOutHighPrice(String outHighPrice) {
        this.outHighPrice = outHighPrice;
    }
    public String getWarningStock() {
        return warningStock;
    }
    /**
     * 退库数量合计(适配非数值脏数据)
     */
    private String totalReturnQuantity;
    public void setWarningStock(String warningStock) {
        this.warningStock = warningStock;
    }
    /**
     * 供应商1(格式:名称|联系人|电话,适配脏数据)
     */
    private String supplier1;
    public String getIsFixed() {
        return isFixed;
    }
    /**
     * 供应商2(格式:名称|联系人|电话,适配脏数据)
     */
    private String supplier2;
    public void setIsFixed(String isFixed) {
        this.isFixed = isFixed;
    }
    /**
     * 供应商3(格式:名称|联系人|电话,适配脏数据)
     */
    private String supplier3;
}
java110-bean/src/main/java/com/java110/dto/resource/ResourceStoreDto.java
@@ -1,6 +1,7 @@
package com.java110.dto.resource;
import com.java110.dto.PageDto;
import lombok.Data;
import java.io.Serializable;
import java.util.Date;
@@ -15,6 +16,7 @@
 * @Version 1.0
 * add by wuxw 2019/4/24
 **/
@Data
public class ResourceStoreDto extends PageDto implements Serializable {
    //物品名称(用来做模糊查询)
    private String resName;
@@ -81,12 +83,76 @@
    private List<ResourceStoreTimesDto> times;
    private String tripleWaybillNo;
    private String systemName;
    private String model;
    private String brand;
    private String supplier;
    private String budgetApproval; // 预决算部审批
    private String budgetQuantity; // 预算数量
    private String budgetUnitPrice; // 预算单价1(预算部给)
    private String budgetAmount; // 预算金额
    private String applyQuantityTotal; // 申请数量合计
    private String purchaseQuantityTotal; // 采购数量合计
    private String actualDeliveryQuantity; // 实际送货数量
    private String payableAmountTotal; // 应付金额合计
    private String paidAmountTotal; // 已付金额合计
    private String unpaidAmountTotal; // 未付金额合计
    private String isOccurred; // 未发生
    /**
     * 应付金额
     */
    private String payableAmount;
    /**
     * 已付金额
     */
    private String paidAmount;
    /**
     * 未付金额
     */
    private String unpaidAmount;
    /**
     * 退库数量合计(适配非数值脏数据)
     */
    private String totalReturnQuantity;
    /**
     * 供应商1(格式:名称|联系人|电话,适配脏数据)
     */
    private String supplier1;
    /**
     * 供应商2(格式:名称|联系人|电话,适配脏数据)
     */
    private String supplier2;
    /**
     * 供应商3(格式:名称|联系人|电话,适配脏数据)
     */
    private String supplier3;
    public String getResName() {
        return resName;
    }
    public void setResName(String resName) {
        this.resName = resName;
    }
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
    public String getPrice() {
@@ -103,6 +169,22 @@
    public void setResCode(String resCode) {
        this.resCode = resCode;
    }
    public String getResCodeLike() {
        return resCodeLike;
    }
    public void setResCodeLike(String resCodeLike) {
        this.resCodeLike = resCodeLike;
    }
    public String[] getResCodes() {
        return resCodes;
    }
    public void setResCodes(String[] resCodes) {
        this.resCodes = resCodes;
    }
    public String getDescription() {
@@ -129,28 +211,20 @@
        this.stock = stock;
    }
    public String getbId() {
        return bId;
    }
    public void setbId(String bId) {
        this.bId = bId;
    }
    public String getResId() {
        return resId;
    }
    public void setResId(String resId) {
        this.resId = resId;
    }
    public Date getCreateTime() {
        return createTime;
    }
    public void setCreateTime(Date createTime) {
        this.createTime = createTime;
    }
    public String getStatusCd() {
        return statusCd;
    }
    public void setStatusCd(String statusCd) {
        this.statusCd = statusCd;
    }
    public String getResOrderType() {
@@ -167,6 +241,14 @@
    public void setUnitCode(String unitCode) {
        this.unitCode = unitCode;
    }
    public String getUnitCodeName() {
        return unitCodeName;
    }
    public void setUnitCodeName(String unitCodeName) {
        this.unitCodeName = unitCodeName;
    }
    public String getRemark() {
@@ -209,28 +291,12 @@
        this.showMobile = showMobile;
    }
    public List<String> getFileUrls() {
        return fileUrls;
    }
    public void setFileUrls(List<String> fileUrls) {
        this.fileUrls = fileUrls;
    }
    public String getShId() {
        return shId;
    }
    public void setShId(String shId) {
        this.shId = shId;
    }
    public String getShName() {
        return shName;
    }
    public void setShName(String shName) {
        this.shName = shName;
    }
    public String getWarningStock() {
@@ -249,12 +315,20 @@
        this.averagePrice = averagePrice;
    }
    public String getName() {
        return name;
    public List<String> getFileUrls() {
        return fileUrls;
    }
    public void setName(String name) {
        this.name = name;
    public void setFileUrls(List<String> fileUrls) {
        this.fileUrls = fileUrls;
    }
    public Date getCreateTime() {
        return createTime;
    }
    public void setCreateTime(Date createTime) {
        this.createTime = createTime;
    }
    public String getRstId() {
@@ -271,6 +345,22 @@
    public void setRstName(String rstName) {
        this.rstName = rstName;
    }
    public String getStatusCd() {
        return statusCd;
    }
    public void setStatusCd(String statusCd) {
        this.statusCd = statusCd;
    }
    public String getShName() {
        return shName;
    }
    public void setShName(String shName) {
        this.shName = shName;
    }
    public String getRssId() {
@@ -297,14 +387,6 @@
        this.totalPrice = totalPrice;
    }
    public String getbId() {
        return bId;
    }
    public void setbId(String bId) {
        this.bId = bId;
    }
    public String getMiniUnitCode() {
        return miniUnitCode;
    }
@@ -313,28 +395,20 @@
        this.miniUnitCode = miniUnitCode;
    }
    public String getMiniUnitStock() {
        return miniUnitStock;
    }
    public void setMiniUnitStock(String miniUnitStock) {
        this.miniUnitStock = miniUnitStock;
    }
    public String getUnitCodeName() {
        return unitCodeName;
    }
    public void setUnitCodeName(String unitCodeName) {
        this.unitCodeName = unitCodeName;
    }
    public String getMiniUnitCodeName() {
        return miniUnitCodeName;
    }
    public void setMiniUnitCodeName(String miniUnitCodeName) {
        this.miniUnitCodeName = miniUnitCodeName;
    }
    public String getMiniUnitStock() {
        return miniUnitStock;
    }
    public void setMiniUnitStock(String miniUnitStock) {
        this.miniUnitStock = miniUnitStock;
    }
    public String getMiniStock() {
@@ -385,28 +459,12 @@
        this.isFixedName = isFixedName;
    }
    public List<ResourceStoreTimesDto> getTimes() {
        return times;
    public String getTimesId() {
        return timesId;
    }
    public void setTimes(List<ResourceStoreTimesDto> times) {
        this.times = times;
    }
    public String[] getResCodes() {
        return resCodes;
    }
    public void setResCodes(String[] resCodes) {
        this.resCodes = resCodes;
    }
    public String getResCodeLike() {
        return resCodeLike;
    }
    public void setResCodeLike(String resCodeLike) {
        this.resCodeLike = resCodeLike;
    public void setTimesId(String timesId) {
        this.timesId = timesId;
    }
    public String getCommunityId() {
@@ -417,11 +475,195 @@
        this.communityId = communityId;
    }
    public String getTimesId() {
        return timesId;
    public List<ResourceStoreTimesDto> getTimes() {
        return times;
    }
    public void setTimesId(String timesId) {
        this.timesId = timesId;
    public void setTimes(List<ResourceStoreTimesDto> times) {
        this.times = times;
    }
    public String getTripleWaybillNo() {
        return tripleWaybillNo;
    }
    public void setTripleWaybillNo(String tripleWaybillNo) {
        this.tripleWaybillNo = tripleWaybillNo;
    }
    public String getSystemName() {
        return systemName;
    }
    public void setSystemName(String systemName) {
        this.systemName = systemName;
    }
    public String getModel() {
        return model;
    }
    public void setModel(String model) {
        this.model = model;
    }
    public String getBrand() {
        return brand;
    }
    public void setBrand(String brand) {
        this.brand = brand;
    }
    public String getSupplier() {
        return supplier;
    }
    public void setSupplier(String supplier) {
        this.supplier = supplier;
    }
    public String getBudgetApproval() {
        return budgetApproval;
    }
    public void setBudgetApproval(String budgetApproval) {
        this.budgetApproval = budgetApproval;
    }
    public String getBudgetQuantity() {
        return budgetQuantity;
    }
    public void setBudgetQuantity(String budgetQuantity) {
        this.budgetQuantity = budgetQuantity;
    }
    public String getBudgetUnitPrice() {
        return budgetUnitPrice;
    }
    public void setBudgetUnitPrice(String budgetUnitPrice) {
        this.budgetUnitPrice = budgetUnitPrice;
    }
    public String getBudgetAmount() {
        return budgetAmount;
    }
    public void setBudgetAmount(String budgetAmount) {
        this.budgetAmount = budgetAmount;
    }
    public String getApplyQuantityTotal() {
        return applyQuantityTotal;
    }
    public void setApplyQuantityTotal(String applyQuantityTotal) {
        this.applyQuantityTotal = applyQuantityTotal;
    }
    public String getPurchaseQuantityTotal() {
        return purchaseQuantityTotal;
    }
    public void setPurchaseQuantityTotal(String purchaseQuantityTotal) {
        this.purchaseQuantityTotal = purchaseQuantityTotal;
    }
    public String getActualDeliveryQuantity() {
        return actualDeliveryQuantity;
    }
    public void setActualDeliveryQuantity(String actualDeliveryQuantity) {
        this.actualDeliveryQuantity = actualDeliveryQuantity;
    }
    public String getPayableAmountTotal() {
        return payableAmountTotal;
    }
    public void setPayableAmountTotal(String payableAmountTotal) {
        this.payableAmountTotal = payableAmountTotal;
    }
    public String getPaidAmountTotal() {
        return paidAmountTotal;
    }
    public void setPaidAmountTotal(String paidAmountTotal) {
        this.paidAmountTotal = paidAmountTotal;
    }
    public String getUnpaidAmountTotal() {
        return unpaidAmountTotal;
    }
    public void setUnpaidAmountTotal(String unpaidAmountTotal) {
        this.unpaidAmountTotal = unpaidAmountTotal;
    }
    public String getIsOccurred() {
        return isOccurred;
    }
    public void setIsOccurred(String isOccurred) {
        this.isOccurred = isOccurred;
    }
    public String getPayableAmount() {
        return payableAmount;
    }
    public void setPayableAmount(String payableAmount) {
        this.payableAmount = payableAmount;
    }
    public String getPaidAmount() {
        return paidAmount;
    }
    public void setPaidAmount(String paidAmount) {
        this.paidAmount = paidAmount;
    }
    public String getUnpaidAmount() {
        return unpaidAmount;
    }
    public void setUnpaidAmount(String unpaidAmount) {
        this.unpaidAmount = unpaidAmount;
    }
    public String getTotalReturnQuantity() {
        return totalReturnQuantity;
    }
    public void setTotalReturnQuantity(String totalReturnQuantity) {
        this.totalReturnQuantity = totalReturnQuantity;
    }
    public String getSupplier1() {
        return supplier1;
    }
    public void setSupplier1(String supplier1) {
        this.supplier1 = supplier1;
    }
    public String getSupplier2() {
        return supplier2;
    }
    public void setSupplier2(String supplier2) {
        this.supplier2 = supplier2;
    }
    public String getSupplier3() {
        return supplier3;
    }
    public void setSupplier3(String supplier3) {
        this.supplier3 = supplier3;
    }
}
java110-bean/src/main/java/com/java110/po/purchase/DeliveryStorageRecord.java
New file
@@ -0,0 +1,87 @@
package com.java110.po.purchase;
import lombok.Data;
import java.io.Serializable;
/**
 * 送货入库出库记录表实体类
 * 适配全VARCHAR字段,兼容脏数据
 */
@Data
public class DeliveryStorageRecord implements Serializable {
    private static final long serialVersionUID = 1L;
    public DeliveryStorageRecord(String id, String deliveryOrderNo, String deliveryQuantity, String deliveryDate, String signer, String warehousingOrderNo, String warehousingDate, String outboundOrderNo, String outboundDate, String applyOrderId) {
        this.id = id;
        this.deliveryOrderNo = deliveryOrderNo;
        this.deliveryQuantity = deliveryQuantity;
        this.deliveryDate = deliveryDate;
        this.signer = signer;
        this.warehousingOrderNo = warehousingOrderNo;
        this.warehousingDate = warehousingDate;
        this.outboundOrderNo = outboundOrderNo;
        this.outboundDate = outboundDate;
        this.applyOrderId = applyOrderId;
    }
    /**
     * 主键ID
     */
    private String id;
    /**
     * 送货单号
     */
    private String deliveryOrderNo;
    /**
     * 送货数量(适配非数值脏数据)
     */
    private String deliveryQuantity;
    /**
     * 送货日期(适配非标准日期)
     */
    private String deliveryDate;
    /**
     * 签收人
     */
    private String signer;
    /**
     * 入库单号
     */
    private String warehousingOrderNo;
    /**
     * 入库日期
     */
    private String warehousingDate;
    /**
     * 出库单号
     */
    private String outboundOrderNo;
    /**
     * 出库日期
     */
    private String outboundDate;
    /**
     * 采购申请单ID(关联采购申请主表)
     */
    private String applyOrderId;
    /**
     * 创建时间
     */
    private String createTime;
    /**
     * 更新时间
     */
    private String updateTime;
}
java110-bean/src/main/java/com/java110/po/purchase/PurchaseApplyDetailPo.java
@@ -1,5 +1,7 @@
package com.java110.po.purchase;
import lombok.Data;
import java.io.Serializable;
/**
@@ -10,6 +12,7 @@
 * @Version 1.0
 * add by wuxw 2020/5/29
 **/
@Data
public class PurchaseApplyDetailPo implements Serializable {
    private String applyOrderId;
@@ -35,6 +38,139 @@
    private String shId;
    private String bId;
    /**
     * 采购日期二(适配非标准日期)
     */
    private String purchaseDate2;
    /**
     * 采购数量二(适配非数值脏数据)
     */
    private String purchaseQuantity2;
    /**
     * 采购日期三(适配非标准日期)
     */
    private String purchaseDate3;
    /**
     * 采购数量三(适配非数值脏数据)
     */
    private String purchaseQuantity3;
    /**
     * 第一次累计采购量(适配非数值脏数据)
     */
    private String firstCumulativePurchaseQuantity;
    /**
     * 采购日期(格式:YYYY-MM-DD,适配非标准日期)
     */
    private String purchaseDate;
    /**
     * 采购金额(适配带符号/单位的脏数据,如「1000元」「¥2000.50」)
     */
    private String purchaseAmount;
    /**
     * 采购人员(适配脏数据,如姓名/工号) // 新增采购人员字段
     */
    private String purchaser;
    /**
     * 合同编号
     */
    private String contractNo;
    /**
     * 主供应商名称
     */
    private String supplier;
    /**
     * 第一次累计送货量(适配非数值脏数据) // 新增字段
     */
    private String firstCumulativeDeliveryQuantity;
    /**
     * 送货单号
     */
    private String deliveryOrderNo;
    /**
     * 送货数量
     */
    private String deliveryQuantity;
    /**
     * 送货日期
     */
    private String deliveryDate;
    /**
     * 签收人
     */
    private String signer;
//    /**
//     * 应付金额
//     */
//    private String payableAmount;
//
//    /**
//     * 已付金额
//     */
//    private String paidAmount;
//
//    /**
//     * 未付金额
//     */
//    private String unpaidAmount;
//
//    /**
//     * 本次付款金额
//     */
//    private String paymentAmount;
//
//    /**
//     * 付款单号
//     */
//    private String paymentOrderNo;
//
//    /**
//     * 拟付日期
//     */
//    private String toBePaidDate;
//
//    /**
//     * 付款日期
//     */
//    private String paymentDate;
//
//    /**
//     * 发票编号
//     */
//    private String invoiceNo;
//
//    /**
//     * 供应商1(格式:名称|联系人|电话,适配脏数据)
//     */
//    private String supplier1;
//
//    /**
//     * 供应商2(格式:名称|联系人|电话,适配脏数据)
//     */
//    private String supplier2;
//
//    /**
//     * 供应商3(格式:名称|联系人|电话,适配脏数据)
//     */
//    private String supplier3;
    public String getApplyOrderId() {
        return applyOrderId;
@@ -76,6 +212,14 @@
        this.price = price;
    }
    public String getId() {
        return id;
    }
    public void setId(String id) {
        this.id = id;
    }
    public String getPurchaseQuantity() {
        return purchaseQuantity;
    }
@@ -90,14 +234,6 @@
    public void setPurchaseRemark(String purchaseRemark) {
        this.purchaseRemark = purchaseRemark;
    }
    public String getId() {
        return id;
    }
    public void setId(String id) {
        this.id = id;
    }
    public String getCreateTime() {
@@ -163,4 +299,124 @@
    public void setbId(String bId) {
        this.bId = bId;
    }
    public String getPurchaseDate2() {
        return purchaseDate2;
    }
    public void setPurchaseDate2(String purchaseDate2) {
        this.purchaseDate2 = purchaseDate2;
    }
    public String getPurchaseQuantity2() {
        return purchaseQuantity2;
    }
    public void setPurchaseQuantity2(String purchaseQuantity2) {
        this.purchaseQuantity2 = purchaseQuantity2;
    }
    public String getPurchaseDate3() {
        return purchaseDate3;
    }
    public void setPurchaseDate3(String purchaseDate3) {
        this.purchaseDate3 = purchaseDate3;
    }
    public String getPurchaseQuantity3() {
        return purchaseQuantity3;
    }
    public void setPurchaseQuantity3(String purchaseQuantity3) {
        this.purchaseQuantity3 = purchaseQuantity3;
    }
    public String getFirstCumulativePurchaseQuantity() {
        return firstCumulativePurchaseQuantity;
    }
    public void setFirstCumulativePurchaseQuantity(String firstCumulativePurchaseQuantity) {
        this.firstCumulativePurchaseQuantity = firstCumulativePurchaseQuantity;
    }
    public String getPurchaseDate() {
        return purchaseDate;
    }
    public void setPurchaseDate(String purchaseDate) {
        this.purchaseDate = purchaseDate;
    }
    public String getPurchaseAmount() {
        return purchaseAmount;
    }
    public void setPurchaseAmount(String purchaseAmount) {
        this.purchaseAmount = purchaseAmount;
    }
    public String getPurchaser() {
        return purchaser;
    }
    public void setPurchaser(String purchaser) {
        this.purchaser = purchaser;
    }
    public String getContractNo() {
        return contractNo;
    }
    public void setContractNo(String contractNo) {
        this.contractNo = contractNo;
    }
    public String getSupplier() {
        return supplier;
    }
    public void setSupplier(String supplier) {
        this.supplier = supplier;
    }
    public String getFirstCumulativeDeliveryQuantity() {
        return firstCumulativeDeliveryQuantity;
    }
    public void setFirstCumulativeDeliveryQuantity(String firstCumulativeDeliveryQuantity) {
        this.firstCumulativeDeliveryQuantity = firstCumulativeDeliveryQuantity;
    }
    public String getDeliveryOrderNo() {
        return deliveryOrderNo;
    }
    public void setDeliveryOrderNo(String deliveryOrderNo) {
        this.deliveryOrderNo = deliveryOrderNo;
    }
    public String getDeliveryQuantity() {
        return deliveryQuantity;
    }
    public void setDeliveryQuantity(String deliveryQuantity) {
        this.deliveryQuantity = deliveryQuantity;
    }
    public String getDeliveryDate() {
        return deliveryDate;
    }
    public void setDeliveryDate(String deliveryDate) {
        this.deliveryDate = deliveryDate;
    }
    public String getSigner() {
        return signer;
    }
    public void setSigner(String signer) {
        this.signer = signer;
    }
}
java110-bean/src/main/java/com/java110/po/purchase/PurchaseApplyPo.java
@@ -1,5 +1,7 @@
package com.java110.po.purchase;
import lombok.Data;
import java.io.Serializable;
import java.util.List;
@@ -11,6 +13,7 @@
 * @Version 1.0
 * add by wuxw 2020/5/29
 **/
@Data
public class PurchaseApplyPo implements Serializable {
    private String applyOrderId;
@@ -30,154 +33,14 @@
    private String createUserName;
    private String communityId;
    private String bId;
    private String applyNo;  // 申请编号
    private String applyDate;  // 申请日期
    private String approver; // 审批人
    private String applyQuantity;
    private String statusCd = "0";
    private ResourceStorePo[] resourceStores;
    List<PurchaseApplyDetailPo> purchaseApplyDetailPos;
    public String getApplyOrderId() {
        return applyOrderId;
    }
    public void setApplyOrderId(String applyOrderId) {
        this.applyOrderId = applyOrderId;
    }
    public String getStoreId() {
        return storeId;
    }
    public void setStoreId(String storeId) {
        this.storeId = storeId;
    }
    public String getUserId() {
        return userId;
    }
    public void setUserId(String userId) {
        this.userId = userId;
    }
    public String getUserName() {
        return userName;
    }
    public void setUserName(String userName) {
        this.userName = userName;
    }
    public String getDescription() {
        return description;
    }
    public void setDescription(String description) {
        this.description = description;
    }
    public String getResOrderType() {
        return resOrderType;
    }
    public void setResOrderType(String resOrderType) {
        this.resOrderType = resOrderType;
    }
    public String getState() {
        return state;
    }
    public void setState(String state) {
        this.state = state;
    }
    public String getEndUserName() {
        return endUserName;
    }
    public void setEndUserName(String endUserName) {
        this.endUserName = endUserName;
    }
    public String getEndUserTel() {
        return endUserTel;
    }
    public void setEndUserTel(String endUserTel) {
        this.endUserTel = endUserTel;
    }
    public ResourceStorePo[] getResourceStores() {
        return resourceStores;
    }
    public void setResourceStores(ResourceStorePo[] resourceStores) {
        this.resourceStores = resourceStores;
    }
    public List<PurchaseApplyDetailPo> getPurchaseApplyDetailPos() {
        return purchaseApplyDetailPos;
    }
    public void setPurchaseApplyDetailPos(List<PurchaseApplyDetailPo> purchaseApplyDetailPos) {
        this.purchaseApplyDetailPos = purchaseApplyDetailPos;
    }
    public String getCreateTime() {
        return createTime;
    }
    public void setCreateTime(String createTime) {
        this.createTime = createTime;
    }
    public String getWarehousingWay() {
        return warehousingWay;
    }
    public void setWarehousingWay(String warehousingWay) {
        this.warehousingWay = warehousingWay;
    }
    public String getCreateUserId() {
        return createUserId;
    }
    public void setCreateUserId(String createUserId) {
        this.createUserId = createUserId;
    }
    public String getCreateUserName() {
        return createUserName;
    }
    public void setCreateUserName(String createUserName) {
        this.createUserName = createUserName;
    }
    public String getStatusCd() {
        return statusCd;
    }
    public void setStatusCd(String statusCd) {
        this.statusCd = statusCd;
    }
    public String getCommunityId() {
        return communityId;
    }
    public void setCommunityId(String communityId) {
        this.communityId = communityId;
    }
    public String getbId() {
        return bId;
    }
    public void setbId(String bId) {
        this.bId = bId;
    }
}
java110-bean/src/main/java/com/java110/po/purchase/PurchasePaymentRecord.java
New file
@@ -0,0 +1,77 @@
package com.java110.po.purchase;
import lombok.Data;
import java.io.Serializable;
/**
 * 采购付款记录表实体类
 * 适配全VARCHAR字段,兼容脏数据
 */
@Data
public class PurchasePaymentRecord implements Serializable {
    private static final long serialVersionUID = 1L;
    public PurchasePaymentRecord(String id ,String invoiceNo, String orderId, String paymentAmount, String paymentOrderNo, String supplier, String toBePaidDate, String paymentDate) {
        this.id = id;
        this.invoiceNo = invoiceNo;
        this.orderId = orderId;
        this.paymentAmount = paymentAmount;
        this.paymentOrderNo = paymentOrderNo;
        this.supplier = supplier;
        this.toBePaidDate = toBePaidDate;
        this.paymentDate = paymentDate;
    }
    /**
     * 发票编号(适配脏数据,如「未开票」「专票20260323001」) // 新增发票字段
     */
    private String invoiceNo;
    /**
     * 主键ID
     */
    private String id;
    /**
     * 关联订单ID/采购申请单ID
     */
    private String orderId;
    /**
     * 付款金额(适配带符号/单位的脏数据,如「1000元」「¥2000.50」)
     */
    private String paymentAmount;
    /**
     * 付款单号
     */
    private String paymentOrderNo;
    /**
     * 供应商名称
     */
    private String supplier;
    /**
     * 拟付日期(适配非标准日期)
     */
    private String toBePaidDate;
    /**
     * 付款日期(适配非标准日期)
     */
    private String paymentDate;
    /**
     * 创建时间
     */
    private String createTime;
    /**
     * 更新时间
     */
    private String updateTime;
}
java110-bean/src/main/java/com/java110/po/purchase/PurchaseReturnRecord.java
New file
@@ -0,0 +1,84 @@
package com.java110.po.purchase;
import lombok.Data;
import java.io.Serializable;
/**
 * 采购退库记录表实体类
 * 适配全VARCHAR字段,兼容脏数据
 */
@Data
public class PurchaseReturnRecord implements Serializable {
    public PurchaseReturnRecord(String id, String returnNo, String returnDate, String returnQuantity, String returnPerson, String approver, String warehousingOrderNo, String orderId) {
        this.id = id;
        this.returnNo = returnNo;
        this.returnDate = returnDate;
        this.returnQuantity = returnQuantity;
        this.returnPerson = returnPerson;
        this.approver = approver;
        this.warehousingOrderNo = warehousingOrderNo;
        this.orderId = orderId;
    }
    private static final long serialVersionUID = 1L;
    /**
     * 主键ID
     */
    private String id;
    /**
     * 退库编号
     */
    private String returnNo;
    /**
     * 退库日期(适配非标准日期,如「2026.03.23」「3月23日」)
     */
    private String returnDate;
    /**
     * 退库数量(适配非数值脏数据,如「10箱」「未统计」)
     */
    private String returnQuantity;
    /**
     * 退库人(姓名/工号)
     */
    private String returnPerson;
    /**
     * 审批人(姓名/工号)
     */
    private String approver;
    /**
     * 关联入库单号
     */
    private String warehousingOrderNo;
    /**
     * 关联订单ID/采购申请单ID
     */
    private String orderId;
    /**
     * 创建时间
     */
    private String createTime;
    /**
     * 更新时间
     */
    private String updateTime;
    // 可选:退库数量清洗方法(提取纯数字)
    public String cleanReturnQuantity() {
        if (returnQuantity == null || returnQuantity.trim().isEmpty()) {
            return "0";
        }
        // 提取字符串中的数字,适配「10箱」「50+」等格式
        return returnQuantity.replaceAll("[^0-9]", "");
    }
}
java110-bean/src/main/java/com/java110/po/purchase/ResourceStorePo.java
@@ -1,5 +1,7 @@
package com.java110.po.purchase;
import lombok.Data;
import java.io.Serializable;
import java.util.List;
@@ -11,6 +13,7 @@
 * @Version 1.0
 * add by wuxw 2020/5/29
 **/
@Data
public class ResourceStorePo implements Serializable {
    private String resId;
    private String storeId;
@@ -54,283 +57,60 @@
    //调整类型
    private String adjustmentType;  //1001  无需调整物品库存
    public String getResId() {
        return resId;
    }
    private String communityName;
    public void setResId(String resId) {
        this.resId = resId;
    }
    public String getStoreId() {
        return storeId;
    }
    private String tripleWaybillNo;
    private String systemName;
    private String model;
    private String brand;
    private String supplier;
    public void setStoreId(String storeId) {
        this.storeId = storeId;
    }
    public String getResName() {
        return resName;
    }
    private String budgetApproval; // 预决算部审批
    private String budgetQuantity; // 预算数量
    private String budgetUnitPrice; // 预算单价1(预算部给)
    private String budgetAmount; // 预算金额
    private String applyQuantityTotal; // 申请数量合计
    private String purchaseQuantityTotal; // 采购数量合计
    private String actualDeliveryQuantity; // 实际送货数量
    private String payableAmountTotal; // 应付金额合计
    private String paidAmountTotal; // 已付金额合计
    private String unpaidAmountTotal; // 未付金额合计
    private String isOccurred; // 未发生
    /**
     * 应付金额
     */
    private String payableAmount;
    public void setResName(String resName) {
        this.resName = resName;
    }
    /**
     * 已付金额
     */
    private String paidAmount;
    public String getResCode() {
        return resCode;
    }
    /**
     * 未付金额
     */
    private String unpaidAmount;
    public void setResCode(String resCode) {
        this.resCode = resCode;
    }
    public String getDescription() {
        return description;
    }
    /**
     * 退库数量合计(适配非数值脏数据)
     */
    private String totalReturnQuantity;
    public void setDescription(String description) {
        this.description = description;
    }
    /**
     * 供应商1(格式:名称|联系人|电话,适配脏数据)
     */
    private String supplier1;
    public String getPrice() {
        return price;
    }
    /**
     * 供应商2(格式:名称|联系人|电话,适配脏数据)
     */
    private String supplier2;
    public void setPrice(String price) {
        this.price = price;
    }
    public String getStock() {
        return stock;
    }
    public void setStock(String stock) {
        this.stock = stock;
    }
    public String getStatusCd() {
        return statusCd;
    }
    public void setStatusCd(String statusCd) {
        this.statusCd = statusCd;
    }
    public String getUnitCode() {
        return unitCode;
    }
    public void setUnitCode(String unitCode) {
        this.unitCode = unitCode;
    }
    public String getRemark() {
        return remark;
    }
    public void setRemark(String remark) {
        this.remark = remark;
    }
    public String getOutLowPrice() {
        return outLowPrice;
    }
    public void setOutLowPrice(String outLowPrice) {
        this.outLowPrice = outLowPrice;
    }
    public String getOutHighPrice() {
        return outHighPrice;
    }
    public void setOutHighPrice(String outHighPrice) {
        this.outHighPrice = outHighPrice;
    }
    public String getShowMobile() {
        return showMobile;
    }
    public void setShowMobile(String showMobile) {
        this.showMobile = showMobile;
    }
    public String getCreateTime() {
        return createTime;
    }
    public void setCreateTime(String createTime) {
        this.createTime = createTime;
    }
    public String getbId() {
        return bId;
    }
    public void setbId(String bId) {
        this.bId = bId;
    }
    public List<String> getPhotos() {
        return photos;
    }
    public void setPhotos(List<String> photos) {
        this.photos = photos;
    }
    public List<String> getFileUrls() {
        return fileUrls;
    }
    public void setFileUrls(List<String> fileUrls) {
        this.fileUrls = fileUrls;
    }
    public String getShId() {
        return shId;
    }
    public void setShId(String shId) {
        this.shId = shId;
    }
    public String getWarningStock() {
        return warningStock;
    }
    public void setWarningStock(String warningStock) {
        this.warningStock = warningStock;
    }
    public String getAveragePrice() {
        return averagePrice;
    }
    public void setAveragePrice(String averagePrice) {
        this.averagePrice = averagePrice;
    }
    public String getPurchasePrice() {
        return purchasePrice;
    }
    public void setPurchasePrice(String purchasePrice) {
        this.purchasePrice = purchasePrice;
    }
    public String getResOrderType() {
        return resOrderType;
    }
    public void setResOrderType(String resOrderType) {
        this.resOrderType = resOrderType;
    }
    public String getRstId() {
        return rstId;
    }
    public void setRstId(String rstId) {
        this.rstId = rstId;
    }
    public String getRstName() {
        return rstName;
    }
    public void setRstName(String rstName) {
        this.rstName = rstName;
    }
    public String getRssId() {
        return rssId;
    }
    public void setRssId(String rssId) {
        this.rssId = rssId;
    }
    public String getRssName() {
        return rssName;
    }
    public void setRssName(String rssName) {
        this.rssName = rssName;
    }
    public String getMiniUnitCode() {
        return miniUnitCode;
    }
    public void setMiniUnitCode(String miniUnitCode) {
        this.miniUnitCode = miniUnitCode;
    }
    public String getMiniUnitStock() {
        return miniUnitStock;
    }
    public void setMiniUnitStock(String miniUnitStock) {
        this.miniUnitStock = miniUnitStock;
    }
    public String getOperationType() {
        return operationType;
    }
    public void setOperationType(String operationType) {
        this.operationType = operationType;
    }
    public String getMiniStock() {
        return miniStock;
    }
    public void setMiniStock(String miniStock) {
        this.miniStock = miniStock;
    }
    public String getParentRstId() {
        return parentRstId;
    }
    public void setParentRstId(String parentRstId) {
        this.parentRstId = parentRstId;
    }
    public String getIsFixed() {
        return isFixed;
    }
    public void setIsFixed(String isFixed) {
        this.isFixed = isFixed;
    }
    public String getIsFixedName() {
        return isFixedName;
    }
    public void setIsFixedName(String isFixedName) {
        this.isFixedName = isFixedName;
    }
    public String getCommunityId() {
        return communityId;
    }
    public void setCommunityId(String communityId) {
        this.communityId = communityId;
    }
    public String getAdjustmentType() {
        return adjustmentType;
    }
    public void setAdjustmentType(String adjustmentType) {
        this.adjustmentType = adjustmentType;
    }
    /**
     * 供应商3(格式:名称|联系人|电话,适配脏数据)
     */
    private String supplier3;
}
java110-db/src/main/resources/mapper/store/DeliveryStorageRecordServiceDaoImplMapper.xml
New file
@@ -0,0 +1,28 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
        PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
        "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="deliveryStorageRecordServiceDaoImpl">
    <insert id="insertDeliveryStorageRecord" parameterType="Map">
        INSERT INTO delivery_storage_record (
        id, delivery_order_no, delivery_quantity, delivery_date, signer,
        warehousing_order_no, warehousing_date, outbound_order_no, outbound_date,
        apply_order_id, create_time, update_time
        ) VALUES (
        #{id}, #{deliveryOrderNo}, #{deliveryQuantity}, #{deliveryDate}, #{signer},
        #{warehousingOrderNo}, #{warehousingDate}, #{outboundOrderNo}, #{outboundDate},
        #{applyOrderId}, #{createTime}, #{updateTime}
        )
    </insert>
    <!-- 根据采购申请单ID查询记录 -->
    <select id="listByApplyOrderId" parameterType="Map" resultType="Map">
        SELECT
        id, delivery_order_no, delivery_quantity, delivery_date, signer,
        warehousing_order_no, warehousing_date, outbound_order_no, outbound_date,
        apply_order_id, create_time, update_time
        FROM delivery_storage_record
        WHERE apply_order_id = #{applyOrderId}
    </select>
</mapper>
java110-db/src/main/resources/mapper/store/PurchaseApplyServiceDaoImplMapper.xml
@@ -63,9 +63,15 @@
    <!-- 保存采购明细表-->
    <insert id="savePurchaseApplyDetailInfo" parameterType="List">
        insert into purchase_apply_detail
        (id,rs_id,apply_order_id,res_id,quantity,remark,b_id,operate,status_cd,price,purchase_quantity,purchase_remark,original_stock,times_id,consult_price)
        values
        INSERT INTO purchase_apply_detail (
        id, rs_id, apply_order_id, res_id, quantity, remark, b_id, operate, status_cd, price,
        purchase_quantity, purchase_remark, original_stock, times_id, consult_price,
        purchase_date2, purchase_quantity2, purchase_date3, purchase_quantity3,
        first_cumulative_purchase_quantity, purchase_date, purchase_amount, purchaser,
        contract_no, supplier, first_cumulative_delivery_quantity, delivery_order_no,
        delivery_quantity, delivery_date, signer
        )
        VALUES
        <foreach collection="list" item="item" index="index" separator=",">
            (
            #{item.id},
@@ -82,9 +88,24 @@
            #{item.purchaseRemark},
            #{item.originalStock},
            #{item.timesId},
            #{item.consultPrice}
            #{item.consultPrice},
            #{item.purchaseDate2},
            #{item.purchaseQuantity2},
            #{item.purchaseDate3},
            #{item.purchaseQuantity3},
            #{item.firstCumulativePurchaseQuantity},
            #{item.purchaseDate},
            #{item.purchaseAmount},
            #{item.purchaser},
            #{item.contractNo},
            #{item.supplier},
            #{item.firstCumulativeDeliveryQuantity},
            #{item.deliveryOrderNo},
            #{item.deliveryQuantity},
            #{item.deliveryDate},
            #{item.signer}
            )
        </foreach>
        </foreach>;
    </insert>
    <!-- 查询采购申请信息(Business) add by wuxw 2018-07-03 -->
@@ -465,6 +486,9 @@
        <if test="state !=null and state != ''">
            and t.state= #{state}
        </if>
        <if test="communityId !=null and communityId != ''">
            and t.community_id= #{communityId}
        </if>
        <if test="storeId !=null and storeId != ''">
            and t.store_id= #{storeId}
        </if>
@@ -502,13 +526,17 @@
    <!-- 保存采购申请信息 add by wuxw 2018-07-03 -->
    <insert id="savePurchaseApply" parameterType="Map">
        insert into purchase_apply
        (status_cd, res_order_type, description, apply_order_id, state, store_id, user_id, user_name, b_id,
        INSERT INTO purchase_apply (
        status_cd, res_order_type, description, apply_order_id, state, store_id, user_id, user_name, b_id,
         end_user_name, end_user_tel,
         create_time, create_user_id, create_user_name, warehousing_way, community_id)
        values ('0', #{resOrderType}, #{description}, #{applyOrderId}, #{state}, #{storeId}, #{userId}, #{userName},
                '-1', #{endUserName}, #{endUserTel},
                #{createTime}, #{createUserId}, #{createUserName}, #{warehousingWay}, #{communityId})
        create_time, create_user_id, create_user_name, warehousing_way, community_id,
        apply_no, apply_date, approver, apply_quantity
        )
        VALUES (
        '0', #{resOrderType}, #{description}, #{applyOrderId}, #{state}, #{storeId}, #{userId}, #{userName}, '-1',
        #{endUserName}, #{endUserTel}, #{createTime}, #{createUserId}, #{createUserName}, #{warehousingWay}, #{communityId},
        #{applyNo}, #{applyDate}, #{approver}, #{applyQuantity}
        );
    </insert>
    <!--查询下级用户id-->
java110-db/src/main/resources/mapper/store/PurchasePaymentRecordServiceDaoImplMapper.xml
New file
@@ -0,0 +1,25 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
        PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
        "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="purchasePaymentRecordServiceDaoImpl">
    <!-- 新增采购付款记录 -->
    <insert id="insertPurchasePaymentRecord" parameterType="Map">
        INSERT INTO purchase_payment_record (
        id, order_id, payment_amount, payment_order_no, supplier,
        to_be_paid_date, payment_date, create_time, update_time, invoice_no
        ) VALUES (
        #{id}, #{orderId}, #{paymentAmount}, #{paymentOrderNo}, #{supplier},
        #{toBePaidDate}, #{paymentDate}, #{createTime}, #{updateTime}, #{invoiceNo}
        )
    </insert>
    <!-- 根据订单ID查询付款记录 -->
    <select id="listByOrderId" parameterType="Map" resultType="Map">
        SELECT
        id, order_id, payment_amount, payment_order_no, supplier,
        to_be_paid_date, payment_date, create_time, update_time
        FROM purchase_payment_record
        WHERE order_id = #{orderId}
    </select>
</mapper>
java110-db/src/main/resources/mapper/store/PurchaseReturnRecordServiceDaoImpl.xml
New file
@@ -0,0 +1,24 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
        PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
        "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="purchaseReturnRecordServiceDaoImpl">
    <insert id="insertPurchaseReturnRecord" parameterType="Map">
        INSERT INTO purchase_return_record (
            id, return_no, return_date, return_quantity, return_person,
            approver, warehousing_order_no, order_id, create_time, update_time
        ) VALUES (
            #{id}, #{returnNo}, #{returnDate}, #{returnQuantity}, #{returnPerson},
            #{approver}, #{warehousingOrderNo}, #{orderId}, #{createTime}, #{updateTime}
        )
    </insert>
    <!-- 根据订单ID查询退库记录 -->
    <select id="listByOrderId" parameterType="Map" resultType="Map">
        SELECT
            id, return_no, return_date, return_quantity, return_person,
            approver, warehousing_order_no, order_id, create_time, update_time
        FROM purchase_return_record
        WHERE order_id = #{orderId}
    </select>
</mapper>
java110-db/src/main/resources/mapper/store/ResourceStoreV1ServiceDaoImplMapper.xml
@@ -5,13 +5,31 @@
    <!-- 保存物品信息信息 add by wuxw 2018-07-03 -->
    <insert id="saveResourceStoreInfo" parameterType="Map">
        insert into resource_store(sh_id, description, remark, store_id, res_id, parent_rst_id, warning_stock, rss_id,
        insert into resource_store(
        sh_id, description, remark, store_id, res_id, parent_rst_id, warning_stock, rss_id,
                                   res_name, rst_id, out_low_price, price, mini_unit_stock, unit_code, res_code,
                                   mini_unit_code, average_price, stock, out_high_price, show_mobile, is_fixed,
                                   mini_stock,community_id)
        values (#{shId}, #{description}, #{remark}, #{storeId}, #{resId}, #{parentRstId}, #{warningStock}, #{rssId},
        mini_stock, community_id, community_name,
        triple_waybill_no, system_name, model, brand, supplier,
        budget_approval, budget_quantity, budget_unit_price, budget_amount,
        apply_quantity_total, purchase_quantity_total, actual_delivery_quantity,
        payable_amount_total, paid_amount_total, unpaid_amount_total, is_occurred,
        -- 新增字段(按你提供的顺序补充)
        payable_amount, paid_amount, unpaid_amount, total_return_quantity,
        supplier1, supplier2, supplier3, rst_name
        )
        values (
        #{shId}, #{description}, #{remark}, #{storeId}, #{resId}, #{parentRstId}, #{warningStock}, #{rssId},
                #{resName}, #{rstId}, #{outLowPrice}, #{price}, #{miniUnitStock}, #{unitCode}, #{resCode},
                #{miniUnitCode}, #{averagePrice}, #{stock}, #{outHighPrice}, #{showMobile}, #{isFixed}, #{miniStock},#{communityId})
        #{miniUnitCode}, #{averagePrice}, #{stock}, #{outHighPrice}, #{showMobile}, #{isFixed},
        #{miniStock}, #{communityId}, #{communityName},
        #{tripleWaybillNo}, #{systemName}, #{model}, #{brand}, #{supplier},
        #{budgetApproval}, #{budgetQuantity}, #{budgetUnitPrice}, #{budgetAmount},
        #{applyQuantityTotal}, #{purchaseQuantityTotal}, #{actualDeliveryQuantity},
        #{payableAmountTotal}, #{paidAmountTotal}, #{unpaidAmountTotal}, #{isOccurred},
        #{payableAmount}, #{paidAmount}, #{unpaidAmount}, #{totalReturnQuantity},
        #{supplier1}, #{supplier2}, #{supplier3}, #{rstName}
        );
    </insert>
    <!-- 查询物品信息信息 add by wuxw 2018-07-03 -->
service-api/src/main/java/com/java110/api/importData/adapt/ImportPropertyWhiteListfFlowAdapt.java
@@ -88,8 +88,14 @@
    private void getPropertyWhiteListFlowDtos(Workbook workbook, List<PropertyWhiteListFlowDto> whiteLists) {
        Sheet sheet = null;
        List<Object[]> oList;
        try {
        sheet = ImportExcelUtils.getSheet(workbook, "白单流水  导入新模板");
        List<Object[]> oList = ImportExcelUtils.listFromSheet(sheet);
            oList = ImportExcelUtils.listFromSheet(sheet);
        } catch (IllegalArgumentException e) {
            sheet = ImportExcelUtils.getSheet(workbook, "Sheet1");
            oList = ImportExcelUtils.listFromSheet(sheet);
        }
        PropertyWhiteListFlowDto white = null;
        List<Map<String, Object>> maps = BeanConvertUtil.beanCovertMapListC(communityInnerServiceSMOImpl.queryCommunitys(new CommunityDto()));
        for (int osIndex = 0; osIndex < oList.size(); osIndex++) {
service-api/src/main/java/com/java110/api/smo/assetImport/impl/ImportResourceStoreSMOImpl.java
@@ -30,7 +30,7 @@
import java.util.Date;
import java.util.List;
@Service("importResourceStoreSMOImpl")
//@Service("importResourceStoreSMOImpl")
public class ImportResourceStoreSMOImpl extends DefaultAbstractComponentSMO implements IImportResourceStoreSMO {
    private final static Logger logger = LoggerFactory.getLogger(ImportResourceStoreSMOImpl.class);
service-api/src/main/java/com/java110/api/smo/assetImport/impl/ImportResourceStoreV2SMOImpl.java
New file
@@ -0,0 +1,516 @@
package com.java110.api.smo.assetImport.impl;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.java110.api.smo.DefaultAbstractComponentSMO;
import com.java110.api.smo.assetImport.IImportResourceStoreSMO;
import com.java110.core.context.IPageData;
import com.java110.core.factory.GenerateCodeFactory;
import com.java110.core.log.LoggerFactory;
import com.java110.dto.importData.ImportOwnerRoomDto;
import com.java110.dto.importData.ImportResourceStoreDto;
import com.java110.dto.importData.Vtil;
import com.java110.dto.purchase.PurchaseApplyDto;
import com.java110.dto.resource.ResourceStoreTypeDto;
import com.java110.dto.store.StorehouseDto;
import com.java110.dto.system.ComponentValidateResult;
import com.java110.intf.community.IImportOwnerRoomInnerServiceSMO;
import com.java110.intf.store.IPurchaseApplyDetailInnerServiceSMO;
import com.java110.intf.store.IPurchaseApplyInnerServiceSMO;
import com.java110.intf.store.IResourceStoreTypeInnerServiceSMO;
import com.java110.intf.store.IStorehouseV1InnerServiceSMO;
import com.java110.po.purchase.*;
import com.java110.po.resource.ResourceStoreTypePo;
import com.java110.po.store.StorehousePo;
import com.java110.utils.exception.CmdException;
import com.java110.utils.util.Assert;
import com.java110.utils.util.BeanConvertUtil;
import com.java110.utils.util.ImportExcelUtils;
import com.java110.utils.util.StringUtil;
import com.java110.vo.ResultVo;
import org.apache.poi.ss.usermodel.Sheet;
import org.apache.poi.ss.usermodel.Workbook;
import org.mybatis.spring.SqlSessionTemplate;
import org.slf4j.Logger;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.HttpMethod;
import org.springframework.http.HttpStatus;
import org.springframework.http.ResponseEntity;
import org.springframework.stereotype.Service;
import org.springframework.web.client.RestTemplate;
import org.springframework.web.multipart.MultipartFile;
import java.text.ParseException;
import java.util.*;
@Service("importResourceStoreSMOImpl")
public class ImportResourceStoreV2SMOImpl extends DefaultAbstractComponentSMO implements IImportResourceStoreSMO {
    private final static Logger logger = LoggerFactory.getLogger(ImportResourceStoreV2SMOImpl.class);
    public static final int DEFAULT_ROWS = 500;
    @Autowired
    private RestTemplate restTemplate;
    @Autowired
    private IImportOwnerRoomInnerServiceSMO importOwnerRoomInnerServiceSMOImpl;
    @Autowired
    private IStorehouseV1InnerServiceSMO storehouseV1InnerServiceSMOImpl;
    @Autowired
    private IResourceStoreTypeInnerServiceSMO resourceStoreTypeInnerServiceSMOImpl;
    @Autowired
    private IPurchaseApplyInnerServiceSMO purchaseApplyInnerServiceSMOImpl;
    @Autowired
    private SqlSessionTemplate sqlSessionTemplate;
    public static final String CODE_PREFIX_ID = "10";
    @Override
    public ResponseEntity<String> importExcelData(IPageData pd, MultipartFile uploadFile) throws Exception {
        try {
            ComponentValidateResult result = this.validateStoreStaffCommunityRelationship(pd, restTemplate);
            //InputStream is = uploadFile.getInputStream();
            Workbook workbook = ImportExcelUtils.createWorkbook(uploadFile);  //工作簿
            List<ImportResourceStoreDto> resourceStoreDtos = new ArrayList<ImportResourceStoreDto>();
            //封装对象
            getResourceStores(workbook, resourceStoreDtos, result);
            // 保存数据
            return dealExcelData(pd, resourceStoreDtos, result);
        } catch (Exception e) {
            logger.error("导入失败 ", e);
            return new ResponseEntity<String>("非常抱歉,您填写的模板数据有误:" + e.getMessage(), HttpStatus.BAD_REQUEST);
        }
    }
    /**
     * 获取业主车辆信息
     *
     * @param workbook
     * @param resourceStoreDtos
     */
    private void getResourceStores(Workbook workbook, List<ImportResourceStoreDto> resourceStoreDtos, ComponentValidateResult result) throws ParseException {
        Sheet sheet = null;
        sheet = ImportExcelUtils.getSheet(workbook, "客服-零星维修采购");
        List<Object[]> oList = ImportExcelUtils.listFromSheet(sheet);
        ImportResourceStoreDto resourceStoreDto = null;
        for (int osIndex = 0; osIndex < oList.size(); osIndex++) {
            Object[] os = oList.get(osIndex);
            if (osIndex == 0 || osIndex == 1) { // 第一行是 头部信息 直接跳过
                continue;
            }
            if (os == null || StringUtil.isNullOrNone(os[0])) {
                continue;
            }
            resourceStoreDto = new ImportResourceStoreDto();
            resourceStoreDto.setWarningStock("0");
            resourceStoreDto.setIsFixed("Y");
            resourceStoreDto.setResId(GenerateCodeFactory.getGeneratorId(GenerateCodeFactory.CODE_PREFIX_resId));
            try {
                resourceStoreDto.setCommunityId(result.getCommunityId());
                resourceStoreDto.setResCode(Vtil.defaultValue(os[1]));
                resourceStoreDto.setTripleWaybillNo(Vtil.defaultValue(os[2]));
                resourceStoreDto.setCommunityName(Vtil.defaultValue(os[3]));
                resourceStoreDto.setRstName(Vtil.defaultValue(os[4], "未分类"));
                resourceStoreDto.setSystemName(Vtil.defaultValue(os[5]));
                resourceStoreDto.setResName(Vtil.defaultValue(os[6], "空"));
                resourceStoreDto.setModel(Vtil.defaultValue(os[7]));
                resourceStoreDto.setBrand(Vtil.defaultValue(os[8]));
                resourceStoreDto.setSupplier(Vtil.defaultValue(os[9]));
                resourceStoreDto.setUnitCode(Vtil.defaultValue(os[10]));
                resourceStoreDto.setBudgetApproval(Vtil.defaultValue(os[11]));
                resourceStoreDto.setStock(Vtil.defaultValue(os[12]));
                resourceStoreDto.setBudgetQuantity(Vtil.defaultValue(os[12]));
                resourceStoreDto.setPrice(Vtil.defaultValue(os[13]));
                resourceStoreDto.setBudgetUnitPrice(Vtil.defaultValue(os[13]));
                resourceStoreDto.setBudgetAmount(Vtil.defaultValue(os[14]));
                resourceStoreDto.setApplyQuantityTotal(Vtil.defaultValue(os[15]));
                resourceStoreDto.setPurchaseQuantityTotal(Vtil.defaultValue(os[16]));
                resourceStoreDto.setActualDeliveryQuantity(Vtil.defaultValue(os[17]));
                resourceStoreDto.setPayableAmountTotal(Vtil.defaultValue(os[18]));
                resourceStoreDto.setPaidAmountTotal(Vtil.defaultValue(os[19]));
                resourceStoreDto.setUnpaidAmountTotal(Vtil.defaultValue(os[20]));
                resourceStoreDto.setIsOccurred(Vtil.defaultValue(os[21]));
                List<DeliveryStorageRecord> deliveryStorageRecords = new ArrayList<>();
                if (true) {
                    PurchaseApplyPo purchaseApplyPo = new PurchaseApplyPo();
                    purchaseApplyPo.setApplyOrderId(GenerateCodeFactory.getGeneratorId(GenerateCodeFactory.CODE_PREFIX_applyOrderId));
                    purchaseApplyPo.setApplyNo(Vtil.defaultValue(os[22]));
                    purchaseApplyPo.setApplyDate(Vtil.defaultValue(os[23]));
                    purchaseApplyPo.setApplyQuantity(Vtil.defaultValue(os[24]));
                    purchaseApplyPo.setUserName(Vtil.defaultValue(os[25]));
                    purchaseApplyPo.setApprover(Vtil.defaultValue(os[26]));
                    purchaseApplyPo.setResOrderType("10000");
                    purchaseApplyPo.setStoreId(result.getStoreId());
                    purchaseApplyPo.setCreateUserId(result.getUserId());
                    purchaseApplyPo.setCreateUserName(result.getUserName());
                    purchaseApplyPo.setEndUserName(result.getUserName());
                    purchaseApplyPo.setDescription("导入内容");
                    purchaseApplyPo.setWarehousingWay("10000");
                    purchaseApplyInnerServiceSMOImpl.savePurchaseApply(purchaseApplyPo);
                    PurchaseApplyDetailPo purchaseApplyDetailPo = new PurchaseApplyDetailPo();
                    purchaseApplyDetailPo.setId(GenerateCodeFactory.getGeneratorId(GenerateCodeFactory.CODE_PREFIX_applyOrderId));
                    purchaseApplyDetailPo.setResId(resourceStoreDto.getResId());
                    purchaseApplyDetailPo.setFirstCumulativePurchaseQuantity(Vtil.defaultValue(os[27]));
                    purchaseApplyDetailPo.setPurchaseDate(Vtil.defaultValue(os[28]));
                    purchaseApplyDetailPo.setPurchaseQuantity(Vtil.defaultValue(os[29]));
                    purchaseApplyDetailPo.setQuantity(Vtil.defaultValue(os[29],"0"));
                    purchaseApplyDetailPo.setPrice(Vtil.defaultValue(os[30]));
                    purchaseApplyDetailPo.setConsultPrice(Vtil.defaultValue(os[30]));
                    purchaseApplyDetailPo.setPurchaseAmount(Vtil.defaultValue(os[31]));
                    purchaseApplyDetailPo.setPurchaser(Vtil.defaultValue(os[32]));
                    purchaseApplyDetailPo.setContractNo(Vtil.defaultValue(os[33]));
                    purchaseApplyDetailPo.setSupplier(Vtil.defaultValue(os[34]));
                    purchaseApplyDetailPo.setFirstCumulativeDeliveryQuantity(Vtil.defaultValue(os[35]));
                    purchaseApplyDetailPo.setApplyOrderId(purchaseApplyPo.getApplyOrderId());
                    List<PurchaseApplyDetailPo> list = new ArrayList<>();
                    list.add(purchaseApplyDetailPo);
                    Map<String, Object> paramMap = new HashMap<>();
                    paramMap.put("list", list);
// 3. 执行插入(SQL 保留原有 <foreach> 语法不变)
                    sqlSessionTemplate.insert("purchaseApplyServiceDaoImpl.savePurchaseApplyDetailInfo", paramMap);
                    sqlSessionTemplate.insert("deliveryStorageRecordServiceDaoImpl.insertDeliveryStorageRecord", BeanConvertUtil.beanCovertMap(new DeliveryStorageRecord(GenerateCodeFactory.getGeneratorId(GenerateCodeFactory.CODE_PREFIX_applyOrderId),
                            Vtil.defaultValue(os[36]),
                            Vtil.defaultValue(os[37]),
                            Vtil.defaultValue(os[38]),
                            Vtil.defaultValue(os[39]),
                            Vtil.defaultValue(os[40]),
                            Vtil.defaultValue(os[41]),
                            Vtil.defaultValue(os[42]),
                            Vtil.defaultValue(os[43]),
                            purchaseApplyDetailPo.getApplyOrderId())));
                    sqlSessionTemplate.insert("deliveryStorageRecordServiceDaoImpl.insertDeliveryStorageRecord", BeanConvertUtil.beanCovertMap(new DeliveryStorageRecord(GenerateCodeFactory.getGeneratorId(GenerateCodeFactory.CODE_PREFIX_applyOrderId),
                            Vtil.defaultValue(os[44]),
                            Vtil.defaultValue(os[45]),
                            Vtil.defaultValue(os[46]),
                            Vtil.defaultValue(os[47]),
                            Vtil.defaultValue(os[48]),
                            Vtil.defaultValue(os[49]),
                            Vtil.defaultValue(os[50]),
                            Vtil.defaultValue(os[51]),
                            purchaseApplyDetailPo.getApplyOrderId())));
                    sqlSessionTemplate.insert("deliveryStorageRecordServiceDaoImpl.insertDeliveryStorageRecord", BeanConvertUtil.beanCovertMap(new DeliveryStorageRecord(GenerateCodeFactory.getGeneratorId(GenerateCodeFactory.CODE_PREFIX_applyOrderId),
                            Vtil.defaultValue(os[52]),
                            Vtil.defaultValue(os[53]),
                            Vtil.defaultValue(os[54]),
                            Vtil.defaultValue(os[55]),
                            Vtil.defaultValue(os[56]),
                            Vtil.defaultValue(os[57]),
                            Vtil.defaultValue(os[58]),
                            Vtil.defaultValue(os[59]),
                            purchaseApplyDetailPo.getApplyOrderId())));
                }
                if (true) {
                    PurchaseApplyPo purchaseApplyPo = new PurchaseApplyPo();
                    purchaseApplyPo.setApplyOrderId(GenerateCodeFactory.getGeneratorId(GenerateCodeFactory.CODE_PREFIX_applyOrderId));
                    purchaseApplyPo.setApplyNo(Vtil.defaultValue(os[60]));
                    purchaseApplyPo.setApplyDate(Vtil.defaultValue(os[61]));
                    purchaseApplyPo.setApplyQuantity(Vtil.defaultValue(os[62]));
                    purchaseApplyPo.setUserName(Vtil.defaultValue(os[63]));
                    purchaseApplyPo.setApprover(Vtil.defaultValue(os[64]));
                    purchaseApplyPo.setResOrderType("10000");
                    purchaseApplyPo.setStoreId(result.getStoreId());
                    purchaseApplyPo.setCreateUserId(result.getUserId());
                    purchaseApplyPo.setCreateUserName(result.getUserName());
                    purchaseApplyPo.setEndUserName(result.getUserName());
                    purchaseApplyPo.setDescription("导入内容");
                    purchaseApplyPo.setWarehousingWay("10000");
                    purchaseApplyInnerServiceSMOImpl.savePurchaseApply(purchaseApplyPo);
                    PurchaseApplyDetailPo purchaseApplyDetailPo = new PurchaseApplyDetailPo();
                    purchaseApplyDetailPo.setId(GenerateCodeFactory.getGeneratorId(GenerateCodeFactory.CODE_PREFIX_applyOrderId));
                    purchaseApplyDetailPo.setResId(resourceStoreDto.getResId());
                    purchaseApplyDetailPo.setFirstCumulativePurchaseQuantity(Vtil.defaultValue(os[65]));
                    purchaseApplyDetailPo.setQuantity(Vtil.defaultValue(os[29],"0"));
                    purchaseApplyDetailPo.setPurchaseDate(Vtil.defaultValue(os[66]));
                    purchaseApplyDetailPo.setPurchaseQuantity(Vtil.defaultValue(os[67]));
                    purchaseApplyDetailPo.setPurchaseDate2(Vtil.defaultValue(os[68]));
                    purchaseApplyDetailPo.setPurchaseQuantity2(Vtil.defaultValue(os[69]));
                    purchaseApplyDetailPo.setPurchaseDate3(Vtil.defaultValue(os[70]));
                    purchaseApplyDetailPo.setPurchaseQuantity3(Vtil.defaultValue(os[71]));
                    purchaseApplyDetailPo.setPrice(Vtil.defaultValue(os[72]));
                    purchaseApplyDetailPo.setConsultPrice(Vtil.defaultValue(os[72]));
                    purchaseApplyDetailPo.setPurchaseAmount(Vtil.defaultValue(os[73]));
                    purchaseApplyDetailPo.setPurchaser(Vtil.defaultValue(os[74]));
                    purchaseApplyDetailPo.setContractNo(Vtil.defaultValue(os[75]));
                    purchaseApplyDetailPo.setSupplier(Vtil.defaultValue(os[76]));
                    purchaseApplyDetailPo.setFirstCumulativeDeliveryQuantity(Vtil.defaultValue(os[77]));
                    purchaseApplyDetailPo.setApplyOrderId(purchaseApplyPo.getApplyOrderId());
                    List<PurchaseApplyDetailPo> list = new ArrayList<>();
                    list.add(purchaseApplyDetailPo);
                    Map<String, Object> paramMap = new HashMap<>();
                    paramMap.put("list", list);
// 3. 执行插入(SQL 保留原有 <foreach> 语法不变)
                    sqlSessionTemplate.insert("purchaseApplyServiceDaoImpl.savePurchaseApplyDetailInfo", paramMap);
                    sqlSessionTemplate.insert("deliveryStorageRecordServiceDaoImpl.insertDeliveryStorageRecord", BeanConvertUtil.beanCovertMap(new DeliveryStorageRecord(GenerateCodeFactory.getGeneratorId(GenerateCodeFactory.CODE_PREFIX_applyOrderId),
                            Vtil.defaultValue(os[78]),
                            Vtil.defaultValue(os[79]),
                            Vtil.defaultValue(os[80]),
                            Vtil.defaultValue(os[81]),
                            Vtil.defaultValue(os[82]),
                            Vtil.defaultValue(os[83]),
                            Vtil.defaultValue(os[84]),
                            Vtil.defaultValue(os[85]),
                            purchaseApplyDetailPo.getApplyOrderId())));
                    sqlSessionTemplate.insert("deliveryStorageRecordServiceDaoImpl.insertDeliveryStorageRecord", BeanConvertUtil.beanCovertMap(new DeliveryStorageRecord(GenerateCodeFactory.getGeneratorId(GenerateCodeFactory.CODE_PREFIX_applyOrderId),
                            Vtil.defaultValue(os[86]),
                            Vtil.defaultValue(os[87]),
                            Vtil.defaultValue(os[88]),
                            Vtil.defaultValue(os[89]),
                            Vtil.defaultValue(os[90]),
                            Vtil.defaultValue(os[91]),
                            Vtil.defaultValue(os[92]),
                            Vtil.defaultValue(os[93]),
                            purchaseApplyDetailPo.getApplyOrderId())));
                    sqlSessionTemplate.insert("deliveryStorageRecordServiceDaoImpl.insertDeliveryStorageRecord", BeanConvertUtil.beanCovertMap(new DeliveryStorageRecord(GenerateCodeFactory.getGeneratorId(GenerateCodeFactory.CODE_PREFIX_applyOrderId),
                            Vtil.defaultValue(os[94]),
                            Vtil.defaultValue(os[95]),
                            Vtil.defaultValue(os[96]),
                            Vtil.defaultValue(os[97]),
                            Vtil.defaultValue(os[98]),
                            Vtil.defaultValue(os[99]),
                            Vtil.defaultValue(os[100]),
                            Vtil.defaultValue(os[101]),
                            purchaseApplyDetailPo.getApplyOrderId())));
                }
                resourceStoreDto.setPayableAmount(Vtil.defaultValue(os[102]));
                resourceStoreDto.setPaidAmount(Vtil.defaultValue(os[103]));
                resourceStoreDto.setUnpaidAmount(Vtil.defaultValue(os[104]));
                sqlSessionTemplate.insert("purchasePaymentRecordServiceDaoImpl.insertPurchasePaymentRecord", BeanConvertUtil.beanCovertMap(new PurchasePaymentRecord(GenerateCodeFactory.getGeneratorId(GenerateCodeFactory.CODE_PREFIX_applyOrderId),
                        Vtil.defaultValue(os[110]),
                        resourceStoreDto.getResId(),
                        Vtil.defaultValue(os[105]),
                        Vtil.defaultValue(os[106]),
                        Vtil.defaultValue(os[107]),
                        Vtil.defaultValue(os[108]),
                        Vtil.defaultValue(os[109])
                        )));
                sqlSessionTemplate.insert("purchasePaymentRecordServiceDaoImpl.insertPurchasePaymentRecord", BeanConvertUtil.beanCovertMap(new PurchasePaymentRecord(GenerateCodeFactory.getGeneratorId(GenerateCodeFactory.CODE_PREFIX_applyOrderId),
                        null,
                        resourceStoreDto.getResId(),
                        Vtil.defaultValue(os[111]),
                        Vtil.defaultValue(os[112]),
                        Vtil.defaultValue(os[113]),
                        Vtil.defaultValue(os[114]),
                        Vtil.defaultValue(os[115])
                )));
                sqlSessionTemplate.insert("purchaseReturnRecordServiceDaoImpl.insertPurchaseReturnRecord", BeanConvertUtil.beanCovertMap(new PurchaseReturnRecord(GenerateCodeFactory.getGeneratorId(GenerateCodeFactory.CODE_PREFIX_applyOrderId),
                        Vtil.defaultValue(os[117]),
                        Vtil.defaultValue(os[118]),
                        Vtil.defaultValue(os[119]),
                        Vtil.defaultValue(os[120]),
                        Vtil.defaultValue(os[121]),
                        Vtil.defaultValue(os[122]),
                        resourceStoreDto.getResId()
                )));
                sqlSessionTemplate.insert("purchaseReturnRecordServiceDaoImpl.insertPurchaseReturnRecord", BeanConvertUtil.beanCovertMap(new PurchaseReturnRecord(GenerateCodeFactory.getGeneratorId(GenerateCodeFactory.CODE_PREFIX_applyOrderId),
                        Vtil.defaultValue(os[123]),
                        Vtil.defaultValue(os[124]),
                        Vtil.defaultValue(os[125]),
                        Vtil.defaultValue(os[126]),
                        Vtil.defaultValue(os[127]),
                        Vtil.defaultValue(os[128]),
                        resourceStoreDto.getResId()
                )));
                resourceStoreDto.setTotalReturnQuantity(Vtil.defaultValue(os[116]));
                resourceStoreDto.setSupplier1(Vtil.defaultValue(os[129]));
                resourceStoreDto.setSupplier2(Vtil.defaultValue(os[130]));
                resourceStoreDto.setSupplier3(Vtil.defaultValue(os[131]));
            } catch (ArrayIndexOutOfBoundsException e) {
                //下标溢出不影响
            }
//            resourceStoreDto.setOutLowPrice(os[6].toString());
//            resourceStoreDto.setOutHighPrice(os[7].toString());
            resourceStoreDtos.add(resourceStoreDto);
            try {
                Thread.sleep(200);
            } catch (InterruptedException e) {
            }
        }
    }
    /**
     * 处理房产信息
     */
    private ResponseEntity<String> dealExcelData(IPageData pd, List<ImportResourceStoreDto> resourceStoreDtos, ComponentValidateResult result) {
        ResponseEntity<String> responseEntity = null;
        List<ImportResourceStoreDto> tmpImportResourceStoreDtos = new ArrayList<>();
        int flag = 0;
        JSONObject paramIn = JSONObject.parseObject(pd.getReqData());
        int successCount = 0;
        JSONObject data = new JSONObject();
        data.put("userId", result.getUserId());
        data.put("userName", result.getUserName());
        data.put("storeId", result.getStoreId());
        data.put("communityId", result.getCommunityId());
        data.put("shId", paramIn.getString("shId"));
//        data.put("shName", "系统仓库");
//        Map<String, String> com = new HashMap<>();
//        Map<String, String> rst = new HashMap<>();
        try {
            for (int roomIndex = 0; roomIndex < resourceStoreDtos.size(); roomIndex++) {
                String shId = null;
//                //第一步:仓库
//                try {
//                    if (com.containsKey(result.getCommunityId())) {//判断仓库是否存在
//                        shId = com.get(result.getCommunityId());//缓存中存在直接拿缓存的仓库编号
//                    } else {
//                        StorehouseDto storehouseDto = new StorehouseDto();
//
//                        storehouseDto.setCommunityId(result.getCommunityId());
//                        storehouseDto.setShName(data.getString("shName"));
//
//                        int i = storehouseV1InnerServiceSMOImpl.queryStorehousesCount(storehouseDto);
//
//                        if (i > 0) {//数据库中存在直接拿系统中的仓库编号,并存入缓存
//                            List<StorehouseDto> storehouseDtos = storehouseV1InnerServiceSMOImpl.queryStorehouses(storehouseDto);
//                            com.put(result.getCommunityId(), storehouseDtos.get(0).getShId());
//                        } else {//数据库没有,创建
//                            shId = GenerateCodeFactory.getGeneratorId(CODE_PREFIX_ID);
//                            StorehousePo storehousePo = new  StorehousePo();
//
//                            storehousePo.setShId(shId);
//                            storehousePo.setCommunityId(result.getCommunityId());
//                            storehousePo.setShName(data.getString("shName"));
//                            storehousePo.setAllocationSwitch("OFF");
//                            storehousePo.setAllowPurchase("ON");
//                            storehousePo.setAllowUse("ON");
//                            storehousePo.setIsShow("true");
//                            storehousePo.setPurchaseSwitch("OFF");
//                            storehousePo.setShDesc(data.getString("shName"));
//                            storehousePo.setUseSwitch("OFF");
//
//                            flag = storehouseV1InnerServiceSMOImpl.saveStorehouse(storehousePo);
//
//                            if (flag < 1) {
//                                throw new CmdException("保存数据失败");
//                            }
//                        }
//                    }
//                } catch (Exception e) {
//                    throw new IllegalArgumentException("创建仓库失败");
//                }
////
////                //一级分类
////                try {
////                    ResourceStoreTypeDto rstDto = new ResourceStoreTypeDto();
////                    rstDto.setName(resourceStoreDtos.get(roomIndex).getRstName());
////                    int i = resourceStoreTypeInnerServiceSMOImpl.queryResourceStoreTypesCount(rstDto);
////
////                    if (i > 0) {
////                        ResourceStoreTypeDto resourceStoreTypeDto = resourceStoreTypeInnerServiceSMOImpl.queryResourceStoreTypes(rstDto).get(0);
////
////                    }
////
////                } catch (Exception e) {
////                    throw new IllegalArgumentException("创建一级分类失败");
////                }
                resourceStoreDtos.get(roomIndex).setShId(shId);
                tmpImportResourceStoreDtos.add(resourceStoreDtos.get(roomIndex));
                if (tmpImportResourceStoreDtos.size() > DEFAULT_ROWS) {
                    flag = saveResourceStore(pd, tmpImportResourceStoreDtos, data);
                    tmpImportResourceStoreDtos = new ArrayList<>();
                    successCount += flag;
                }
            }
            if (tmpImportResourceStoreDtos.size() > 0) {
                flag = saveResourceStore(pd, tmpImportResourceStoreDtos, data);
                successCount += flag;
            }
        } catch (Exception e) {
            logger.error("导入失败", e);
            //按批次做撤销功能
            throw e;
        }
        return ResultVo.createResponseEntity("总共导入:" + tmpImportResourceStoreDtos.size() + ";成功导入:" + successCount + ";导入失败:" + (tmpImportResourceStoreDtos.size() - successCount));
    }
    /**
     * 创建费用
     *
     * @param pd
     * @param tmpImportResourceStoreDtos
     */
    private int saveResourceStore(IPageData pd, List<ImportResourceStoreDto> tmpImportResourceStoreDtos, JSONObject data) {
        JSONArray importRoomFees = JSONArray.parseArray(JSONObject.toJSONString(tmpImportResourceStoreDtos));
        data.put("importResourceStoreDtos", importRoomFees);
        String apiUrl = "resourceStore.importResourceStore";
        ResponseEntity<String> responseEntity = this.callCenterService(restTemplate, pd, data.toJSONString(), apiUrl, HttpMethod.POST);
        if (responseEntity.getStatusCode() != HttpStatus.OK) {
            throw new IllegalArgumentException(responseEntity.getBody());
        }
        JSONObject paramOut = JSONObject.parseObject(responseEntity.getBody());
        if (ResultVo.CODE_OK != paramOut.getInteger("code")) {
            throw new IllegalArgumentException(paramOut.getString("msg"));
        }
        return paramOut.getIntValue("data");
    }
    //解析Excel日期格式
    public static Date DoubleToDate(Double dVal) {
        Date tDate = new Date();
        long localOffset = tDate.getTimezoneOffset() * 60000; //系统时区偏移 1900/1/1 到 1970/1/1 的 25569 天
        tDate.setTime((long) ((dVal - 25569) * 24 * 3600 * 1000 + localOffset));
        return tDate;
    }
}
service-store/src/main/java/com/java110/store/cmd/resourceStore/ImportResourceStoreCmd.java
@@ -151,14 +151,47 @@
            resourceStorePo.setRstId(getRstId(importResourceStoreDto.getRstName(), storeId));
            resourceStorePo.setParentRstId(resourceStorePo.getRstId());
            resourceStorePo.setPrice(importResourceStoreDto.getPrice());
            resourceStorePo.setUnitCode(getUnitCode(importResourceStoreDto.getUnitCode(), dictDtos));
            resourceStorePo.setUnitCode(importResourceStoreDto.getUnitCode());
            resourceStorePo.setRemark(importResourceStoreDto.getRemark());
            resourceStorePo.setWarningStock(importResourceStoreDto.getWarningStock());
            resourceStorePo.setAveragePrice(importResourceStoreDto.getPrice());
            resourceStorePo.setCommunityId(reqJson.getString("communityId"));
            resourceStorePo.setCommunityName(importResourceStoreDto.getCommunityName());
            resourceStorePo.setTripleWaybillNo(importResourceStoreDto.getTripleWaybillNo());
            resourceStorePo.setSystemName(importResourceStoreDto.getSystemName());
            resourceStorePo.setModel(importResourceStoreDto.getModel());
            resourceStorePo.setBrand(importResourceStoreDto.getBrand());
            resourceStorePo.setSupplier(importResourceStoreDto.getSupplier());
            resourceStorePo.setRstName(importResourceStoreDto.getRstName());
// 预决算相关字段赋值
            resourceStorePo.setBudgetApproval(importResourceStoreDto.getBudgetApproval());
            resourceStorePo.setBudgetQuantity(importResourceStoreDto.getBudgetQuantity());
            resourceStorePo.setBudgetUnitPrice(importResourceStoreDto.getBudgetUnitPrice());
            resourceStorePo.setBudgetAmount(importResourceStoreDto.getBudgetAmount());
// 数量相关字段赋值
            resourceStorePo.setApplyQuantityTotal(importResourceStoreDto.getApplyQuantityTotal());
            resourceStorePo.setPurchaseQuantityTotal(importResourceStoreDto.getPurchaseQuantityTotal());
            resourceStorePo.setActualDeliveryQuantity(importResourceStoreDto.getActualDeliveryQuantity());
            resourceStorePo.setTotalReturnQuantity(importResourceStoreDto.getTotalReturnQuantity());
// 金额相关字段赋值
            resourceStorePo.setPayableAmountTotal(importResourceStoreDto.getPayableAmountTotal());
            resourceStorePo.setPaidAmountTotal(importResourceStoreDto.getPaidAmountTotal());
            resourceStorePo.setUnpaidAmountTotal(importResourceStoreDto.getUnpaidAmountTotal());
            resourceStorePo.setPayableAmount(importResourceStoreDto.getPayableAmount());
            resourceStorePo.setPaidAmount(importResourceStoreDto.getPaidAmount());
            resourceStorePo.setUnpaidAmount(importResourceStoreDto.getUnpaidAmount());
// 其他特殊字段赋值
            resourceStorePo.setIsOccurred(importResourceStoreDto.getIsOccurred());
            resourceStorePo.setSupplier1(importResourceStoreDto.getSupplier1());
            resourceStorePo.setSupplier2(importResourceStoreDto.getSupplier2());
            resourceStorePo.setSupplier3(importResourceStoreDto.getSupplier3());
            int flag = 0;
            if (ListUtil.isNull(resourceStoreDtos)) {
                resourceStorePo.setResId(GenerateCodeFactory.getResId(GenerateCodeFactory.CODE_PREFIX_resId));
                resourceStorePo.setResId(resourceStoreDto.getResId() == null ? GenerateCodeFactory.getResId(GenerateCodeFactory.CODE_PREFIX_resId) : resourceStoreDto.getResId());
                flag = resourceStoreV1InnerServiceSMOImpl.saveResourceStore(resourceStorePo);
service-store/src/main/java/com/java110/store/cmd/resourceStore/ListResourceStoresCmd.java
@@ -240,12 +240,12 @@
            if (resourceStoreTimesDtos == null || resourceStoreTimesDtos.size() < 1) {
                continue;
            }
            for (ResourceStoreTimesDto resourceStoreTimesDto : resourceStoreTimesDtos) {
                stock = stock.add(new BigDecimal(resourceStoreTimesDto.getStock())).setScale(2, BigDecimal.ROUND_HALF_EVEN);
                totalPrice = totalPrice.add(new BigDecimal(resourceStoreTimesDto.getTotalPrice())).setScale(2, BigDecimal.ROUND_HALF_EVEN);
            }
            resourceStore.setStock(stock.doubleValue() + "");
            resourceStore.setTotalPrice(totalPrice.doubleValue() + "");
//            for (ResourceStoreTimesDto resourceStoreTimesDto : resourceStoreTimesDtos) {
//                stock = stock.add(new BigDecimal(resourceStoreTimesDto.getStock())).setScale(2, BigDecimal.ROUND_HALF_EVEN);
//                totalPrice = totalPrice.add(new BigDecimal(resourceStoreTimesDto.getTotalPrice())).setScale(2, BigDecimal.ROUND_HALF_EVEN);
//            }
//            resourceStore.setStock(stock.doubleValue() + "");
//            resourceStore.setTotalPrice(totalPrice.doubleValue() + "");
        }
    }
}
service-store/src/main/java/com/java110/store/smo/impl/PurchaseApplyInnerServiceSMOImpl.java
@@ -12,6 +12,7 @@
import com.java110.po.purchase.PurchaseApplyPo;
import com.java110.store.dao.IPurchaseApplyServiceDao;
import com.java110.utils.util.BeanConvertUtil;
import com.java110.utils.util.DateUtil;
import com.java110.vo.api.purchaseApply.PurchaseApplyDetailVo;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestBody;
@@ -41,19 +42,24 @@
    @Override
    public int savePurchaseApply(@RequestBody PurchaseApplyPo purchaseApplyPo) {
        List<PurchaseApplyDetailPo> purchaseApplyDetailPos = purchaseApplyPo.getPurchaseApplyDetailPos();
        for (PurchaseApplyDetailPo purchaseApplyDetailPo : purchaseApplyDetailPos) {
            purchaseApplyDetailPo.setApplyOrderId(purchaseApplyPo.getApplyOrderId());
        purchaseApplyPo.setCreateTime(DateUtil.getNow(DateUtil.DATE_FORMATE_STRING_A));
        if (purchaseApplyPo.getState() == null) {
            purchaseApplyPo.setState("1");
        }
        List<PurchaseApplyDetailPo> purchaseApplyDetailPos = purchaseApplyPo.getPurchaseApplyDetailPos();
        int saveFlag = purchaseApplyServiceDaoImpl.savePurchaseApply(BeanConvertUtil.beanCovertMap(purchaseApplyPo));
        if (saveFlag < 1) {
            return saveFlag;
        }
        if (purchaseApplyDetailPos == null) {
            return 0;
        }
        for (PurchaseApplyDetailPo purchaseApplyDetailPo : purchaseApplyDetailPos) {
            purchaseApplyDetailPo.setApplyOrderId(purchaseApplyPo.getApplyOrderId());
        }
        //保存订单明细
        saveFlag = purchaseApplyServiceDaoImpl.savePurchaseApplyDetailInfo(purchaseApplyDetailPos);
        return saveFlag;