Commit 55291082 by 杨清松

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

parent b4585e8a
......@@ -5,6 +5,7 @@ import java.util.List;
import java.util.UUID;
import org.hibernate.query.Query;
import org.hibernate.transform.Transformers;
import org.json.JSONObject;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.lang.Nullable;
......@@ -12,6 +13,7 @@ import org.springframework.orm.hibernate5.HibernateTemplate;
import com.beecode.bcp.type.KObject;
import com.xyst.dinas.sales.constant.SalesPlanConstant;
import com.xyst.dinas.sales.entity.SalesPlan;
import com.xyst.dinas.sales.web.request.SaleaPlanDetailQuery;
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;
import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
......@@ -7,21 +8,30 @@ import java.util.UUID;
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.lang.Nullable;
import com.beecode.amino.core.Amino;
import com.beecode.bap.staff.service.StaffService;
import com.beecode.bap.workflow.core.BizProcessState;
import com.beecode.bcp.type.KClass;
import com.beecode.bcp.type.KObject;
import com.beecode.bcp.type.Null;
import com.beecode.inz.common.BaseConstants;
import com.beecode.xlib.utils.StringUtil;
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.project.constant.ProjectFiledConstant;
import com.xyst.dinas.project.constant.PurchaseSandCompanyConstant;
import com.xyst.dinas.sales.constant.NeedPlanConstant;
import com.xyst.dinas.sales.constant.SalesPlanConstant;
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.service.NeedPlanService;
import com.xyst.dinas.sales.service.SalesPlanService;
......@@ -40,6 +50,9 @@ public class SalesPlanServiceImpl implements SalesPlanService{
@Autowired
private NeedPlanService needPlanService;
@Autowired
private StaffService staffService;
@Transactional
public int createSalesPlanDetail(KObject salesPlan, KObject contract) {
......@@ -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<>();
// 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);
for (KObject detail : details) {
SalesPlanDetail salesPlanDetail = new SalesPlanDetail();
......@@ -140,6 +175,7 @@ public class SalesPlanServiceImpl implements SalesPlanService{
salesPlanDetail.setProject(project.getUuid(BaseConstants.ID));
salesPlanDetail.setDinasType(dinasType.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.setContractName(contract.getString(ContractConstant.CONTRACT_NAME));
salesPlanDetail.setProjectName(project.getString(ProjectFiledConstant.PROJECT_NAME));
......@@ -155,7 +191,9 @@ public class SalesPlanServiceImpl implements SalesPlanService{
salesPlanDetails.add(salesPlanDetail);
}
return salesPlanDetails;
salesPlan.setSalesPlanDetails(salesPlanDetails);
return salesPlan;
// return salesPlanDetails;
}
// @Override
......@@ -182,6 +220,52 @@ public class SalesPlanServiceImpl implements SalesPlanService{
public KObject queryTempSalesPlan(UUID 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;
import java.util.List;
import java.util.UUID;
import org.json.JSONObject;
import org.springframework.lang.Nullable;
import com.beecode.bcp.type.KObject;
......@@ -47,6 +48,8 @@ public interface SalesPlanService {
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;
import java.util.List;
import java.util.UUID;
import org.json.JSONObject;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.util.Assert;
import org.springframework.web.bind.annotation.PostMapping;
......@@ -14,7 +15,10 @@ import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.bind.annotation.RestController;
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.util.JsonUtil;
import com.beecode.xlib.utils.StringUtil;
import com.xyst.dinas.sales.entity.SalesPlanDetail;
import com.xyst.dinas.sales.service.SalesPlanService;
import com.xyst.dinas.sales.web.request.SaleaPlanApprove;
......@@ -106,8 +110,8 @@ public class SalesPlanController {
@PostMapping("/salesplan/querySalesPlanDetails")
public Object querySalesPlanDetails(@RequestBody SaleaPlanDetailQuery saleaPlanDetailQuery) {
List<SalesPlanDetail> salesPlanDetails = salesPlanService.querySalesPlanDetails(saleaPlanDetailQuery);
return ResponseObj.success("success", salesPlanDetails);
Object object = salesPlanService.querySalesPlanDetails(saleaPlanDetailQuery);
return ResponseObj.success("success", object);
}
/**
......@@ -124,5 +128,21 @@ public class SalesPlanController {
public static void main(String[] args) {
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