Commit 55291082 by 杨清松

销售计划明细查询和编辑接口

parent b4585e8a
...@@ -5,6 +5,7 @@ import java.util.List; ...@@ -5,6 +5,7 @@ import java.util.List;
import java.util.UUID; import java.util.UUID;
import org.hibernate.query.Query; import org.hibernate.query.Query;
import org.hibernate.transform.Transformers;
import org.json.JSONObject; import org.json.JSONObject;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.lang.Nullable; import org.springframework.lang.Nullable;
...@@ -12,6 +13,7 @@ import org.springframework.orm.hibernate5.HibernateTemplate; ...@@ -12,6 +13,7 @@ import org.springframework.orm.hibernate5.HibernateTemplate;
import com.beecode.bcp.type.KObject; import com.beecode.bcp.type.KObject;
import com.xyst.dinas.sales.constant.SalesPlanConstant; import com.xyst.dinas.sales.constant.SalesPlanConstant;
import com.xyst.dinas.sales.entity.SalesPlan;
import com.xyst.dinas.sales.web.request.SaleaPlanDetailQuery; import com.xyst.dinas.sales.web.request.SaleaPlanDetailQuery;
public class SalesPlanDao { public class SalesPlanDao {
...@@ -121,4 +123,32 @@ public class SalesPlanDao { ...@@ -121,4 +123,32 @@ public class SalesPlanDao {
}); });
} }
public KObject querySalesPlanById(UUID salesPlanId) {
return template.execute(session ->{
String hql = "from " + SalesPlanConstant.ENTITY + " where id =:salesPlanId ";
Query<KObject> query = session.createQuery(hql, KObject.class);
query.setParameter("salesPlanId", salesPlanId);
List<KObject> resultList = query.getResultList();
KObject kObject = null;
if (resultList.size() > 0) {
kObject = resultList.get(0);
}
return kObject;
});
// return template.execute(session ->{
// String hql = "from " + SalesPlanConstant.ENTITY + " where id =:salesPlanId ";
// Query query = session.createQuery(hql);
// query.setParameter("salesPlanId", salesPlanId);
// query.setResultTransformer(Transformers.aliasToBean(SalesPlan.class));
// SalesPlan resultList = (SalesPlan) query.uniqueResult();
//// KObject kObject = null;
//// if (resultList.size() > 0) {
//// kObject = resultList.get(0);
//// }
// return resultList;
//
// });
}
} }
package com.xyst.dinas.sales.entity;
import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;
import java.util.List;
import java.util.UUID;
import javax.persistence.Entity;
import javax.persistence.Table;
import org.springframework.format.annotation.DateTimeFormat;
@Entity
@Table(name = "xyst_dinas_sale_plan")
public class SalesPlan implements Serializable{
/**
*
*/
private static final long serialVersionUID = -740440031440895244L;
private UUID id;
private Integer version;
//@DateTimeFormat( pattern = "yyyy-MM-dd HH:mm:ss" )
private String createTime;
private UUID creator;
private UUID modifier;
//@DateTimeFormat( pattern = "yyyy-MM-dd HH:mm:ss" )
private String modifyTime;
private String billState;
private UUID bizProcessId;
private String billCode;
private Boolean discard;
private Boolean del;
private Integer approveState;
private String approveTime;
private UUID regionalCompanyId;
private UUID planningCycleId;
private String approveMemo;
private BigDecimal requiredTotalAmount;
private BigDecimal planTotalAmount;
private BigDecimal actualSaleTotalAmount;
private List<SalesPlanDetail> SalesPlanDetails;
public UUID getId() {
return id;
}
public void setId(UUID id) {
this.id = id;
}
public UUID getCreator() {
return creator;
}
public void setCreator(UUID creator) {
this.creator = creator;
}
public UUID getModifier() {
return modifier;
}
public void setModifier(UUID modifier) {
this.modifier = modifier;
}
public Integer getVersion() {
return version;
}
public void setVersion(Integer version) {
this.version = version;
}
public String getCreateTime() {
return createTime;
}
public void setCreateTime(String createTime) {
this.createTime = createTime;
}
public String getModifyTime() {
return modifyTime;
}
public void setModifyTime(String modifyTime) {
this.modifyTime = modifyTime;
}
public String getBillState() {
return billState;
}
public void setBillState(String billState) {
this.billState = billState;
}
public UUID getBizProcessId() {
return bizProcessId;
}
public void setBizProcessId(UUID bizProcessId) {
this.bizProcessId = bizProcessId;
}
public String getBillCode() {
return billCode;
}
public void setBillCode(String billCode) {
this.billCode = billCode;
}
public Boolean getDiscard() {
return discard;
}
public void setDiscard(Boolean discard) {
this.discard = discard;
}
public Boolean getDel() {
return del;
}
public void setDel(Boolean del) {
this.del = del;
}
public Integer getApproveState() {
return approveState;
}
public void setApproveState(Integer approveState) {
this.approveState = approveState;
}
public String getApproveTime() {
return approveTime;
}
public void setApproveTime(String approveTime) {
this.approveTime = approveTime;
}
public UUID getRegionalCompanyId() {
return regionalCompanyId;
}
public void setRegionalCompanyId(UUID regionalCompanyId) {
this.regionalCompanyId = regionalCompanyId;
}
public UUID getPlanningCycleId() {
return planningCycleId;
}
public void setPlanningCycleId(UUID planningCycleId) {
this.planningCycleId = planningCycleId;
}
public String getApproveMemo() {
return approveMemo;
}
public void setApproveMemo(String approveMemo) {
this.approveMemo = approveMemo;
}
public BigDecimal getRequiredTotalAmount() {
return requiredTotalAmount;
}
public void setRequiredTotalAmount(BigDecimal requiredTotalAmount) {
this.requiredTotalAmount = requiredTotalAmount;
}
public BigDecimal getPlanTotalAmount() {
return planTotalAmount;
}
public void setPlanTotalAmount(BigDecimal planTotalAmount) {
this.planTotalAmount = planTotalAmount;
}
public BigDecimal getActualSaleTotalAmount() {
return actualSaleTotalAmount;
}
public void setActualSaleTotalAmount(BigDecimal actualSaleTotalAmount) {
this.actualSaleTotalAmount = actualSaleTotalAmount;
}
public static long getSerialversionuid() {
return serialVersionUID;
}
public List<SalesPlanDetail> getSalesPlanDetails() {
return SalesPlanDetails;
}
public void setSalesPlanDetails(List<SalesPlanDetail> salesPlanDetails) {
this.SalesPlanDetails = salesPlanDetails;
}
}
package com.xyst.dinas.sales.internal.service; package com.xyst.dinas.sales.internal.service;
import java.math.BigDecimal;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Date; import java.util.Date;
import java.util.List; import java.util.List;
...@@ -7,21 +8,30 @@ import java.util.UUID; ...@@ -7,21 +8,30 @@ import java.util.UUID;
import javax.transaction.Transactional; import javax.transaction.Transactional;
import org.antlr.grammar.v3.ANTLRv3Parser.id_return;
import org.apache.commons.lang3.StringUtils;
import org.json.JSONArray;
import org.json.JSONObject;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.lang.Nullable; import org.springframework.lang.Nullable;
import com.beecode.amino.core.Amino; import com.beecode.amino.core.Amino;
import com.beecode.bap.staff.service.StaffService;
import com.beecode.bap.workflow.core.BizProcessState; import com.beecode.bap.workflow.core.BizProcessState;
import com.beecode.bcp.type.KClass; import com.beecode.bcp.type.KClass;
import com.beecode.bcp.type.KObject; import com.beecode.bcp.type.KObject;
import com.beecode.bcp.type.Null;
import com.beecode.inz.common.BaseConstants; import com.beecode.inz.common.BaseConstants;
import com.beecode.xlib.utils.StringUtil;
import com.xyst.dinas.biz.constant.DinasTypeConstant; import com.xyst.dinas.biz.constant.DinasTypeConstant;
import com.xyst.dinas.biz.service.StationService;
import com.xyst.dinas.contract.constant.ContractConstant; import com.xyst.dinas.contract.constant.ContractConstant;
import com.xyst.dinas.project.constant.ProjectFiledConstant; import com.xyst.dinas.project.constant.ProjectFiledConstant;
import com.xyst.dinas.project.constant.PurchaseSandCompanyConstant; import com.xyst.dinas.project.constant.PurchaseSandCompanyConstant;
import com.xyst.dinas.sales.constant.NeedPlanConstant; import com.xyst.dinas.sales.constant.NeedPlanConstant;
import com.xyst.dinas.sales.constant.SalesPlanConstant; import com.xyst.dinas.sales.constant.SalesPlanConstant;
import com.xyst.dinas.sales.dao.SalesPlanDao; import com.xyst.dinas.sales.dao.SalesPlanDao;
import com.xyst.dinas.sales.entity.SalesPlan;
import com.xyst.dinas.sales.entity.SalesPlanDetail; import com.xyst.dinas.sales.entity.SalesPlanDetail;
import com.xyst.dinas.sales.service.NeedPlanService; import com.xyst.dinas.sales.service.NeedPlanService;
import com.xyst.dinas.sales.service.SalesPlanService; import com.xyst.dinas.sales.service.SalesPlanService;
...@@ -40,6 +50,9 @@ public class SalesPlanServiceImpl implements SalesPlanService{ ...@@ -40,6 +50,9 @@ public class SalesPlanServiceImpl implements SalesPlanService{
@Autowired @Autowired
private NeedPlanService needPlanService; private NeedPlanService needPlanService;
@Autowired
private StaffService staffService;
@Transactional @Transactional
public int createSalesPlanDetail(KObject salesPlan, KObject contract) { public int createSalesPlanDetail(KObject salesPlan, KObject contract) {
...@@ -122,9 +135,31 @@ public class SalesPlanServiceImpl implements SalesPlanService{ ...@@ -122,9 +135,31 @@ public class SalesPlanServiceImpl implements SalesPlanService{
} }
public List<SalesPlanDetail> querySalesPlanDetails(SaleaPlanDetailQuery saleaPlanDetailQuery) { public Object querySalesPlanDetails(SaleaPlanDetailQuery saleaPlanDetailQuery) {
ArrayList<SalesPlanDetail> salesPlanDetails = new ArrayList<>(); ArrayList<SalesPlanDetail> salesPlanDetails = new ArrayList<>();
// KObject kObject = salesPlanDao.load(salesPlanId); // KObject kObject = salesPlanDao.load(salesPlanId);
KObject salesPlanKObject = salesPlanDao.querySalesPlanById(saleaPlanDetailQuery.getSalesPlanId());
SalesPlan salesPlan = new SalesPlan();
salesPlan.setId(salesPlanKObject.getUuid("id"));
salesPlan.setVersion(salesPlanKObject.getInt("version"));
salesPlan.setModifyTime(salesPlanKObject.getString("modifyTime"));
salesPlan.setModifier(salesPlanKObject.isNull("modifier") ? null : salesPlanKObject.get("modifier").getUuid("id"));
salesPlan.setCreateTime(salesPlanKObject.getString("createTime"));
salesPlan.setCreator(salesPlanKObject.isNull("creator") ? null :salesPlanKObject.get("creator").getUuid("id"));
salesPlan.setApproveMemo(salesPlanKObject.getString("approveMemo"));
salesPlan.setBillCode(salesPlanKObject.getString("billCode"));
salesPlan.setApproveTime(salesPlanKObject.getString("approveTime"));
salesPlan.setBillState(salesPlanKObject.getString("billState"));
salesPlan.setRegionalCompanyId(!salesPlanKObject.isNull("regionalCompany") ? salesPlanKObject.get("regionalCompany").getUuid("id") : null);
salesPlan.setDiscard(salesPlanKObject.getBoolean("discard"));
salesPlan.setApproveState(salesPlanKObject.getInt("approveState"));
salesPlan.setPlanningCycleId(salesPlanKObject.get("planningCycle").getUuid("id"));
salesPlan.setRequiredTotalAmount(salesPlanKObject.getBigDecimal("requiredTotalAmount"));
salesPlan.setPlanTotalAmount(salesPlanKObject.getBigDecimal("planTotalAmount"));
salesPlan.setActualSaleTotalAmount(salesPlanKObject.getBigDecimal("actualSaleTotalAmount"));
List<KObject> details = salesPlanDao.querySalesPlanDetailsByMasterId(saleaPlanDetailQuery); List<KObject> details = salesPlanDao.querySalesPlanDetailsByMasterId(saleaPlanDetailQuery);
for (KObject detail : details) { for (KObject detail : details) {
SalesPlanDetail salesPlanDetail = new SalesPlanDetail(); SalesPlanDetail salesPlanDetail = new SalesPlanDetail();
...@@ -140,6 +175,7 @@ public class SalesPlanServiceImpl implements SalesPlanService{ ...@@ -140,6 +175,7 @@ public class SalesPlanServiceImpl implements SalesPlanService{
salesPlanDetail.setProject(project.getUuid(BaseConstants.ID)); salesPlanDetail.setProject(project.getUuid(BaseConstants.ID));
salesPlanDetail.setDinasType(dinasType.getUuid(BaseConstants.ID)); salesPlanDetail.setDinasType(dinasType.getUuid(BaseConstants.ID));
salesPlanDetail.setStation(station.isNull()?null:station.getUuid(BaseConstants.ID)); salesPlanDetail.setStation(station.isNull()?null:station.getUuid(BaseConstants.ID));
salesPlanDetail.setStationName((station.isNull()?null:station.getString("stationName")));
salesPlanDetail.setPurchaseSandUnit(purchaseSandUnit.getUuid(BaseConstants.ID)); salesPlanDetail.setPurchaseSandUnit(purchaseSandUnit.getUuid(BaseConstants.ID));
salesPlanDetail.setContractName(contract.getString(ContractConstant.CONTRACT_NAME)); salesPlanDetail.setContractName(contract.getString(ContractConstant.CONTRACT_NAME));
salesPlanDetail.setProjectName(project.getString(ProjectFiledConstant.PROJECT_NAME)); salesPlanDetail.setProjectName(project.getString(ProjectFiledConstant.PROJECT_NAME));
...@@ -155,7 +191,9 @@ public class SalesPlanServiceImpl implements SalesPlanService{ ...@@ -155,7 +191,9 @@ public class SalesPlanServiceImpl implements SalesPlanService{
salesPlanDetails.add(salesPlanDetail); salesPlanDetails.add(salesPlanDetail);
} }
return salesPlanDetails; salesPlan.setSalesPlanDetails(salesPlanDetails);
return salesPlan;
// return salesPlanDetails;
} }
// @Override // @Override
...@@ -183,6 +221,52 @@ public class SalesPlanServiceImpl implements SalesPlanService{ ...@@ -183,6 +221,52 @@ public class SalesPlanServiceImpl implements SalesPlanService{
return salesPlanDao.queryTempSalesPlan(id); return salesPlanDao.queryTempSalesPlan(id);
} }
@Autowired
private StationService stationService;
@Override
public void modify(JSONObject jsonObject) {
UUID salesPlanId = UUID.fromString(jsonObject.getString("id"));
KObject kObject = salesPlanDao.load(salesPlanId);
kObject.set("modifyTime", new Date());
kObject.set("modifier", staffService.getById(UUID.fromString(jsonObject.getString("modifier"))));
//kObject.set("requiredTotalAmount", jsonObject.getBigDecimal("requiredTotalAmount"));
List<KObject> salesPlanDetails = kObject.get("SalesPlanDetails").toList();
JSONArray jsonArray = jsonObject.getJSONArray("salesPlanDetails");
BigDecimal requiredTotalAmount = new BigDecimal("0");
BigDecimal planTotalAmount = new BigDecimal("0");
BigDecimal actualSaleTotalAmount = new BigDecimal("0");
if (salesPlanDetails.size() > 0) {
for (int j = 0; j < jsonArray.length(); j++) {
JSONObject jsonObjectDetails = jsonArray.getJSONObject(j);
for (int i = 0; i < salesPlanDetails.size(); i++) {
KObject salesPlanDetail = salesPlanDetails.get(i);
if (jsonObjectDetails.getString("id").equals(salesPlanDetail.getString("id"))) {
if (StringUtils.isNotEmpty(jsonObjectDetails.getString("station"))) {
salesPlanDetail.set("station", stationService.getById(UUID.fromString(jsonObjectDetails.getString("station"))));
}
salesPlanDetail.set("stationName", jsonObjectDetails.getString("stationName"));
salesPlanDetail.set("stockAmount", jsonObjectDetails.getDouble("stockAmount"));
salesPlanDetail.set("planAmount", jsonObjectDetails.getDouble("planAmount"));
salesPlanDao.update(salesPlanDetail);
}
}
//查询主表总量
requiredTotalAmount = requiredTotalAmount.add(jsonObjectDetails.getBigDecimal("requiredAmount"));
planTotalAmount = planTotalAmount.add(jsonObjectDetails.getBigDecimal("planAmount"));
actualSaleTotalAmount = actualSaleTotalAmount.add(jsonObjectDetails.getBigDecimal("actualSaleAmount"));
}
}
kObject.set("requiredTotalAmount", requiredTotalAmount);
kObject.set("planTotalAmount", planTotalAmount);
kObject.set("actualSaleTotalAmount", actualSaleTotalAmount);
salesPlanDao.update(kObject);
}
......
...@@ -3,6 +3,7 @@ package com.xyst.dinas.sales.service; ...@@ -3,6 +3,7 @@ package com.xyst.dinas.sales.service;
import java.util.List; import java.util.List;
import java.util.UUID; import java.util.UUID;
import org.json.JSONObject;
import org.springframework.lang.Nullable; import org.springframework.lang.Nullable;
import com.beecode.bcp.type.KObject; import com.beecode.bcp.type.KObject;
...@@ -47,6 +48,8 @@ public interface SalesPlanService { ...@@ -47,6 +48,8 @@ public interface SalesPlanService {
public KObject querySalesPlanDetailsByMasterIdWarehouse(UUID fromString, UUID fromString2); public KObject querySalesPlanDetailsByMasterIdWarehouse(UUID fromString, UUID fromString2);
public List<SalesPlanDetail> querySalesPlanDetails(SaleaPlanDetailQuery saleaPlanDetailQuery); public Object querySalesPlanDetails(SaleaPlanDetailQuery saleaPlanDetailQuery);
public void modify(JSONObject jsonObject);
} }
...@@ -3,6 +3,7 @@ package com.xyst.dinas.sales.web; ...@@ -3,6 +3,7 @@ package com.xyst.dinas.sales.web;
import java.util.List; import java.util.List;
import java.util.UUID; import java.util.UUID;
import org.json.JSONObject;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.util.Assert; import org.springframework.util.Assert;
import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.PostMapping;
...@@ -14,7 +15,10 @@ import org.springframework.web.bind.annotation.ResponseBody; ...@@ -14,7 +15,10 @@ import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.bind.annotation.RestController; import org.springframework.web.bind.annotation.RestController;
import com.beecode.bap.workflow.core.BizProcessState; import com.beecode.bap.workflow.core.BizProcessState;
import com.beecode.inz.basis.pojo.WarehouseUser;
import com.beecode.inz.basis.team.pojo.ResponseObj; import com.beecode.inz.basis.team.pojo.ResponseObj;
import com.beecode.inz.basis.util.JsonUtil;
import com.beecode.xlib.utils.StringUtil;
import com.xyst.dinas.sales.entity.SalesPlanDetail; import com.xyst.dinas.sales.entity.SalesPlanDetail;
import com.xyst.dinas.sales.service.SalesPlanService; import com.xyst.dinas.sales.service.SalesPlanService;
import com.xyst.dinas.sales.web.request.SaleaPlanApprove; import com.xyst.dinas.sales.web.request.SaleaPlanApprove;
...@@ -106,8 +110,8 @@ public class SalesPlanController { ...@@ -106,8 +110,8 @@ public class SalesPlanController {
@PostMapping("/salesplan/querySalesPlanDetails") @PostMapping("/salesplan/querySalesPlanDetails")
public Object querySalesPlanDetails(@RequestBody SaleaPlanDetailQuery saleaPlanDetailQuery) { public Object querySalesPlanDetails(@RequestBody SaleaPlanDetailQuery saleaPlanDetailQuery) {
List<SalesPlanDetail> salesPlanDetails = salesPlanService.querySalesPlanDetails(saleaPlanDetailQuery); Object object = salesPlanService.querySalesPlanDetails(saleaPlanDetailQuery);
return ResponseObj.success("success", salesPlanDetails); return ResponseObj.success("success", object);
} }
/** /**
...@@ -125,4 +129,20 @@ public class SalesPlanController { ...@@ -125,4 +129,20 @@ public class SalesPlanController {
System.out.println(UUID.randomUUID().toString()); System.out.println(UUID.randomUUID().toString());
} }
@PostMapping("/salesplan/modify")
public Object modify(@RequestBody String body) {
if(StringUtil.isEmpty(body)) {
return ResponseObj.error("参数不能为空");
}
JSONObject jsonObject = new JSONObject(body);
try {
salesPlanService.modify(jsonObject);
} catch(Exception e) {
return ResponseObj.error(e.getMessage());
}
return ResponseObj.success("操作成功",null);
}
} }
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