Commit e71acbb5 by 王衍超

Merge branch 'develop' of gitlab.beecode.cn:kunlun/xyst_dinas/xyst_dinas_backend into develop

parents 8eb916b4 55291082
......@@ -62,6 +62,11 @@ public class ContractController {
contractService.update(kObject);
return CommonResult.SUCCESS_RESULT;
}
@GetMapping("/sand/user/contractInfo/{contractInfoId}")
public KObject queryContractInfoForCompany(@PathVariable UUID contractInfoId) {
return queryContractInfo(contractInfoId);
}
@GetMapping("/contractInfo/{contractInfoId}")
public KObject queryContractInfo(@PathVariable UUID contractInfoId) {
......@@ -77,6 +82,10 @@ public class ContractController {
return ResponseObj.success("校验成功", result);
}
@PostMapping("/sand/user/contract/change/check")
public Object checkChangeAbledForCompany(@RequestBody BaseEntity contract) {
return checkChangeAbled(contract);
}
@PostMapping("/contract/change/check")
public Object checkChangeAbled(@RequestBody BaseEntity contract) {
UUID id = UUID.fromString(contract.getId());
......@@ -84,6 +93,10 @@ public class ContractController {
return ResponseObj.success("校验成功", result);
}
@PostMapping("/sand/user/contract/change/history")
public Object getChangeHistoryForCompany(@RequestBody BaseEntity contract) {
return getChangeHistory(contract);
}
@PostMapping("/contract/change/history")
public Object getChangeHistory(@RequestBody BaseEntity contract) {
UUID id = UUID.fromString(contract.getId());
......
......@@ -134,6 +134,10 @@
<annotation id='82ecab1c-8a93-4a19-81a7-cfa145127cda' attributeId='f0775057-a369-432a-864b-04c8b5cd0342' name='precision' value='12'></annotation>
<annotation id='b4b20cce-829a-40f6-87cd-3ccd887da4f9' attributeId='704c67f1-8bc1-42be-8c34-b3a9526c2da7' name='scale' value='2'></annotation>
</attribute>
<attribute id='10a76a69-ea9c-40e7-a29a-c7f7378838e7' name='detailAuto' columnName='detail_auto' title='是否自动生成子表' type='boolean' default='false' precision='' isArray='false'>
<annotation id='394a0641-1f8c-4bde-8531-38a6bdb45e69' attributeId='d67f1e30-4592-4c06-8e26-99eec48c4a87' name='length' value='undefined'>
</annotation>
</attribute>
<childModel id='57fa34cf-59f3-4be6-98bb-3e87853471ee' attributeId='06a76145-09c6-4e83-b91e-66aec616b9ca' refParentAttributeId='233c82e2-e7b6-49fc-96cc-bb947ba2cc99'
......
......@@ -837,6 +837,15 @@
<m:default></m:default>
</m:attribute>
<m:attribute>
<m:annotations/>
<m:id>10a76a69-ea9c-40e7-a29a-c7f7378838e7</m:id>
<m:name>detailAuto</m:name>
<m:title>是否自动生成子表</m:title>
<m:type>boolean</m:type>
<m:description></m:description>
<m:default>false</m:default>
</m:attribute>
<m:attribute>
<m:annotations>
<m:annotation>
<m:type>com.beecode.bap.biztrait.datamodel.SubTableAnnotation</m:type>
......
......@@ -135,6 +135,9 @@
<property name="saleDinasAmount" type="big_decimal" not-null="false">
<column name="sale_dinas_amount" precision="12" scale="2"></column>
</property>
<property name="detailAuto" type="boolean" not-null="false">
<column name="detail_auto"></column>
</property>
<bag name="contractDetails" lazy="true" fetch="select" inverse="true">
<key column="master_id" not-null="true" />
<one-to-many entity-name="com.xyst.dinas.contract.datamodel.Contract$contractDetail" />
......
......@@ -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