Commit 76f82f5d by 高晓磊

同步销售记录

parent f5988d6d
......@@ -11,6 +11,10 @@ public interface NeedPlanConstant {
*/
String NEED_PLAN_ENTITY = "com.xyst.dinas.sales.datamodel.NeedPlan";
/**
* 子表实体名
*/
String NEED_PLAN_DETAIL_ENTITY = "com.xyst.dinas.sales.datamodel.NeedPlanAssociatedNeedPlanDetail";
/**
* 需用计划量
*/
String needPlanAmount = "needPlanAmount";
......
......@@ -30,5 +30,5 @@ public interface NeedPlanDao {
List<KObject> getByCarAndPlanningCycle(String carNum, KObject planningCycleObj);
KObject queryDetailById(UUID fromString);
}
......@@ -44,6 +44,13 @@ public class SalesPlanDao {
return (KObject) template.get(SalesPlanConstant.ENTITY, id);
}
public KObject loadDetail(UUID sealDetailId) {
return (KObject) template.get(SalesPlanConstant.ENTITY_DETAIL, sealDetailId);
}
public KObject loadTempDetail(UUID sealDetailId) {
return (KObject) template.get(SalesPlanConstant.ENTITY_TEMP_DETAIL, sealDetailId);
}
public UUID create(KObject kObject) {
return (UUID) template.save(kObject.getType().getName(), kObject);
}
......@@ -356,5 +363,33 @@ public class SalesPlanDao {
detachedCriteria.add(Restrictions.like("carNumber", "%"+carNum+"%"));
return (List<KObject>) template.findByCriteria(detachedCriteria);
}
public void updateSalesPlanTempAmount(String salePlanTempId, BigDecimal dealamount) {
KObject o =(KObject) template.get(SalesPlanConstant.ENTITY_TEMP_DETAIL, UUID.fromString(salePlanTempId));
if(o==null||o.isNull()||o.isEmpty()){
return;
}
BigDecimal actualSaleAmount = o.getBigDecimal("actualSaleAmount");
if(actualSaleAmount==null){
actualSaleAmount=BigDecimal.ZERO;
}
o.set("actualSaleAmount",actualSaleAmount.add(dealamount));
template.update(o);
}
public void updateSalesPlanDetailAmount(String salePlanDetailId, Double dealAmount) {
KObject o =(KObject) template.get(SalesPlanConstant.ENTITY_DETAIL, UUID.fromString(salePlanDetailId));
if(o==null||o.isNull()||o.isEmpty()){
return;
}
BigDecimal actualSaleAmount = o.getBigDecimal("actualSaleAmount");
if(actualSaleAmount==null){
actualSaleAmount=BigDecimal.ZERO;
}
o.set("actualSaleAmount",actualSaleAmount.add(BigDecimal.valueOf(dealAmount)));
template.update(o);
}
}
......@@ -8,6 +8,7 @@ import com.beecode.amino.core.Amino;
import com.beecode.bcp.type.KClass;
import com.xyst.dinas.biz.dao.DinasTypeDao;
import com.xyst.dinas.biz.enumeration.SubmitStateEnum;
import com.xyst.dinas.sales.constant.SalesPlanConstant;
import com.xyst.dinas.sales.enumeration.TransportModeEnum;
import org.hibernate.HibernateException;
import org.hibernate.Session;
......@@ -170,4 +171,9 @@ public class NeedPlanDaoImpl implements NeedPlanDao, NeedPlanConstant {
return (List<KObject>)template.findByCriteria(detachedCriteria);
}
@Override
public KObject queryDetailById(UUID fromString) {
return (KObject) template.get(NEED_PLAN_DETAIL_ENTITY, fromString);
}
}
......@@ -45,8 +45,6 @@ public class NeedPlanServiceImpl implements NeedPlanService {
if (needPlanDetailsList.size() > 0) {
kObject = needPlanDetailsList.stream().filter(detail -> detail.get("dinasType").getUuid("id").equals(dinasTypeId)).findAny().orElse(null);
}
Map<String, Object> map = new HashMap<>();
map.put("needPlanAmount", kObject);
return kObject;
}
......
......@@ -613,7 +613,7 @@ public class SalesPlanServiceImpl implements SalesPlanService {
//需用计划id
stringObjectHashMap.put("needPlanId", saleTempDetail.getUuid("id"));
//需用计划砂石id
stringObjectHashMap.put("needDinasTypeId", saleTempDetail.getUuid("id"));
stringObjectHashMap.put("needPlanDetailId", saleTempDetail.getUuid("id"));
//本周期已拉取量
stringObjectHashMap.put("effectiveSale", saleTempDetail.getBigDecimal("actualSaleAmount"));
//本周期分配量
......@@ -674,7 +674,7 @@ public class SalesPlanServiceImpl implements SalesPlanService {
//需用计划id
stringObjectHashMap.put("needPlanId", plan.getUuid("id"));
//需用计划砂石id
stringObjectHashMap.put("needDinasTypeId", needPlanDetail.getUuid("id"));
stringObjectHashMap.put("needPlanDetailId", needPlanDetail.getUuid("id"));
//本周期已拉取量
stringObjectHashMap.put("effectiveSale", needPlanDetail.getBigDecimal("effectiveSale"));
//本周期分配量
......
......@@ -75,19 +75,13 @@ public class SalesRecordServiceImpl implements SalesRecordService {
@Transactional
@Override
public String saveSalesRecordService(List<SalesRecordInfo> salesRecordInfoList, KObject station) {
String state = "success";
public String saveSalesRecordService(SalesRecordInfo salesRecordInfo, KObject station) {
try {
Date thentime = new Date();
List<UUID> salesRecordIdList = new ArrayList<>();
for (SalesRecordInfo salesRecordInfo : salesRecordInfoList) {
// 获取砂石类型
KObject dinasType = null;
dinasType = dinasTypeDao.load(UUID.fromString(salesRecordInfo.getDinasType()));
dinasType = dinasTypeDao.load(UUID.fromString(salesRecordInfo.getDinasTypeId()));
KObject regionalCompany = null;
//获取区域公司
regionalCompany = station.get("regionalCompany");
......@@ -105,74 +99,75 @@ public class SalesRecordServiceImpl implements SalesRecordService {
salesRecord.set(SalesRecordConstant.SYNCTIME, thentime);
salesRecord.set(SalesRecordConstant.DEALBILLCODE, salesRecordInfo.getDealBillCode());
salesRecord.set(SalesRecordConstant.CARINFO, salesRecordInfo.getCarInfo());
salesRecord.set(SalesRecordConstant.DEALAMOUNT, salesRecordInfo.getDealAmount());
salesRecord.set(SalesRecordConstant.PRICE, salesRecordInfo.getPrice());
salesRecord.set(SalesRecordConstant.PAYMENTSOURCE, salesRecordInfo.getPaymentSource());
salesRecord.set(SalesRecordConstant.TRANSPORT_TYPE, salesRecordInfo.getTransportType());
salesRecord.set(SalesRecordConstant.SALE_TYPE, salesRecordInfo.getSaleType());
Integer saleType = salesRecordInfo.getSaleType();
salesRecord.set(SalesRecordConstant.SALE_TYPE, saleType);
salesRecord.set(SalesRecordConstant.REGIONALCOMPANY, regionalCompany);
salesRecord.set(SalesRecordConstant.DINASTYPE, dinasType);
salesRecord.set(SalesRecordConstant.CARINFO, salesRecordInfo.getCarInfo());
//如果是散客则全部新增
if (2 == salesRecordInfo.getSaleType()) {
salesRecordInfo.setCustomerType(CustomerTypeEnum.RetailInfo.name());
retailInfoService.create(station, dinasType, salesRecordInfo.getRetailName(), salesRecordInfo.getRetailIdNum(), salesRecordInfo.getCarInfo(), salesRecordInfo.getDealAmount(), salesRecordInfo.getAmount());
if (2 == saleType) {
salesRecord.set(SalesRecordConstant.CUSTOMERTYPE,CustomerTypeEnum.RetailInfo.name());
retailInfoService.create(station, dinasType, salesRecordInfo.getRetailName(), salesRecordInfo.getCarInfo(), salesRecordInfo.getCarInfo(), salesRecordInfo.getDealAmount(), salesRecordInfo.getAmount());
} else {
//如果不为2则必定有合同 项目 购砂单位 区域公司
salesRecordInfo.setCustomerType(CustomerTypeEnum.PurchaseSandCompany.name());
salesRecord.set(SalesRecordConstant.CUSTOMERTYPE,CustomerTypeEnum.PurchaseSandCompany.name());
// 获取项目KObject
KObject project = null;
KObject contract = null;
KObject purchaseSandCompany = null;
KObject project;
KObject contract;
KObject purchaseSandCompany;
contract = contractDao.load(UUID.fromString(salesRecordInfo.getContract()));
contract = contractDao.load(UUID.fromString(salesRecordInfo.getContractId()));
// 获取合同KObject
project = contract.get("project");
// 获取区域公司KObject
regionalCompany = contract.get("regionalCompany");
// 获取购砂单位KObject
purchaseSandCompany = contract.get("purchaseSandUnit");
// 获取销售台账Kobject
salesRecord.set(SalesRecordConstant.PROJECT, project);
salesRecord.set(SalesRecordConstant.REGIONALCOMPANY, regionalCompany);
salesRecord.set(SalesRecordConstant.CONTRACT, contract);
if (CustomerTypeEnum.PurchaseSandCompany.name().equals(salesRecordInfo.getCustomerType())) {
salesRecord.set(SalesRecordConstant.PURCHASESANDCOMPANY, purchaseSandCompany);
}
salesRecord.set(SalesRecordConstant.DEALAMOUNT,salesRecordInfo.getDealAmount() == null ? BigDecimal.ZERO: BigDecimal.valueOf(salesRecordInfo.getDealAmount()));
salesRecord.set(SalesRecordConstant.DISCARD, false);
salesRecord.set(SalesRecordConstant.DEL, false);
BigDecimal DEALAMOUNT = BigDecimal.ZERO
.subtract(BigDecimal.valueOf(salesRecord.getDouble(SalesRecordConstant.DEALAMOUNT)));
BigDecimal AMOUNT;
if (PayMentSourceEnum.Advance.name().equals(salesRecordInfo.getPaymentSource())) {
AMOUNT = BigDecimal.ZERO.subtract(BigDecimal.valueOf(salesRecord.getDouble(SalesRecordConstant.AMOUNT)));
BigDecimal dealAmount = BigDecimal.ZERO.subtract(BigDecimal.valueOf(salesRecord.getDouble(SalesRecordConstant.DEALAMOUNT)));
BigDecimal amount;
if (0==salesRecordInfo.getPaymentSource()) {
amount = BigDecimal.ZERO.subtract(BigDecimal.valueOf(salesRecord.getDouble(SalesRecordConstant.AMOUNT)));
} else {
AMOUNT = BigDecimal.ZERO;
amount = BigDecimal.ZERO;
}
// 更新合同子表合同砂石余量(吨)-更新合同表付款余额、销售总量信息
boolean flag = contractService.modifyInventory(UUID.fromString(salesRecordInfo.getContract()),
UUID.fromString(salesRecordInfo.getDinasType()), DEALAMOUNT, AMOUNT);
// 更新销售计划
UUID planningCycleId = planningCycleService
.getPlanningCycleObjBySum(regionalCompany.getString("planningCycle"), salesRecordInfo.getDealTime());
KObject salesPlan = entityExistenceCheck("销售计划", salesPlanDao.querySalesPlanByPlan(
UUID.fromString(salesRecordInfo.getRegionalCompany()), planningCycleId), false);
BigDecimal actualSaleTotalAmount = salesPlan.get("actualSaleTotalAmount") == null ? BigDecimal.ZERO
: new BigDecimal(salesPlan.getInt("actualSaleTotalAmount"));
salesPlan.set("actualSaleTotalAmount", actualSaleTotalAmount.subtract(DEALAMOUNT));
contractService.modifyInventory(UUID.fromString(salesRecordInfo.getContractId()),
UUID.fromString(salesRecordInfo.getDinasTypeId()), dealAmount, amount);
//根据销售类型判断修改需用计划还是临时销售计划
//
if(saleType==0){
//为0时是临时销售计划,salePlanId存储的值也是临时销售计划的值
String salePlanTempId = salesRecordInfo.getSalePlanId();
salesPlanDao.updateSalesPlanTempAmount(salePlanTempId,dealAmount);
}else if(saleType==1) {
// 为1时是需用计划和销售计划
KObject salesPlan = salesPlanDao.load(UUID.fromString(salesRecordInfo.getSalePlanId()));
BigDecimal actualSaleTotalAmount = salesPlan.get("actualSaleTotalAmount") == null ? BigDecimal.ZERO: (salesPlan.getBigDecimal("actualSaleTotalAmount"));
salesPlan.set("actualSaleTotalAmount", actualSaleTotalAmount.subtract(dealAmount));
salesPlanDao.update(salesPlan);
boolean flag1 = salesPlanDao.updateSalesPlanAmount(salesPlan, dinasType.getUuid("id"), contract.getUuid("id"),
project.getUuid("id"), purchaseSandCompany.getUuid("id"), DEALAMOUNT);
KObject needPlanAmount = entityExistenceCheck("需用计划",
needPlanServiceImpl.queryNeedPlanAmountByDinasType(planningCycleId, contract.getUuid("id"),
dinasType.getUuid("id")), false);
if (needPlanAmount != null) {
BigDecimal effectiveSale = needPlanAmount.get("effectiveSale") == null ? BigDecimal.ZERO
: new BigDecimal(needPlanAmount.getInt("needPlanAmount"));
needPlanAmount.set("effectiveSale", effectiveSale.subtract(DEALAMOUNT));
needPlanDao.update(needPlanAmount);
salesPlanDao.updateSalesPlanDetailAmount(salesRecordInfo.getSalePlanDetailId(),salesRecordInfo.getDealAmount());
KObject needPlanDetail = needPlanDao.queryDetailById(UUID.fromString(salesRecordInfo.getNeedPlanDetailId()));
if (needPlanDetail != null) {
BigDecimal effectiveSale = needPlanDetail.get("effectiveSale") == null ? BigDecimal.ZERO : needPlanDetail.getBigDecimal("effectiveSale");
needPlanDetail.set("effectiveSale", effectiveSale.subtract(dealAmount));
needPlanDao.update(needPlanDetail);
}
}
}
// 此处为Jason格式,多重嵌套
......@@ -196,14 +191,19 @@ public class SalesRecordServiceImpl implements SalesRecordService {
inventoryService.modifyInventory(params.toString(), false, true);
}
UUID salesRecordId = salesRecordDao.insert(salesRecord);
//将地磅记录同时保存到运输记录,需要判断是配送还是自提,或者直接根据车牌号判断,如果非配送的车牌应该在派单中没有记录
if(salesRecordInfo.getTransportType()==1){
//修改运输单的值
// updateTransport();
//将地磅记录同时保存到运输记录
saveAstTransportRecord(salesRecord);
salesRecordIdList.add(salesRecordId);
}
return salesRecordId.toString();
} catch (Exception e) {
throw new SyncException("销售台账信息存储报出错:" + e.getMessage());
}
return state;
}
private void saveAstTransportRecord(KObject salesRecord) {
......@@ -223,7 +223,7 @@ public class SalesRecordServiceImpl implements SalesRecordService {
private String dataExistenceCheck(String name, String value) {
String result = null;
if (null != value && "" != value) {
if (null != value && !"".equals(value)) {
result = value;
} else {
throw new SyncException("[" + name + "]信息为空!请确认");
......@@ -442,8 +442,6 @@ public class SalesRecordServiceImpl implements SalesRecordService {
salesRecord.set(SalesRecordConstant.CREATETIME, new Date());
salesRecord.set(SalesRecordConstant.MODIFYTIME, new Date());
salesRecord.set(SalesRecordConstant.REGIONALCOMPANY, regionalCompany);
// salesRecord.set(SalesRecordConstant.PROJECT, null);
// salesRecord.set(SalesRecordConstant.CONTRACT, null);
salesRecord.set(SalesRecordConstant.RETAILINFO, retailInfo);
salesRecord.set(SalesRecordConstant.STATION, station);
salesRecord.set(SalesRecordConstant.PRODUCTIONLINE, productionLine);
......
......@@ -14,9 +14,9 @@ public interface SalesRecordService {
* 主要用于外部接口调用
* @param salesRecordList 销售台账List
* @param station
* @return 返回存储状态 failure/失败 success/成功
* @return
*/
String saveSalesRecordService(List<SalesRecordInfo> salesRecordList, KObject station);
String saveSalesRecordService(SalesRecordInfo salesRecordList, KObject station);
HashMap<String,Object> qualityReportExcelImport(MultipartFile file);
}
......@@ -2,49 +2,49 @@ package com.xyst.dinas.sales.web.info;
import java.util.Date;
/**
* @author asdad
* 销售记录表
*/
public class SalesRecordInfo {
/**
* 修改时间
*/
private String modifyTime;
/**
* 项目
*/
private String project;
private String projectId;
/**
* 区域公司
*/
private String regionalCompany;
private String regionalCompanyId;
/**
* 合同
*/
private String contract;
private String contractId;
/**
* 购砂单位
* 购砂单位,只有saleType为1时有值
*/
private String purchaseSandCompany;
private String purchaseSandCompanyId;
/**
* 场站
*/
private String station;
/**
* 散户名称
*/
private String retailName;
private String stationId;
/**
* 散户身份证号
* 砂石种类
*/
private String retailIdNum;
private String dinasTypeId;
/**
* 砂石种类
* 散户名称
*/
private String dinasType;
private String retailName;
/**
* 客户类型
* 客户类型 0购砂单位 1散客
*/
private String customerType;
private Integer customerType;
/**
* 销售时间
*/
......@@ -69,7 +69,6 @@ public class SalesRecordInfo {
* 皮重
*/
private String tareWeight;
/**
* 毛重
*/
......@@ -84,25 +83,28 @@ public class SalesRecordInfo {
*/
private String tareWeightPerson;
/**
* 计划周期
* 周期id
*/
private String planningCycle;
private String planningCycleId;
/**
* 需用计划id
* saleType为1是需用计划id,saleType不为1时无用
*/
private String needPlan;
private String needPlanId;
/**
* 销售计划id
* saleType为1是需用计划子表id,saleType不为1时无用
*/
private String salePlan;
private String needPlanDetailId;
/**
* 临时销售计划id
* saleType为1是销售计划id,saleType为0是临时销售计划id
*/
private String salePlanTemp;
private String salePlanId;
/**
* saleType为1是销售计划id,saleType为0是临时销售计划id
*/
private String salePlanDetailId;
/**
* 销售数量
......@@ -117,9 +119,9 @@ public class SalesRecordInfo {
*/
private Double amount;
/**
* 付款来源
* 付款来源,0为预付款,1为非预付款
*/
private String paymentSource;
private Integer paymentSource;
/**
* 销售单号
*/
......@@ -136,60 +138,52 @@ public class SalesRecordInfo {
private Integer saleType;
public String getGrossWeight() {
return grossWeight;
}
public void setGrossWeight(String grossWeight) {
this.grossWeight = grossWeight;
}
public String getModifyTime() {
return modifyTime;
public String getProjectId() {
return projectId;
}
public void setModifyTime(String modifyTime) {
this.modifyTime = modifyTime;
public void setProjectId(String projectId) {
this.projectId = projectId;
}
public String getProject() {
return project;
public String getRegionalCompanyId() {
return regionalCompanyId;
}
public void setProject(String project) {
this.project = project;
public void setRegionalCompanyId(String regionalCompanyId) {
this.regionalCompanyId = regionalCompanyId;
}
public String getRegionalCompany() {
return regionalCompany;
public String getContractId() {
return contractId;
}
public void setRegionalCompany(String regionalCompany) {
this.regionalCompany = regionalCompany;
public void setContractId(String contractId) {
this.contractId = contractId;
}
public String getContract() {
return contract;
public String getPurchaseSandCompanyId() {
return purchaseSandCompanyId;
}
public void setContract(String contract) {
this.contract = contract;
public void setPurchaseSandCompanyId(String purchaseSandCompanyId) {
this.purchaseSandCompanyId = purchaseSandCompanyId;
}
public String getPurchaseSandCompany() {
return purchaseSandCompany;
public String getStationId() {
return stationId;
}
public void setPurchaseSandCompany(String purchaseSandCompany) {
this.purchaseSandCompany = purchaseSandCompany;
public void setStationId(String stationId) {
this.stationId = stationId;
}
public String getStation() {
return station;
public String getDinasTypeId() {
return dinasTypeId;
}
public void setStation(String station) {
this.station = station;
public void setDinasTypeId(String dinasTypeId) {
this.dinasTypeId = dinasTypeId;
}
public String getRetailName() {
......@@ -200,31 +194,22 @@ public class SalesRecordInfo {
this.retailName = retailName;
}
public String getRetailIdNum() {
return retailIdNum;
}
public void setRetailIdNum(String retailIdNum) {
this.retailIdNum = retailIdNum;
}
public String getDinasType() {
return dinasType;
public Integer getCustomerType() {
return customerType;
}
public void setDinasType(String dinasType) {
this.dinasType = dinasType;
public void setCustomerType(Integer customerType) {
this.customerType = customerType;
}
public String getCustomerType() {
return customerType;
public Date getDealTime() {
return dealTime;
}
public void setCustomerType(String customerType) {
this.customerType = customerType;
public void setDealTime(Date dealTime) {
this.dealTime = dealTime;
}
public String getCarInfo() {
return carInfo;
}
......@@ -233,140 +218,147 @@ public class SalesRecordInfo {
this.carInfo = carInfo;
}
public Double getDealAmount() {
return dealAmount;
public Date getGrossWeightTime() {
return grossWeightTime;
}
public void setDealAmount(Double dealAmount) {
this.dealAmount = dealAmount;
public void setGrossWeightTime(Date grossWeightTime) {
this.grossWeightTime = grossWeightTime;
}
public Double getPrice() {
return price;
public Date getTareWeightTime() {
return tareWeightTime;
}
public void setPrice(Double price) {
this.price = price;
public void setTareWeightTime(Date tareWeightTime) {
this.tareWeightTime = tareWeightTime;
}
public Double getAmount() {
return amount;
public String getTareWeight() {
return tareWeight;
}
public void setAmount(Double amount) {
this.amount = amount;
public void setTareWeight(String tareWeight) {
this.tareWeight = tareWeight;
}
public String getPaymentSource() {
return paymentSource;
public String getGrossWeight() {
return grossWeight;
}
public void setPaymentSource(String paymentSource) {
this.paymentSource = paymentSource;
public void setGrossWeight(String grossWeight) {
this.grossWeight = grossWeight;
}
public String getDealBillCode() {
return dealBillCode;
public String getGrossWeightPerson() {
return grossWeightPerson;
}
public void setDealBillCode(String dealBillCode) {
this.dealBillCode = dealBillCode;
public void setGrossWeightPerson(String grossWeightPerson) {
this.grossWeightPerson = grossWeightPerson;
}
public String getTareWeightPerson() {
return tareWeightPerson;
}
public String getTareWeight() {
return tareWeight;
public void setTareWeightPerson(String tareWeightPerson) {
this.tareWeightPerson = tareWeightPerson;
}
public void setTareWeight(String tareWeight) {
this.tareWeight = tareWeight;
public String getPlanningCycleId() {
return planningCycleId;
}
public String getGrossWeightPerson() {
return grossWeightPerson;
public void setPlanningCycleId(String planningCycleId) {
this.planningCycleId = planningCycleId;
}
public void setGrossWeightPerson(String grossWeightPerson) {
this.grossWeightPerson = grossWeightPerson;
public String getNeedPlanId() {
return needPlanId;
}
public String getTareWeightPerson() {
return tareWeightPerson;
public void setNeedPlanId(String needPlanId) {
this.needPlanId = needPlanId;
}
public void setTareWeightPerson(String tareWeightPerson) {
this.tareWeightPerson = tareWeightPerson;
public String getNeedPlanDetailId() {
return needPlanDetailId;
}
public String getPlanningCycle() {
return planningCycle;
public void setNeedPlanDetailId(String needPlanDetailId) {
this.needPlanDetailId = needPlanDetailId;
}
public void setPlanningCycle(String planningCycle) {
this.planningCycle = planningCycle;
public String getSalePlanId() {
return salePlanId;
}
public String getNeedPlan() {
return needPlan;
public void setSalePlanId(String salePlanId) {
this.salePlanId = salePlanId;
}
public void setNeedPlan(String needPlan) {
this.needPlan = needPlan;
public String getSalePlanDetailId() {
return salePlanDetailId;
}
public String getSalePlan() {
return salePlan;
public void setSalePlanDetailId(String salePlanDetailId) {
this.salePlanDetailId = salePlanDetailId;
}
public void setSalePlan(String salePlan) {
this.salePlan = salePlan;
public Double getDealAmount() {
return dealAmount;
}
public String getSalePlanTemp() {
return salePlanTemp;
public void setDealAmount(Double dealAmount) {
this.dealAmount = dealAmount;
}
public void setSalePlanTemp(String salePlanTemp) {
this.salePlanTemp = salePlanTemp;
public Double getPrice() {
return price;
}
public Integer getTransportType() {
return transportType;
public void setPrice(Double price) {
this.price = price;
}
public void setTransportType(Integer transportType) {
this.transportType = transportType;
public Double getAmount() {
return amount;
}
public Integer getSaleType() {
return saleType;
public void setAmount(Double amount) {
this.amount = amount;
}
public void setSaleType(Integer saleType) {
this.saleType = saleType;
public Integer getPaymentSource() {
return paymentSource;
}
public Date getDealTime() {
return dealTime;
public void setPaymentSource(Integer paymentSource) {
this.paymentSource = paymentSource;
}
public void setDealTime(Date dealTime) {
this.dealTime = dealTime;
public String getDealBillCode() {
return dealBillCode;
}
public Date getGrossWeightTime() {
return grossWeightTime;
public void setDealBillCode(String dealBillCode) {
this.dealBillCode = dealBillCode;
}
public void setGrossWeightTime(Date grossWeightTime) {
this.grossWeightTime = grossWeightTime;
public Integer getTransportType() {
return transportType;
}
public Date getTareWeightTime() {
return tareWeightTime;
public void setTransportType(Integer transportType) {
this.transportType = transportType;
}
public void setTareWeightTime(Date tareWeightTime) {
this.tareWeightTime = tareWeightTime;
public Integer getSaleType() {
return saleType;
}
public void setSaleType(Integer saleType) {
this.saleType = saleType;
}
}
......@@ -87,6 +87,44 @@
<m:attribute>
<m:annotations>
<m:annotation>
<m:type>javax.persistence.Column</m:type>
<m:properties>
<m:property>
<m:key>name</m:key>
<m:value>gross_weight_time</m:value>
</m:property>
</m:properties>
</m:annotation>
</m:annotations>
<m:id>ca273c9d-0981-4f6d-94b4-4a3b76742a1e</m:id>
<m:name>grossWeightTime</m:name>
<m:title>毛重时间</m:title>
<m:type>datetime</m:type>
<m:description></m:description>
<m:default></m:default>
</m:attribute>
<m:attribute>
<m:annotations>
<m:annotation>
<m:type>javax.persistence.Column</m:type>
<m:properties>
<m:property>
<m:key>name</m:key>
<m:value>tare_weight_time</m:value>
</m:property>
</m:properties>
</m:annotation>
</m:annotations>
<m:id>ca273c9d-0981-4f6d-94b4-4a3b76742a1e</m:id>
<m:name>tareWeightTime</m:name>
<m:title>皮重时间</m:title>
<m:type>datetime</m:type>
<m:description></m:description>
<m:default></m:default>
</m:attribute>
<m:attribute>
<m:annotations>
<m:annotation>
<m:type>javax.persistence.ManyToOne</m:type>
</m:annotation>
<m:annotation>
......@@ -379,6 +417,52 @@
<m:attribute>
<m:annotations>
<m:annotation>
<m:type>bcp.type.constraint.StringLength</m:type>
<m:value>20</m:value>
</m:annotation>
<m:annotation>
<m:type>javax.persistence.Column</m:type>
<m:properties>
<m:property>
<m:key>name</m:key>
<m:value>gross_weight_person</m:value>
</m:property>
</m:properties>
</m:annotation>
</m:annotations>
<m:id>9ed97388-563a-4634-a555-b56bb1664dd0</m:id>
<m:name>grossWeightPerson</m:name>
<m:title>毛重司磅员</m:title>
<m:type>string</m:type>
<m:description></m:description>
<m:default></m:default>
</m:attribute>
<m:attribute>
<m:annotations>
<m:annotation>
<m:type>bcp.type.constraint.StringLength</m:type>
<m:value>20</m:value>
</m:annotation>
<m:annotation>
<m:type>javax.persistence.Column</m:type>
<m:properties>
<m:property>
<m:key>name</m:key>
<m:value>tare_weight_person</m:value>
</m:property>
</m:properties>
</m:annotation>
</m:annotations>
<m:id>9ed97388-563a-4634-a555-b56bb1664dd0</m:id>
<m:name>tareWeightPerson</m:name>
<m:title>皮重司磅员</m:title>
<m:type>string</m:type>
<m:description></m:description>
<m:default></m:default>
</m:attribute>
<m:attribute>
<m:annotations>
<m:annotation>
<m:type>bcp.type.constraint.Numeric</m:type>
<m:properties>
<m:property>
......
......@@ -9,6 +9,8 @@ import com.xyst.dinas.price.enumeration.PriceAdjustmentAdjustmentStatusEnum;
import com.xyst.dinas.sales.constant.SalesPlanConstant;
import com.xyst.dinas.sales.constant.SalesRecordConstant;
import com.xyst.dinas.sales.dao.InventoryDao;
import com.xyst.dinas.sales.dao.NeedPlanDao;
import com.xyst.dinas.sales.dao.SalesPlanDao;
import com.xyst.dinas.transport.constant.VehicleDriverUserConstant;
import com.xyst.dinas.transport.constant.VehicleDispatchConstant;
import com.xyst.dinas.transport.dao.VehicleDispatchDao;
......@@ -35,13 +37,16 @@ public class VehicleDispatchServiceImpl implements VehicleDispatchService {
private VehicleDispatchDao vehicleDispatchDao;
@Autowired
private DinasTypeDao dinasTypeDao;
@Autowired
private DriverUserDao driverUserDao;
@Autowired
private VehicleDriverUserDao vehicleDriverUserDao;
@Autowired
private InventoryDao inventoryDao;
@Autowired
private SalesPlanDao salesPlanDao;
@Autowired
private NeedPlanDao needPlanDao;
@Override
public UUID create(KObject kobject) {
......@@ -178,7 +183,8 @@ public class VehicleDispatchServiceImpl implements VehicleDispatchService {
KObject project = dispatch.get("project");
KObject dinasType = dispatch.get("dinasType");
KObject contract = dispatch.get("contract");
UUID sealDetailId = dispatch.getUuid("sealDetailId");
int dispatchType = dispatch.getInt("dispatchType");
Map<String, Object> stringObjectHashMap = new HashMap<String, Object>();
//车牌号
stringObjectHashMap.put("carNum", carNum);
......@@ -192,7 +198,7 @@ public class VehicleDispatchServiceImpl implements VehicleDispatchService {
stringObjectHashMap.put("projectCode", project.getString("projectNum"));
//项目id
stringObjectHashMap.put("projectId", project.getUuid("id"));
//项目id
//合同id
stringObjectHashMap.put("contractId", contract.getUuid("id"));
//砂石类型名称
stringObjectHashMap.put("dinasTypeName", dinasType.getString("dinasTypeName"));
......@@ -200,14 +206,37 @@ public class VehicleDispatchServiceImpl implements VehicleDispatchService {
stringObjectHashMap.put("dinasTypeId", dinasType.getUuid("id"));
//本次需用量
stringObjectHashMap.put("needPlanAmount", dispatch.getBigDecimal("planAmount"));
//需用计划id
stringObjectHashMap.put("needPlanId", dispatch.getUuid("id"));
//需用计划砂石id
stringObjectHashMap.put("needDinasTypeId", dispatch.getUuid("id"));
//本周期已拉取量
stringObjectHashMap.put("effectiveSale", dispatch.getBigDecimal("actualTransportation"));
//本周期分配量
stringObjectHashMap.put("planAmount", dispatch.getBigDecimal("planAmount"));
if(dispatchType==DispatchTypeEnum.SALE_TEMP_PLAN.getValue()){
KObject salePlanTemp = salesPlanDao.loadTempDetail(sealDetailId);
//临时销售计划没有需用计划,这里值仅做填充
//需用计划id
stringObjectHashMap.put("needPlanId", salePlanTemp.get("master").getUuid("id"));
//需用计划砂石id
stringObjectHashMap.put("needPlanDetailId", salePlanTemp.getUuid("id"));
//销售计划id
stringObjectHashMap.put("salePlanId", salePlanTemp.get("master").getUuid("id"));
//销售计划砂石id
stringObjectHashMap.put("salePlanDetailId", salePlanTemp.getUuid("id"));
}else {
KObject kObject = needPlanDao.queryNeedPlanAmountByCycleId(project.getUuid("id"), planningCycle.getUuid("id"));
List<KObject> needPlanDetail = kObject.get("NeedPlanDetail").toList();
Optional<KObject> first = needPlanDetail.stream().filter(a -> a.get("dinasType").getUuid("id").toString().equals(dinasType.getUuid("id").toString())).findFirst();
stringObjectHashMap.put("needPlanId", kObject.getUuid("id"));
first.ifPresent(a->{
//需用计划砂石id
stringObjectHashMap.put("needPlanDetailId", a.getUuid("id"));
});
KObject salePlanDetail = salesPlanDao.loadDetail(sealDetailId);
//需用计划id
stringObjectHashMap.put("salePlanId", salePlanDetail.get("master").getUuid("id"));
//需用计划砂石id
stringObjectHashMap.put("salePlanDetailId", salePlanDetail.getUuid("id"));
}
//获取砂石今日库存
//库存id
KObject inventory = inventoryDao.getItemByStationIdAndDinasTypeId(station.getUuid("id"), dinasType.getUuid("id"));
......@@ -221,13 +250,20 @@ public class VehicleDispatchServiceImpl implements VehicleDispatchService {
stringObjectHashMap.put("price", price);
//销售类型
stringObjectHashMap.put("planAmount", dispatch.getBigDecimal("planAmount"));
stringObjectHashMap.put("saleType", dispatch.getInt("dispatchType"));
stringObjectHashMap.put("saleType", dispatchType);
//运输类型
stringObjectHashMap.put("transportType", 1);
if(amount.compareTo(new BigDecimal("0"))<1){
stringObjectHashMap.put("canSale", false);
stringObjectHashMap.put("canSaleTitle", "今日已售罄");
if(amount.compareTo(BigDecimal.ZERO)<1){
stringObjectHashMap.put("canSale",false);
stringObjectHashMap.put("canSaleTitle","今日已售罄");
}else if(price.compareTo(BigDecimal.ZERO)<1){
stringObjectHashMap.put("canSale",false);
stringObjectHashMap.put("canSaleTitle","砂石价格未维护,请联系场站人员维护");
}else{
stringObjectHashMap.put("canSale",true);
}
maps.add(stringObjectHashMap);
}
return maps;
......
......@@ -52,7 +52,7 @@ public class WeighbridgeSyncController {
* @return
*/
@PostMapping(value = "/weighbridgeSync/saveSalesRecord", consumes = "application/json")
public Object saveSalesRecord(@RequestParam String weighbridgeCode,@RequestBody List<SalesRecordInfo> salesRecordList) {
public Object saveSalesRecord(@RequestParam String weighbridgeCode,@RequestBody SalesRecordInfo salesRecordList) {
//根据地磅id查询场站
if(StringUtils.isBlank(weighbridgeCode)){
return ResponseObj.error(500,"地磅唯一编码不能为空");
......@@ -61,10 +61,10 @@ public class WeighbridgeSyncController {
if(station==null){
return ResponseObj.error(500,"没有查询到地磅匹配的场站");
}
if (salesRecordList.isEmpty()) {
if (salesRecordList==null) {
return ResponseObj.error("传递的销售台账数据条数为0!请确认!");
} else {
return salesRecordService.saveSalesRecordService(salesRecordList,station);
return ResponseObj.success("新增成功",salesRecordService.saveSalesRecordService(salesRecordList,station));
}
}
......@@ -124,7 +124,7 @@ public class WeighbridgeSyncController {
}
/**
* 根据车牌号和地磅唯一编码获取本场站下本车辆今日销售计划和临时销售计划
* 查询全部售卖的砂石类型和价格
* @param
* @return
*/
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment