Commit 8746e620 by liuyang

Merge branch 'dev' of http://git.pseer.com:8800/platform/hg-smart into dev-ly

parents 20f897c9 5a2ef524
......@@ -36,8 +36,10 @@ public class HGCG003B extends DaoEPBase {
public static final String FIELD_COMPANY_NAME = "companyName"; /* 公司名称*/
public static final String FIELD_RECEIVE_DATE = "receiveDate"; /* 收货日期*/
public static final String FIELD_RECEIVE_NO = "receiveNo"; /* 收货单号*/
public static final String FIELD_RECEIVE_LINE_NO = "receiveLineNo"; /* 收货单行号*/
public static final String FIELD_PLAN_NO = "planNo"; /* 计划单号*/
public static final String FIELD_CONTRACT_NO = "contractNo"; /* 合同号*/
public static final String FIELD_CONTRACT_LINE_NO = "contractLineNo"; /* 合同行号*/
public static final String FIELD_CONTRACT_DETAIL_ID = "contractDetailId"; /* 合同明细id*/
public static final String FIELD_INVENT_TYPE = "inventType"; /* 存货类型*/
public static final String FIELD_INVENT_CODE = "inventCode"; /* 存货编码*/
......@@ -136,8 +138,10 @@ public class HGCG003B extends DaoEPBase {
private String companyName = " "; /* 公司名称*/
private String receiveDate = " "; /* 收货日期*/
private String receiveNo = " "; /* 收货单号*/
private String receiveLineNo = " "; /* 收货单行号*/
private String planNo = " "; /* 计划单号*/
private String contractNo = " "; /* 合同号*/
private String contractLineNo = " "; /* 合同行号*/
private Long contractDetailId = new Long(0); /* 合同明细id*/
private String inventType = " "; /* 存货类型*/
private String inventCode = " "; /* 存货编码*/
......@@ -234,6 +238,10 @@ public class HGCG003B extends DaoEPBase {
eiColumn.setDescName("收货单号");
eiMetadata.addMeta(eiColumn);
eiColumn = new EiColumn(FIELD_RECEIVE_LINE_NO);
eiColumn.setDescName("收货单行号");
eiMetadata.addMeta(eiColumn);
eiColumn = new EiColumn(FIELD_PLAN_NO);
eiColumn.setDescName("计划单号");
eiMetadata.addMeta(eiColumn);
......@@ -242,6 +250,10 @@ public class HGCG003B extends DaoEPBase {
eiColumn.setDescName("合同号");
eiMetadata.addMeta(eiColumn);
eiColumn = new EiColumn(FIELD_CONTRACT_LINE_NO);
eiColumn.setDescName("合同行号");
eiMetadata.addMeta(eiColumn);
eiColumn = new EiColumn(FIELD_CONTRACT_DETAIL_ID);
eiColumn.setDescName("合同明细id");
eiMetadata.addMeta(eiColumn);
......@@ -1159,7 +1171,23 @@ public class HGCG003B extends DaoEPBase {
public void setSupName(String supName) {
this.supName = supName;
}
public String getReceiveLineNo() {
return receiveLineNo;
}
public void setReceiveLineNo(String receiveLineNo) {
this.receiveLineNo = receiveLineNo;
}
public String getContractLineNo() {
return contractLineNo;
}
public void setContractLineNo(String contractLineNo) {
this.contractLineNo = contractLineNo;
}
/**
* get the value from Map.
*
......@@ -1182,8 +1210,10 @@ public class HGCG003B extends DaoEPBase {
setCompanyName(StringUtils.defaultIfEmpty(StringUtils.toString(map.get(FIELD_COMPANY_NAME)), companyName));
setReceiveDate(StringUtils.defaultIfEmpty(StringUtils.toString(map.get(FIELD_RECEIVE_DATE)), receiveDate));
setReceiveNo(StringUtils.defaultIfEmpty(StringUtils.toString(map.get(FIELD_RECEIVE_NO)), receiveNo));
setReceiveLineNo(StringUtils.defaultIfEmpty(StringUtils.toString(map.get(FIELD_RECEIVE_LINE_NO)), receiveLineNo));
setPlanNo(StringUtils.defaultIfEmpty(StringUtils.toString(map.get(FIELD_PLAN_NO)), planNo));
setContractNo(StringUtils.defaultIfEmpty(StringUtils.toString(map.get(FIELD_CONTRACT_NO)), contractNo));
setContractLineNo(StringUtils.defaultIfEmpty(StringUtils.toString(map.get(FIELD_CONTRACT_LINE_NO)), contractLineNo));
setContractDetailId(NumberUtils.toLong(StringUtils.toString(map.get(FIELD_CONTRACT_DETAIL_ID)), contractDetailId));
setInventType(StringUtils.defaultIfEmpty(StringUtils.toString(map.get(FIELD_INVENT_TYPE)), inventType));
setInventCode(StringUtils.defaultIfEmpty(StringUtils.toString(map.get(FIELD_INVENT_CODE)), inventCode));
......@@ -1239,8 +1269,10 @@ public class HGCG003B extends DaoEPBase {
map.put(FIELD_COMPANY_NAME, StringUtils.toString(companyName, eiMetadata.getMeta(FIELD_COMPANY_NAME)));
map.put(FIELD_RECEIVE_DATE, StringUtils.toString(receiveDate, eiMetadata.getMeta(FIELD_RECEIVE_DATE)));
map.put(FIELD_RECEIVE_NO, StringUtils.toString(receiveNo, eiMetadata.getMeta(FIELD_RECEIVE_NO)));
map.put(FIELD_RECEIVE_LINE_NO, StringUtils.toString(receiveLineNo, eiMetadata.getMeta(FIELD_RECEIVE_LINE_NO)));
map.put(FIELD_PLAN_NO, StringUtils.toString(planNo, eiMetadata.getMeta(FIELD_PLAN_NO)));
map.put(FIELD_CONTRACT_NO, StringUtils.toString(contractNo, eiMetadata.getMeta(FIELD_CONTRACT_NO)));
map.put(FIELD_CONTRACT_LINE_NO, StringUtils.toString(contractLineNo, eiMetadata.getMeta(FIELD_CONTRACT_LINE_NO)));
map.put(FIELD_CONTRACT_DETAIL_ID, StringUtils.toString(contractDetailId, eiMetadata.getMeta(FIELD_CONTRACT_DETAIL_ID)));
map.put(FIELD_INVENT_TYPE, StringUtils.toString(inventType, eiMetadata.getMeta(FIELD_INVENT_TYPE)));
map.put(FIELD_INVENT_CODE, StringUtils.toString(inventCode, eiMetadata.getMeta(FIELD_INVENT_CODE)));
......
......@@ -49,6 +49,7 @@ public class ServiceHGCG002 extends ServiceBase {
CommonMethod.initBlock(inInfo, Arrays.asList(DdynamicEnum.SUP_RECORD_BLOCK_ID));
CommonMethod.initBlock(inInfo, Arrays.asList(DdynamicEnum.INVENT_RECORD_BLOCK_ID));
CommonMethod.initBlock(inInfo, Arrays.asList(DdynamicEnum.SPEC_NAME_BLOCK_ID));
CommonMethod.initBlock(inInfo, Arrays.asList(DdynamicEnum.USER_ID_BOX_BLOCK_ID));
EiInfoUtils.addBlock(inInfo,"roleCompany", UserSessionUtils.getRoleCompany(), Company.class);
Map qarma = new HashMap();
Map userCompany = HGSBTools.getUserCompany();
......
......@@ -96,14 +96,14 @@ public class ServiceHGCG002A extends ServiceBase {
try {
List<HGCG001A> fCg001As = MapUtils.toDaoEPBases(inInfo, HGCG001A.class);
// db数据
Map<Long, HGCG001A> dbCg001Map = this.lockGetData(fCg001As);
Map<Long, HGCG001A> dbCg001AMap = this.lockGetData(fCg001As);
//计划主表信息
List<String> planNos = fCg001As.stream().map(HGCG001A::getPlanNo).collect(Collectors.toList());
Map<String, HGCG001> hgcg001Map = HGCGTools.HgCg001.map(planNos);
Map<String, HGCG001> dbCg001Map = HGCGTools.HgCg001.map(
ObjectUtils.listEpKey(fCg001As, HGCG001.FIELD_PLAN_NO));
// 数据校验
this.checkConfirmData(fCg001As, dbCg001Map,hgcg001Map);
this.checkConfirmData(fCg001As, dbCg001AMap, dbCg001Map);
// 保存数据
this.confirmData(fCg001As, dbCg001Map,hgcg001Map);
this.confirmData(fCg001As, dbCg001AMap, dbCg001Map);
inInfo = this.query(inInfo);
inInfo.setStatus(EiConstant.STATUS_DEFAULT);
inInfo.setMsg("操作成功!本次对[" + fCg001As.size() + "]条数据保存成功!");
......@@ -112,37 +112,41 @@ public class ServiceHGCG002A extends ServiceBase {
}
return inInfo;
}
/**
* 数据校验
* @param fCg001As
*
* @param fCg001As
* @param dbCg001AMap
* @param hgcg001Map
* @param dbCg001Map
*/
private void checkConfirmData(List<HGCG001A> fCg001As, Map<Long, HGCG001A> dbCg001AMap, Map<String, HGCG001> hgcg001Map) {
private void checkConfirmData(List<HGCG001A> fCg001As, Map<Long, HGCG001A> dbCg001AMap,
Map<String, HGCG001> dbCg001Map) {
for (HGCG001A fCg001A : fCg001As) {
Long id = fCg001A.getId();
HGCG001A dbCg001A = dbCg001AMap.get(id);
AssertUtils.isNull(dbCg001A, String.format("计划明细[%s]不存在", id));
HGCG001A dbCg001A = dbCg001AMap.get(fCg001A.getId());
AssertUtils.isNull(dbCg001A, String.format("计划明细[%s]不存在", fCg001A.getId()));
HGCG001 dbCg001 = dbCg001Map.get(fCg001A.getPlanNo());
AssertUtils.isNull(dbCg001, String.format("计划[%s]不存在", fCg001A.getPlanNo()));
AssertUtils.isGe(BigDecimal.ZERO, fCg001A.getPurQty(), "采购数量不能小于等于0");
AssertUtils.isGt(BigDecimal.ZERO, fCg001A.getPurWeight(), "采购总量不能小于0");
AssertUtils.isTrue(fCg001A.getTaxRate().compareTo(BigDecimal.ZERO) <= 0, "税率不能小于等于0");
AssertUtils.isTrue(fCg001A.getPrice().compareTo(BigDecimal.ZERO) <= 0, "单价不能小于等于0");
}
}
/**
* 数据保存
*
* @param fCg001As
* @param dbCg001AMap
* @param dbCg001Map
* @param hgcg001Map
*/
private void confirmData(List<HGCG001A> fCg001As, Map<Long, HGCG001A> dbCg001Map, Map<String, HGCG001> hgcg001Map) {
//取一条主表数据,用于拷贝合同主表信息
private void confirmData(List<HGCG001A> fCg001As, Map<Long, HGCG001A> dbCg001AMap,
Map<String, HGCG001> dbCg001Map) {
// 取一条主表数据,用于拷贝合同主表信息
HGCG001A oneCg001A = fCg001As.get(0);
HGCG001 oneCG001 = hgcg001Map.get(oneCg001A.getPlanNo());
HGCG002 newCg002 = new HGCG002();
BeanUtils.copyProperties(oneCG001, newCg002,"id","createdBy","createdName","createdTime","updatedBy","updatedName","updatedTime");
HGCG001 oneCG001 = dbCg001Map.get(oneCg001A.getPlanNo());
HGCG002 newCg002 = BeanUtils.copy(oneCG001, HGCG002.class);
newCg002.setContractDate(DateUtils.shortDate());
newCg002.setContractNo(SequenceGenerator.getNextSequence(HGConstant.SequenceId.CG_CONTRACT_NO));
newCg002.setStatus(HGConstant.CgContractStatus.S_0);
......@@ -150,11 +154,11 @@ public class ServiceHGCG002A extends ServiceBase {
newCg002.setSource(HGConstant.CgSource.DEFAULT);
DaoUtils.insert(HGCG002.INSERT, newCg002);
for (HGCG001A fCg001A : fCg001As) {
//新增子表信息
// 新增子表信息
insertDetails(fCg001A, newCg002);
HGCG001 cg001 = hgcg001Map.get(fCg001A.getPlanNo());
HGCG001 dbCg001 = dbCg001Map.get(fCg001A.getPlanNo());
// 更新计划状态
HGCGTools.HgCg001.updateStatus(cg001.getPlanNo(), HGConstant.CgPlanStatus.S_4);
HGCGTools.HgCg001.updateStatus(dbCg001.getPlanNo(), HGConstant.CgPlanStatus.S_4);
// 更新计划状态
HGCGTools.HgCg001A.updateStatus(fCg001A.getId(), HGConstant.CgPlanStatus.S_4);
}
......@@ -173,6 +177,7 @@ public class ServiceHGCG002A extends ServiceBase {
cg002B.setContractNo(newCg002.getContractNo());
cg002B.setContractLineNo(SequenceGenerator.getNextSequence(HGConstant.SequenceId.CG_CONTRACT_LINE_NO,
new String[]{newCg002.getContractNo()}));
cg002B.setStatus(HGConstant.CgContractStatus.S_0);
cg002B.setDeleteFlag(DeleteFlagEnum.UN_REMOVE.getCode());
cg002B.setPrimaryId(newCg002.getId());
cg002B.setPlanDetailId(fCg001A.getId());
......
......@@ -13,6 +13,7 @@ import com.baosight.hggp.hg.constant.HGConstant;
import com.baosight.hggp.hg.constant.HGSqlConstant;
import com.baosight.hggp.hg.pz.domain.HGPZ004;
import com.baosight.hggp.hg.pz.domain.HGPZ005;
import com.baosight.hggp.hg.utils.HGUtils;
import com.baosight.hggp.hg.xs.domain.Company;
import com.baosight.hggp.hg.xs.domain.User;
import com.baosight.hggp.hg.xs.tools.HGXSTools;
......@@ -20,8 +21,10 @@ import com.baosight.hggp.util.*;
import com.baosight.iplat4j.core.ei.EiConstant;
import com.baosight.iplat4j.core.ei.EiInfo;
import com.baosight.iplat4j.core.service.impl.ServiceBase;
import com.baosight.iplat4j.ed.util.SequenceGenerator;
import java.math.BigDecimal;
import java.math.RoundingMode;
import java.util.Arrays;
import java.util.HashMap;
import java.util.List;
......@@ -87,33 +90,32 @@ public class ServiceHGCG002B extends ServiceBase {
@OperationLogAnnotation(operModul = "采购合同", operType = "修改", operDesc = "保存")
public EiInfo save(EiInfo inInfo) {
try {
Map queryMap = EiInfoUtils.getFirstRow(inInfo);
Long primaryId = MapUtils.getLong(queryMap, HGCG002B.FIELD_PRIMARY_ID);
List<HGCG002B> fCg002Bs = MapUtils.toDaoEPBases(inInfo, HGCG002B.class);
HGCG002 cg002 = HGCGTools.HgCg002.get(fCg002Bs.get(0).getPrimaryId());
if(cg002.getSource().intValue() == HGConstant.CgSource.DEFAULT){
HGCG002 dbCg002 = HGCGTools.HgCg002.get(primaryId);
AssertUtils.isNull(dbCg002, String.format("主合同【%s】信息不存在", primaryId));
if (dbCg002.getSource().intValue() == HGConstant.CgSource.DEFAULT) {
// db数据
Map<Long, HGCG002B> dbCg002AMap = HGCGUtils.HgCg002B.lockGetDataEp(fCg002Bs);
// 数据校验
this.checkSaveData(fCg002Bs, dbCg002AMap,cg002);
this.checkSaveData(fCg002Bs, dbCg002AMap, dbCg002);
// 保存数据
this.editData(fCg002Bs,cg002);
}else{
this.editData(fCg002Bs, dbCg002);
} else {
// 写入数据
for (int i = 0; i < fCg002Bs.size(); i++) {
HGCG002B hgcg002B = fCg002Bs.get(i);
if (hgcg002B.getId() == null || hgcg002B.getId() == 0) {
// 修改数据
this.saveData(hgcg002B,cg002);
for (HGCG002B fCg002B : fCg002Bs) {
if (fCg002B.getId() == null || fCg002B.getId() == 0) {
this.saveData(fCg002B, dbCg002);
} else {
// 新增数据
hgcg002B.setStatus(HGConstant.CgContractStatus.S_0);
DaoUtils.update(HGCG002B.UPDATE, hgcg002B);
fCg002B.setStatus(HGConstant.CgContractStatus.S_0);
DaoUtils.update(HGCG002B.UPDATE, fCg002B);
}
}
//修改主表信息
cg002.setStatus(HGConstant.CgContractStatus.S_0);
HGCGTools.HgCg002.updateCg002Pur(cg002);
// 修改主表信息
dbCg002.setStatus(HGConstant.CgContractStatus.S_0);
HGCGTools.HgCg002.updateCg002Pur(dbCg002);
}
inInfo = this.query(inInfo);
inInfo.setStatus(EiConstant.STATUS_DEFAULT);
inInfo.setMsg("操作成功!本次对[" + fCg002Bs.size() + "]条数据保存成功!");
......@@ -122,29 +124,46 @@ public class ServiceHGCG002B extends ServiceBase {
}
return inInfo;
}
private void saveData(HGCG002B hgcg002B, HGCG002 cg002) {
BeanUtils.copyProperties(hgcg002B,cg002,"id","createdBy","createdName","createdTime","updatedBy","updatedName","updatedTime",
"inventType","inventTypeDetail","inventCode","inventName","spec","material","unit","length","width","thick","purQty","purUnitWeight","purWeight");
DaoUtils.insert(HGCG002B.INSERT, hgcg002B);
/**
* 新增写入数据
*
* @param fCg002B
* @param dbCg002
*/
private void saveData(HGCG002B fCg002B, HGCG002 dbCg002) {
fCg002B.setPrimaryId(dbCg002.getId());
fCg002B.setContractNo(dbCg002.getContractNo());
fCg002B.setContractLineNo(SequenceGenerator.getNextSequence(HGConstant.SequenceId.CG_CONTRACT_LINE_NO,
new String[]{dbCg002.getContractNo()}));
fCg002B.setCompanyCode(dbCg002.getCompanyCode());
fCg002B.setCompanyName(dbCg002.getCompanyName());
fCg002B.setProjCode(dbCg002.getProjCode());
fCg002B.setProjName(dbCg002.getProjName());
// 单重
fCg002B.setPurUnitWeight(fCg002B.getPurWeight().divide(fCg002B.getPurQty(), 3, RoundingMode.HALF_UP));
fCg002B.setStatus(HGConstant.CgContractStatus.S_0);
DaoUtils.insert(HGCG002B.INSERT, fCg002B);
}
/**
* 数据校验
*
* @param fCg002Bs
* @param dbCg002BMap
*/
private void checkSaveData(List<HGCG002B> fCg002Bs, Map<Long, HGCG002B> dbCg002BMap,HGCG002 cg002) {
private void checkSaveData(List<HGCG002B> fCg002Bs, Map<Long, HGCG002B> dbCg002BMap, HGCG002 cg002) {
for (HGCG002B fCg002B : fCg002Bs) {
Long id = fCg002B.getId();
HGCG002B dbCg002B = dbCg002BMap.get(id);
AssertUtils.isNull(dbCg002B, String.format("合同明细[%s]不存在", id));
AssertUtils.isTrue(cg002.getStatus().intValue() == HGConstant.CgContractStatus.S_4
|| cg002.getStatus().intValue() == HGConstant.CgContractStatus.S_5,
|| cg002.getStatus().intValue() == HGConstant.CgContractStatus.S_5,
String.format("合同[%s]已生成收货单,不允许操作", cg002.getContractNo()));
AssertUtils.isTrue(fCg002B.getPrice().compareTo(BigDecimal.ZERO) <= 0, String.format("存货[%s]单价小于等于0,不允许操作", dbCg002B.getInventCode()));
AssertUtils.isTrue(fCg002B.getTaxRate().compareTo(BigDecimal.ZERO) <= 0, String.format("存货[%s]税率小于等于0,不允许操作", dbCg002B.getInventCode()));
AssertUtils.isTrue(fCg002B.getPrice().compareTo(BigDecimal.ZERO) <= 0,
String.format("存货[%s]单价小于等于0,不允许操作", dbCg002B.getInventCode()));
AssertUtils.isTrue(fCg002B.getTaxRate().compareTo(BigDecimal.ZERO) <= 0,
String.format("存货[%s]税率小于等于0,不允许操作", dbCg002B.getInventCode()));
}
}
......
......@@ -53,7 +53,7 @@ public class ServiceHGCG003 extends ServiceBase {
CommonMethod.initBlock(inInfo, Arrays.asList(DdynamicEnum.SUP_RECORD_BLOCK_ID));
CommonMethod.initBlock(inInfo, Arrays.asList(DdynamicEnum.INVENT_RECORD_BLOCK_ID));
CommonMethod.initBlock(inInfo, Arrays.asList(DdynamicEnum.SPEC_NAME_BLOCK_ID));
CommonMethod.initBlock(inInfo, Arrays.asList(DdynamicEnum.USER_BLOCK_ID));
Map qarma = new HashMap();
Map userCompany = HGSBTools.getUserCompany();
qarma.put(HGSC009.FIELD_COMPANY_CODE,userCompany.get(HGSC009.FIELD_COMPANY_CODE));
......@@ -99,13 +99,11 @@ public class ServiceHGCG003 extends ServiceBase {
try {
List<HGCG003> fCg003s = MapUtils.toDaoEPBases(inInfo, HGCG003.class);
// 写入数据
for (int i = 0; i < fCg003s.size(); i++) {
HGCG003 hgcg003 = fCg003s.get(i);
if (hgcg003.getId() == null || hgcg003.getId() == 0) {
// 修改数据
this.saveData(hgcg003);
for (HGCG003 fCg003 : fCg003s) {
if (fCg003.getId() == null || fCg003.getId() == 0) {
this.saveData(fCg003);
} else {
DaoUtils.update(HGCG003.UPDATE, hgcg003);
this.editData(fCg003);
}
}
inInfo = this.query(inInfo);
......@@ -120,38 +118,26 @@ public class ServiceHGCG003 extends ServiceBase {
/**
* 保存数据
*
* @param hgcg003
* @param fCg003
*/
private void saveData(HGCG003 hgcg003) {
private void saveData(HGCG003 fCg003) {
// 新增数据
hgcg003.setReceiveNo(SequenceGenerator.getNextSequence(HGConstant.SequenceId.CG_RECEIVE_NO));
hgcg003.setStatus(HGConstant.CgReceiveStatus.S_2);
hgcg003.setDeleteFlag(DeleteFlagEnum.UN_REMOVE.getCode());
hgcg003.setSource(HGConstant.CgSource.SDLR);
hgcg003.setReceiveDate(DateUtils.formatShort(hgcg003.getReceiveDate()));
DaoUtils.insert(HGCG003.INSERT, hgcg003);
fCg003.setReceiveNo(SequenceGenerator.getNextSequence(HGConstant.SequenceId.CG_RECEIVE_NO));
fCg003.setStatus(HGConstant.CgReceiveStatus.S_2);
fCg003.setDeleteFlag(DeleteFlagEnum.UN_REMOVE.getCode());
fCg003.setSource(HGConstant.CgSource.SDLR);
fCg003.setReceiveDate(DateUtils.formatShort(fCg003.getReceiveDate()));
DaoUtils.insert(HGCG003.INSERT, fCg003);
}
/**
* 数据修改,修改合同数据
*
* @param fCg003s
* @param dbCg003Map
* @param dbCg002AMap
* @param fCg003
*/
private void editData(List<HGCG003> fCg003s, Map<String, HGCG003> dbCg003Map, Map<String, HGCG002A> dbCg002AMap) {
for (HGCG003 fCg003 : fCg003s) {
String receiveNo = fCg003.getReceiveNo();
String contractNo = fCg003.getContractNo();
// 计算重量
fCg003.setReceiveWeight(fCg003.getReceiveQty().multiply(fCg003.getReceiveUnitWeight()));
DaoUtils.update(HGSqlConstant.HgCg003.UPDATE_QTY, fCg003);
// 计算差异数量,更新合同状态
HGCG003 dbCg003 = dbCg003Map.get(receiveNo);
BigDecimal diffQty = fCg003.getReceiveQty().subtract(dbCg003.getReceiveQty());
BigDecimal diffWeight = fCg003.getReceiveWeight().subtract(dbCg003.getReceiveWeight());
HGCGTools.HgCg002.updateReceive(dbCg002AMap.get(contractNo), diffQty, diffWeight);
}
private void editData(HGCG003 fCg003) {
fCg003.setReceiveDate(DateUtils.formatShort(fCg003.getReceiveDate()));
DaoUtils.update(HGCG003.UPDATE, fCg003);
}
/**
......
......@@ -204,11 +204,10 @@ public class ServiceHGCG003A extends ServiceBase {
* 新增主信息
*
* @param fCg002Bs
* @param cg002
* @param dbCg002
*/
private HGCG003 insertMain(List<HGCG002B> fCg002Bs, HGCG002 cg002) {
HGCG002B firstCg002B = fCg002Bs.get(0);
HGCG003 newCg003 = BeanUtils.copy(firstCg002B, HGCG003.class);
private HGCG003 insertMain(List<HGCG002B> fCg002Bs, HGCG002 dbCg002) {
HGCG003 newCg003 = BeanUtils.copy(dbCg002, HGCG003.class);
newCg003.setReceiveDate(DateUtils.shortDate());
newCg003.setReceiveNo(SequenceGenerator.getNextSequence(HGConstant.SequenceId.CG_RECEIVE_NO));
// 计算收获总数量
......@@ -246,6 +245,8 @@ public class ServiceHGCG003A extends ServiceBase {
HGCG003B cg003B = BeanUtils.copy(dbCg002b, HGCG003B.class);
cg003B.setReceiveDate(newCg003.getReceiveDate()); // 收货日期
cg003B.setReceiveNo(newCg003.getReceiveNo()); // 收货号
cg003B.setReceiveLineNo(SequenceGenerator.getNextSequence(HGConstant.SequenceId.CG_RECEIVE_LINE_NO,
new String[]{newCg003.getReceiveNo()}));
cg003B.setPlanNo(newCg003.getPlanNo()); // 计划号
cg003B.setContractNo(newCg003.getContractNo()); // 合同号
cg003B.setPrimaryId(newCg003.getId());
......
......@@ -10,6 +10,7 @@ import com.baosight.hggp.hg.cg.domain.HGCG002;
import com.baosight.hggp.hg.cg.domain.HGCG002A;
import com.baosight.hggp.hg.cg.domain.HGCG002B;
import com.baosight.hggp.hg.cg.domain.HGCG003;
import com.baosight.hggp.hg.cg.domain.HGCG003A;
import com.baosight.hggp.hg.cg.domain.HGCG003B;
import com.baosight.hggp.hg.cg.tools.HGCGTools;
import com.baosight.hggp.hg.cg.utils.HGCGUtils;
......@@ -28,8 +29,10 @@ import com.baosight.hggp.util.ObjectUtils;
import com.baosight.iplat4j.core.ei.EiConstant;
import com.baosight.iplat4j.core.ei.EiInfo;
import com.baosight.iplat4j.core.service.impl.ServiceBase;
import com.baosight.iplat4j.ed.util.SequenceGenerator;
import java.math.BigDecimal;
import java.math.RoundingMode;
import java.util.Arrays;
import java.util.HashMap;
import java.util.LinkedList;
......@@ -92,9 +95,12 @@ public class ServiceHGCG003B extends ServiceBase {
@OperationLogAnnotation(operModul = "采购收货", operType = "修改", operDesc = "保存")
public EiInfo save(EiInfo inInfo) {
try {
Map queryMap = EiInfoUtils.getFirstRow(inInfo);
Long primaryId = MapUtils.getLong(queryMap, HGCG003B.FIELD_PRIMARY_ID);
List<HGCG003B> fCg003Bs = MapUtils.toDaoEPBases(inInfo, HGCG003B.class);
HGCG003 cg003 = HGCGTools.HgCg003.get(fCg003Bs.get(0).getPrimaryId());
if (cg003.getSource() == HGConstant.CgSource.DEFAULT) {
HGCG003 dbCg003 = HGCGTools.HgCg003.get(primaryId);
AssertUtils.isNull(dbCg003, "主收货信息不存在");
if (dbCg003.getSource() == HGConstant.CgSource.DEFAULT) {
// 采购收货DB数据
Map<Long, HGCG003B> dbCg003BMap = HGCGUtils.HgCg003B.lockGetDataEp(fCg003Bs);
// 采购合同DB数据
......@@ -104,20 +110,32 @@ public class ServiceHGCG003B extends ServiceBase {
Map<Long, HGCG002B> dbCg002BMap = HGCGUtils.HgCg002B.lockGetData(
ObjectUtils.listEpKey(fCg003Bs, HGCG003B.FIELD_CONTRACT_DETAIL_ID));
// 数据校验
this.checkEditData(fCg003Bs, dbCg003BMap, cg003);
this.checkEditData(fCg003Bs, dbCg003BMap, dbCg003);
// 保存数据
this.editData(fCg003Bs, dbCg003BMap, dbCg002AMap, cg003, dbCg002BMap);
this.editData(fCg003Bs, dbCg003BMap, dbCg002AMap, dbCg003, dbCg002BMap);
} else {
// 写入数据
for (HGCG003B fCg003B : fCg003Bs) {
AssertUtils.isGe(BigDecimal.ZERO, fCg003B.getReceiveQty(),
String.format("收货单[%s]的\"收货数量(%s)\"必须大于0", fCg003B.getReceiveLineNo(),
fCg003B.getReceiveQty()));
AssertUtils.isGt(BigDecimal.ZERO, fCg003B.getReceiveWeight(),
String.format("收货单[%s]的\"收货重量(%s)\"必须大于等于0", fCg003B.getReceiveLineNo(),
fCg003B.getReceiveQty()));
// 计算单重
if (fCg003B.getReceiveUnitWeight() == null
|| fCg003B.getReceiveUnitWeight().compareTo(BigDecimal.ZERO) < 1) {
fCg003B.setReceiveUnitWeight(fCg003B.getReceiveWeight()
.divide(fCg003B.getReceiveQty(), 3, RoundingMode.HALF_UP));
}
if (fCg003B.getId() == null || fCg003B.getId() == 0) {
this.addData(fCg003B, cg003);
this.addData(fCg003B, dbCg003);
} else {
this.updateData(fCg003B);
}
}
//修改主表信息
updateCg003Pur(cg003);
updateCg003Pur(dbCg003);
}
inInfo = this.query(inInfo);
inInfo.setStatus(EiConstant.STATUS_DEFAULT);
......@@ -192,21 +210,25 @@ public class ServiceHGCG003B extends ServiceBase {
/**
* 新增数据
*
* @param hgcg003B
* @param cg003
* @param fCg003B
* @param dbCg003
*/
private void addData(HGCG003B hgcg003B, HGCG003 cg003) {
hgcg003B.setPrimaryId(cg003.getId());
hgcg003B.setReceiveNo(cg003.getReceiveNo());
hgcg003B.setStatus(HGConstant.CgReceiveStatus.S_2);
hgcg003B.setDeleteFlag(DeleteFlagEnum.UN_REMOVE.getCode());
hgcg003B.setReceiveDate(DateUtils.formatShort(cg003.getReceiveDate()));
hgcg003B.setCompanyCode(cg003.getCompanyCode());
hgcg003B.setCompanyName(cg003.getCompanyName());
hgcg003B.setDepCode(cg003.getDepCode());
hgcg003B.setAccountCode(cg003.getAccountCode());
hgcg003B.setUnCancelAmount(hgcg003B.getTaxIncludeAmount());
DaoUtils.insert(HGCG003B.INSERT, hgcg003B);
private void addData(HGCG003B fCg003B, HGCG003 dbCg003) {
fCg003B.setProjCode(dbCg003.getProjCode());
fCg003B.setProjName(dbCg003.getProjName());
fCg003B.setPrimaryId(dbCg003.getId());
fCg003B.setReceiveNo(dbCg003.getReceiveNo());
fCg003B.setReceiveLineNo(SequenceGenerator.getNextSequence(HGConstant.SequenceId.CG_RECEIVE_LINE_NO,
new String[]{dbCg003.getReceiveNo()}));
fCg003B.setStatus(HGConstant.CgReceiveStatus.S_2);
fCg003B.setDeleteFlag(DeleteFlagEnum.UN_REMOVE.getCode());
fCg003B.setReceiveDate(DateUtils.formatShort(dbCg003.getReceiveDate()));
fCg003B.setCompanyCode(dbCg003.getCompanyCode());
fCg003B.setCompanyName(dbCg003.getCompanyName());
fCg003B.setDepCode(dbCg003.getDepCode());
fCg003B.setAccountCode(dbCg003.getAccountCode());
fCg003B.setUnCancelAmount(fCg003B.getTaxIncludeAmount());
DaoUtils.insert(HGCG003B.INSERT, fCg003B);
}
/**
......@@ -219,17 +241,33 @@ public class ServiceHGCG003B extends ServiceBase {
DaoUtils.update(HGCG003B.UPDATE, hgcg003B);
}
/**
* 修改主收货信息
*
* @param cg003
*/
private void updateCg003Pur(HGCG003 cg003) {
List<HGCG003B> queryCG003Bs = HGCGTools.HgCg003B.listByPrimaryId(cg003.getId());
//修改主表信息
//收货数量
// 收货数量
BigDecimal receiveQtySum = queryCG003Bs.stream().map(HGCG003B::getReceiveQty)
.reduce(BigDecimal.ZERO, BigDecimal::add);
cg003.setReceiveQty(receiveQtySum);
//收货重量
// 收货重量
BigDecimal receiveWeightSum = queryCG003Bs.stream().map(HGCG003B::getReceiveWeight)
.reduce(BigDecimal.ZERO, BigDecimal::add);
cg003.setReceiveWeight(receiveWeightSum);
// 金额
BigDecimal amountSum = queryCG003Bs.stream().map(HGCG003B::getAmount)
.reduce(BigDecimal.ZERO, BigDecimal::add);
cg003.setAmount(amountSum);
// 税额
BigDecimal taxAmountSum = queryCG003Bs.stream().map(HGCG003B::getTaxAmount)
.reduce(BigDecimal.ZERO, BigDecimal::add);
cg003.setTaxAmount(taxAmountSum);
// 不含税税额
BigDecimal taxIncludeAmountSum = queryCG003Bs.stream().map(HGCG003B::getTaxIncludeAmount)
.reduce(BigDecimal.ZERO, BigDecimal::add);
cg003.setTaxIncludeAmount(taxIncludeAmountSum);
DaoUtils.update(HGSqlConstant.HgCg003.UPDATE_QTY, cg003);
}
......@@ -242,10 +280,12 @@ public class ServiceHGCG003B extends ServiceBase {
@OperationLogAnnotation(operModul = "采购收货", operType = "修改", operDesc = "删除")
public EiInfo remove(EiInfo inInfo) {
try {
Map queryMap = EiInfoUtils.getFirstRow(inInfo);
Long primaryId = MapUtils.getLong(queryMap, HGCG003B.FIELD_PRIMARY_ID);
List<HGCG003B> fCg003Bs = MapUtils.toDaoEPBases(inInfo, HGCG003B.class);
// 采购收货DB数据
Map<Long, HGCG003B> dbCg003BMap = HGCGUtils.HgCg003B.lockGetDataEp(fCg003Bs);
HGCG003 cg003 = HGCGTools.HgCg003.get(fCg003Bs.get(0).getPrimaryId());
HGCG003 dbCg003 = HGCGTools.HgCg003.get(primaryId);
// 采购合同DB数据
Map<String, HGCG002A> dbCg002AMap = HGCGUtils.HgCg002.lockGetData(
ObjectUtils.listEpKey(fCg003Bs, HGCG003B.FIELD_CONTRACT_NO));
......@@ -253,9 +293,9 @@ public class ServiceHGCG003B extends ServiceBase {
Map<Long, HGCG002B> dbCg002BMap = HGCGUtils.HgCg002B.lockGetData(
ObjectUtils.listEpKey(fCg003Bs, HGCG003B.FIELD_CONTRACT_DETAIL_ID));
// 数据校验
this.checkRemoveData(fCg003Bs, dbCg003BMap, cg003);
this.checkRemoveData(fCg003Bs, dbCg003BMap, dbCg003);
// 保存数据
this.removeData(fCg003Bs, dbCg003BMap, dbCg002AMap, cg003, dbCg002BMap);
this.removeData(fCg003Bs, dbCg003BMap, dbCg002AMap, dbCg003, dbCg002BMap);
inInfo = this.query(inInfo);
inInfo.setStatus(EiConstant.STATUS_DEFAULT);
inInfo.setMsg("操作成功!本次对[" + fCg003Bs.size() + "]条数据删除成功!");
......@@ -270,14 +310,15 @@ public class ServiceHGCG003B extends ServiceBase {
*
* @param fCg003Bs
* @param dbCg003BMap
* @param cg003
* @param dbCg003
*/
private void checkRemoveData(List<HGCG003B> fCg003Bs, Map<Long, HGCG003B> dbCg003BMap, HGCG003 cg003) {
private void checkRemoveData(List<HGCG003B> fCg003Bs, Map<Long, HGCG003B> dbCg003BMap, HGCG003 dbCg003) {
AssertUtils.isNull(dbCg003, "主收货单不存在");
for (HGCG003B fCg003B : fCg003Bs) {
String receiveNo = fCg003B.getReceiveNo();
HGCG003B dbCg003B = dbCg003BMap.get(fCg003B.getId());
AssertUtils.isNull(dbCg003B, String.format("收货单[%s]不存在", receiveNo));
AssertUtils.isNotEquals(HGConstant.CgReceiveStatus.S_2, cg003.getStatus(),
AssertUtils.isNotEquals(HGConstant.CgReceiveStatus.S_2, dbCg003.getStatus(),
String.format("收货单[%s]状态不是\"已收货\",不允许操作", receiveNo));
}
}
......@@ -288,13 +329,13 @@ public class ServiceHGCG003B extends ServiceBase {
* @param fCg003Bs
* @param dbCg003bMap
* @param dbCg002AMap
* @param cg003
* @param dbCg003
* @param dbCg002BMap
*/
private void removeData(List<HGCG003B> fCg003Bs, Map<Long, HGCG003B> dbCg003bMap, Map<String, HGCG002A> dbCg002AMap,
HGCG003 cg003, Map<Long, HGCG002B> dbCg002BMap) {
HGCG003 dbCg003, Map<Long, HGCG002B> dbCg002BMap) {
// 数据来源为合同的
if (cg003.getSource().intValue() == HGConstant.CgSource.DEFAULT) {
if (dbCg003.getSource().intValue() == HGConstant.CgSource.DEFAULT) {
for (HGCG003B fCg003B : fCg003Bs) {
HGCG003B dbCg003B = dbCg003bMap.get(fCg003B.getId());
dbCg003B.setDeleteFlag(DeleteFlagEnum.REMOVE.getCode());
......@@ -318,7 +359,7 @@ public class ServiceHGCG003B extends ServiceBase {
}
}
//修改主表信息
updateCg003Pur(cg003);
updateCg003Pur(dbCg003);
}
}
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE sqlMap PUBLIC "-//ibatis.apache.org//DTD SQL Map 2.0//EN" "http://ibatis.apache.org/dtd/sql-map-2.dtd">
<!DOCTYPE sqlMap PUBLIC "-//iBATIS.com//DTD SQL Map 2.0//EN" "http://www.ibatis.com/dtd/sql-map-2.dtd">
<sqlMap namespace="HGCG001A">
<sql id="condition">
<sql id="condition">
AND DELETE_FLAG = 0
<isNotEmpty prepend=" AND " property="id">
ID = #id#
......@@ -124,7 +124,8 @@
</sql>
<sql id="conditionByContract">
AND a.DELETE_FLAG = 0
AND A.DELETE_FLAG = 0
AND B.DELETE_FLAG = 0
<isNotEmpty prepend=" AND " property="id">
a.ID = #id#
</isNotEmpty>
......@@ -311,47 +312,47 @@
<include refid="condition" />
</select>
<select id="queryByContract" parameterClass="java.util.HashMap"
resultClass="com.baosight.hggp.hg.cg.domain.HGCG001A">
SELECT
a.ID as "id",
a.ACCOUNT_CODE as "accountCode", <!-- 企业编码 -->
a.DEP_CODE as "depCode", <!-- 部门编码 -->
a.CREATED_BY as "createdBy", <!-- 记录创建者 -->
a.CREATED_NAME as "createdName", <!-- 记录创建名称 -->
a.CREATED_TIME as "createdTime", <!-- 记录创建时间 -->
a.UPDATED_BY as "updatedBy", <!-- 记录修改者 -->
a.UPDATED_NAME as "updatedName", <!-- 记录修改名称 -->
a.UPDATED_TIME as "updatedTime", <!-- 记录修改时间 -->
a.DELETE_FLAG as "deleteFlag", <!-- 0-未删除,1-已删除 -->
a.COMPANY_CODE as "companyCode", <!-- 公司编码 -->
a.COMPANY_NAME as "companyName", <!-- 公司名称 -->
a.INVENT_TYPE as "inventType", <!-- 存货类型 -->
a.INVENT_CODE as "inventCode", <!-- 存货编码 -->
a.INVENT_NAME as "inventName", <!-- 存货名称 -->
a.SPEC as "spec", <!-- 规格 -->
a.MATERIAL as "material", <!-- 材质 -->
a.UNIT as "unit", <!-- 单位 -->
a.LENGTH as "length", <!-- 长度 -->
a.WIDTH as "width", <!-- 宽度 -->
a.THICK as "thick", <!-- 厚度 -->
a.PLAN_QTY as "planQty", <!-- 计划数量 -->
a.PLAN_UNIT_WEIGHT as "planUnitWeight", <!-- 计划单重 -->
a.PLAN_WEIGHT as "planWeight", <!-- 计划重量 -->
a.PUR_QTY as "purQty", <!-- 采购数量 -->
a.PUR_UNIT_WEIGHT as "purUnitWeight", <!-- 采购单重 -->
a.PUR_WEIGHT as "purWeight", <!-- 采购重量 -->
a.MATERIAL_PLAN_ID as "materialPlanId", <!-- 材料计划id -->
a.INVENT_TYPE_DETAIL as "inventTypeDetail", <!-- 存货类型大类 -->
a.REMARKS as "remarks", <!-- 备注 -->
a.STATUS as "status", <!-- 状态:0-未审批,1-审核通过,2-审核未通过 -->
a.PROJ_CODE as "projCode", <!-- 项目编码 -->
a.PROJ_NAME as "projName", <!-- 项目名称 -->
b.SOURCE as "source", <!-- 数据来源 根据采购数据来源小代码 目前默认0材料计划,1手工录入 -->
b.PLAN_DATE as "planDate", <!-- 计划日期 -->
b.PLAN_NO as "planNo", <!-- 计划单号 -->
a.PRIMARY_ID as "primaryId" <!-- 主表id -->
FROM ${hggpSchema}.HGCG001A a LEFT JOIN ${hggpSchema}.HGCG001 b ON a.PRIMARY_ID = b.ID
<select id="queryByContract" resultClass="com.baosight.hggp.hg.cg.domain.HGCG001A">
SELECT
a.ID as "id",
a.ACCOUNT_CODE as "accountCode", <!-- 企业编码 -->
a.DEP_CODE as "depCode", <!-- 部门编码 -->
a.CREATED_BY as "createdBy", <!-- 记录创建者 -->
a.CREATED_NAME as "createdName", <!-- 记录创建名称 -->
a.CREATED_TIME as "createdTime", <!-- 记录创建时间 -->
a.UPDATED_BY as "updatedBy", <!-- 记录修改者 -->
a.UPDATED_NAME as "updatedName", <!-- 记录修改名称 -->
a.UPDATED_TIME as "updatedTime", <!-- 记录修改时间 -->
a.DELETE_FLAG as "deleteFlag", <!-- 0-未删除,1-已删除 -->
a.COMPANY_CODE as "companyCode", <!-- 公司编码 -->
a.COMPANY_NAME as "companyName", <!-- 公司名称 -->
a.INVENT_TYPE as "inventType", <!-- 存货类型 -->
a.INVENT_CODE as "inventCode", <!-- 存货编码 -->
a.INVENT_NAME as "inventName", <!-- 存货名称 -->
a.SPEC as "spec", <!-- 规格 -->
a.MATERIAL as "material", <!-- 材质 -->
a.UNIT as "unit", <!-- 单位 -->
a.LENGTH as "length", <!-- 长度 -->
a.WIDTH as "width", <!-- 宽度 -->
a.THICK as "thick", <!-- 厚度 -->
a.PLAN_QTY as "planQty", <!-- 计划数量 -->
a.PLAN_UNIT_WEIGHT as "planUnitWeight", <!-- 计划单重 -->
a.PLAN_WEIGHT as "planWeight", <!-- 计划重量 -->
a.PUR_QTY as "purQty", <!-- 采购数量 -->
a.PUR_UNIT_WEIGHT as "purUnitWeight", <!-- 采购单重 -->
a.PUR_WEIGHT as "purWeight", <!-- 采购重量 -->
a.MATERIAL_PLAN_ID as "materialPlanId", <!-- 材料计划id -->
a.INVENT_TYPE_DETAIL as "inventTypeDetail", <!-- 存货类型大类 -->
a.REMARKS as "remarks", <!-- 备注 -->
a.STATUS as "status", <!-- 状态:0-未审批,1-审核通过,2-审核未通过 -->
a.PROJ_CODE as "projCode", <!-- 项目编码 -->
a.PROJ_NAME as "projName", <!-- 项目名称 -->
b.SOURCE as "source", <!-- 数据来源 根据采购数据来源小代码 目前默认0材料计划,1手工录入 -->
b.PLAN_DATE as "planDate", <!-- 计划日期 -->
b.PLAN_NO as "planNo", <!-- 计划单号 -->
a.PRIMARY_ID as "primaryId" <!-- 主表id -->
FROM ${hggpSchema}.HGCG001A A
LEFT JOIN ${hggpSchema}.HGCG001 B ON A.PRIMARY_ID = B.ID
WHERE 1=1
<include refid="conditionByContract" />
<dynamic prepend="ORDER BY">
......@@ -362,7 +363,6 @@
a.ID desc
</isEmpty>
</dynamic>
</select>
<insert id="insert">
......
......@@ -187,7 +187,6 @@
<insert id="insert">
INSERT INTO ${hggpSchema}.HGCG002 (
ID,
ACCOUNT_CODE, <!-- 企业编码 -->
DEP_CODE, <!-- 部门编码 -->
CREATED_BY, <!-- 记录创建者 -->
......@@ -226,7 +225,7 @@
PROJ_NAME, <!-- 项目名称 -->
SOURCE <!-- 数据来源 根据采购数据来源小代码 目前默认0采购计划,1手工录入 -->
) VALUES (
#id#,#accountCode#, #depCode#, #createdBy#, #createdName#, #createdTime#,
#accountCode#, #depCode#, #createdBy#, #createdName#, #createdTime#,
#deleteFlag#, #companyCode#, #companyName#, #contractDate#, #contractNo#, #planNo#,
#supCode#, #supName#, #purUserId#, #purUserName#, #inventCode#, #inventName#,
#specId#, #spec#, #material#, #unit#, #length#, #width#, #thick#,
......
......@@ -237,13 +237,15 @@
CALCULATION_METHOD,
PLAN_DETAIL_ID,
CONTRACT_NO,
CONTRACT_LINE_NO
CONTRACT_LINE_NO,
STATUS
) VALUES (
#accountCode#, #depCode#, #createdBy#, #createdName#, #createdTime#,
#deleteFlag#, #companyCode#, #companyName#, #inventType#, #inventCode#, #inventName#, #spec#,
#material#, #unit#, #length#, #width#, #thick#, #purQty#, #purUnitWeight#, #purWeight#, #receiveQty#,
#receiveWeight#, #price#, #amount#, #taxIncludeAmount#, #taxAmount#, #taxRate#, #inventTypeDetail#,
#primaryId#,#projCode#,#projName#,#calculationMethod#, #planDetailId#, #contractNo#, #contractLineNo#
#primaryId#,#projCode#,#projName#,#calculationMethod#, #planDetailId#, #contractNo#, #contractLineNo#,
#status#
)
</insert>
......
......@@ -23,16 +23,6 @@
SUP_NAME as "supName", <!-- 供应商名称 -->
PUR_USER_ID as "purUserId", <!-- 采购员 -->
PUR_USER_NAME as "purUserName", <!-- 采购员名称 -->
INVENT_TYPE as "inventType", <!-- 存货类型 -->
INVENT_CODE as "inventCode", <!-- 存货编码 -->
INVENT_NAME as "inventName", <!-- 存货名称 -->
SPEC_ID as "specId", <!-- 规格ID -->
SPEC as "spec", <!-- 规格 -->
MATERIAL as "material", <!-- 材质 -->
UNIT as "unit", <!-- 单位 -->
LENGTH as "length", <!-- 长度 -->
WIDTH as "width", <!-- 宽度 -->
THICK as "thick", <!-- 厚度 -->
RECEIVE_QTY as "receiveQty", <!-- 收货数量 -->
DELIVER_QTY as "deliverQty", <!-- 退货数量 -->
DEPOSIT_QTY as "depositQty", <!-- 入库数量 -->
......@@ -44,7 +34,6 @@
TAX_INCLUDE_AMOUNT as "taxIncludeAmount", <!-- 含税金额 -->
TAX_AMOUNT as "taxAmount", <!-- 税额 -->
TAX_RATE as "taxRate", <!-- 税率 -->
INVENT_TYPE_DETAIL as "inventTypeDetail", <!-- 存货类型大类 -->
IS_INVOICING as "isInvoicing", <!-- 是否开票 -->
SOURCE as "source", <!-- 数据来源 根据采购数据来源小代码 目前0默认采购合同,1手动录入 -->
PROJ_CODE as "projCode", <!-- 项目编码 -->
......@@ -274,23 +263,15 @@
<update id="update">
UPDATE ${hggpSchema}.HGCG003
SET
ID = #id#,
SUP_CODE = #supCode#, <!-- 供应商编码 -->
SUP_NAME = #supName#, <!-- 供应商名称 -->
PUR_USER_ID = #purUserId#, <!-- 采购员 -->
PUR_USER_NAME = #purUserName#, <!-- 采购员名称 -->
RECEIVE_QTY = #receiveQty#, <!-- 收货数量 -->
RECEIVE_WEIGHT = #receiveWeight#, <!-- 收货重量 -->
AMOUNT = #amount#, <!-- 金额 -->
TAX_INCLUDE_AMOUNT = #taxIncludeAmount#, <!-- 含税金额 -->
TAX_AMOUNT = #taxAmount#, <!-- 税额 -->
TAX_RATE = #taxRate#, <!-- 税率 -->
RECEIVE_DATE = REPLACE(#receiveDate#, '-', ''), <!-- 收货日期 -->
PROJ_CODE = #projCode#, <!-- 项目编号 -->
PROJ_NAME = #projName#, <!-- 项目名称 -->
PUR_USER_ID = #purUserId#, <!-- 采购员 -->
PUR_USER_NAME = #purUserName#, <!-- 采购员名称 -->
RECEIVE_DATE = #receiveDate#, <!-- 收货日期 -->
<include refid="updateRevise"/>
WHERE
ID = #id#
WHERE ID = #id#
</update>
<!-- 修改数量 -->
......@@ -299,6 +280,9 @@
SET
RECEIVE_QTY = #receiveQty#, <!-- 收货数量 -->
RECEIVE_WEIGHT = #receiveWeight#, <!-- 收货重量 -->
AMOUNT = #amount#, <!-- 金额(不含税金额) -->
TAX_INCLUDE_AMOUNT = #taxIncludeAmount#, <!-- 含税金额 -->
TAX_AMOUNT = #taxAmount#, <!-- 税额 -->
<include refid="updateRevise"/>
WHERE RECEIVE_NO = #receiveNo#
</update>
......
......@@ -17,8 +17,10 @@
COMPANY_NAME as "companyName", <!-- 公司名称 -->
RECEIVE_DATE as "receiveDate", <!-- 收货日期 -->
RECEIVE_NO as "receiveNo", <!-- 收货单号 -->
RECEIVE_LINE_NO as "receiveLineNo", <!-- 收货单行号 -->
PLAN_NO as "planNo", <!-- 计划单号 -->
CONTRACT_NO as "contractNo", <!-- 合同号 -->
CONTRACT_LINE_NO as "contractLineNo", <!-- 合同行号 -->
CONTRACT_DETAIL_ID as "contractDetailId", <!-- 合同明细id -->
INVENT_TYPE as "inventType", <!-- 存货类型 -->
INVENT_CODE as "inventCode", <!-- 存货编码 -->
......@@ -238,8 +240,10 @@
COMPANY_NAME, <!-- 公司名称 -->
RECEIVE_DATE, <!-- 收货日期 -->
RECEIVE_NO, <!-- 收货单号 -->
RECEIVE_LINE_NO, <!-- 收货单行号 -->
PLAN_NO, <!-- 计划单号 -->
CONTRACT_NO, <!-- 合同号 -->
CONTRACT_LINE_NO, <!-- 合同行号 -->
CONTRACT_DETAIL_ID, <!-- 合同明细id -->
INVENT_TYPE, <!-- 存货类型 -->
INVENT_CODE, <!-- 存货编码 -->
......@@ -272,7 +276,8 @@
UN_CANCEL_AMOUNT
) VALUES (
#accountCode#, #depCode#, #createdBy#, #createdName#, #createdTime#, #deleteFlag#,
#companyCode#, #companyName#, #receiveDate#, #receiveNo#, #planNo#, #contractNo#,
#companyCode#, #companyName#, #receiveDate#, #receiveNo#, #receiveLineNo#, #planNo#,
#contractNo#, #contractLineNo#,
#contractDetailId#, #inventType#, #inventCode#, #inventName#, #specId#, #spec#,
#material#, #unit#, #length#, #width#, #thick#, #receiveQty#, #deliverQty#,
#depositQty#, #receiveUnitWeight#, #receiveWeight#, #status#, #price#, #amount#,
......@@ -288,14 +293,6 @@
<update id="update">
UPDATE ${hggpSchema}.HGCG003A
SET
UPDATED_BY = #updatedBy#, <!-- 记录修改者 -->
UPDATED_NAME = #updatedName#, <!-- 记录修改名称 -->
UPDATED_TIME = #updatedTime#, <!-- 记录修改时间 -->
COMPANY_CODE = #companyCode#, <!-- 公司编码 -->
COMPANY_NAME = #companyName#, <!-- 公司名称 -->
RECEIVE_DATE = #receiveDate#, <!-- 收货日期 -->
RECEIVE_NO = #receiveNo#, <!-- 收货单号 -->
CONTRACT_NO = #contractNo#, <!-- 合同号 -->
INVENT_TYPE = #inventType#, <!-- 存货类型 -->
INVENT_CODE = #inventCode#, <!-- 存货编码 -->
INVENT_NAME = #inventName#, <!-- 存货名称 -->
......@@ -309,21 +306,17 @@
RECEIVE_QTY = #receiveQty#, <!-- 收货数量 -->
RECEIVE_UNIT_WEIGHT = #receiveUnitWeight#, <!-- 收货单重 -->
RECEIVE_WEIGHT = #receiveWeight#, <!-- 收货重量 -->
STATUS = #status#, <!-- 状态:0-已收货,1-已入库,2-部分入库,3-退货 -->
PRICE = #price#, <!-- 单价 -->
AMOUNT = #amount#, <!-- 金额(不含税金额) -->
TAX_INCLUDE_AMOUNT = #taxIncludeAmount#, <!-- 含税金额 -->
TAX_AMOUNT = #taxAmount#, <!-- 税额 -->
TAX_RATE = #taxRate#, <!-- 税率 -->
INVENT_TYPE_DETAIL = #inventTypeDetail#, <!-- 存货类型大类 -->
PRIMARY_ID = #primaryId#, <!-- 主表id -->
CONTRACT_DETAIL_ID = #contractDetailId#, <!-- 合同明细id -->
PROJ_CODE = #projCode#, <!-- 项目编码 -->
PROJ_NAME = #projName#, <!-- 项目名称 -->
CALCULATION_METHOD = #calculationMethod#,
IS_INVOICING = #isInvoicing#,
CANCEL_AMOUNT = #cancelAmount#,
UN_CANCEL_AMOUNT = #unCancelAmount#
UN_CANCEL_AMOUNT = #unCancelAmount#,
<include refid="SqlBase.updateRevise"/>
WHERE ID = #id#
</update>
......@@ -392,8 +385,10 @@
a.COMPANY_NAME as "companyName", <!-- 公司名称 -->
a.RECEIVE_DATE as "receiveDate", <!-- 收货日期 -->
a.RECEIVE_NO as "receiveNo", <!-- 收货单号 -->
a.RECEIVE_LINE_NO as "receiveLineNo", <!-- 收货单行号 -->
a.PLAN_NO as "planNo", <!-- 计划单号 -->
a.CONTRACT_NO as "contractNo", <!-- 合同号 -->
a.CONTRACT_LINE_NO as "contractLineNo", <!-- 合同行号 -->
a.INVENT_TYPE as "inventType", <!-- 存货类型 -->
a.INVENT_CODE as "inventCode", <!-- 存货编码 -->
a.INVENT_NAME as "inventName", <!-- 存货名称 -->
......
......@@ -476,32 +476,40 @@ public class HGCGTools {
DaoUtils.update(HGSqlConstant.HgCg002.UPDATE_RECEIVE, paramMap);
});
}
/**
* 修改主合同信息
*
* @param cg002
*/
public static void updateCg002Pur(HGCG002 cg002) {
List<HGCG002B> hgcg002BList = HGCGTools.HgCg002B.listByPrimaryId(cg002.getId());
//修改主表信息
//采购数量
BigDecimal purQtySum = hgcg002BList.stream().map(HGCG002B::getPurQty).reduce(BigDecimal.ZERO,BigDecimal::add);
List<HGCG002B> dbCg002Bs = HGCGTools.HgCg002B.listByPrimaryId(cg002.getId());
// 采购数量
BigDecimal purQtySum = dbCg002Bs.stream().map(HGCG002B::getPurQty).reduce(BigDecimal.ZERO, BigDecimal::add);
cg002.setPurQty(purQtySum);
//采购重量
BigDecimal purWeightSum = hgcg002BList.stream().map(HGCG002B::getPurWeight).reduce(BigDecimal.ZERO,BigDecimal::add);
BigDecimal purWeightSum = dbCg002Bs.stream().map(HGCG002B::getPurWeight)
.reduce(BigDecimal.ZERO, BigDecimal::add);
cg002.setPurWeight(purWeightSum);
//收货数量
BigDecimal receiveQtySum = hgcg002BList.stream().map(HGCG002B::getReceiveQty).reduce(BigDecimal.ZERO,BigDecimal::add);
BigDecimal receiveQtySum = dbCg002Bs.stream().map(HGCG002B::getReceiveQty)
.reduce(BigDecimal.ZERO, BigDecimal::add);
cg002.setReceiveQty(receiveQtySum);
//收货重量
BigDecimal receiveWeightSum = hgcg002BList.stream().map(HGCG002B::getReceiveWeight).reduce(BigDecimal.ZERO,BigDecimal::add);
BigDecimal receiveWeightSum = dbCg002Bs.stream().map(HGCG002B::getReceiveWeight)
.reduce(BigDecimal.ZERO, BigDecimal::add);
cg002.setReceiveWeight(receiveWeightSum);
//金额(不含税金额)
BigDecimal amountSum = hgcg002BList.stream().map(HGCG002B::getAmount).reduce(BigDecimal.ZERO,BigDecimal::add);
BigDecimal amountSum = dbCg002Bs.stream().map(HGCG002B::getAmount).reduce(BigDecimal.ZERO, BigDecimal::add);
cg002.setAmount(amountSum);
//税额
BigDecimal taxAmountSum = hgcg002BList.stream().map(HGCG002B::getTaxAmount).reduce(BigDecimal.ZERO,BigDecimal::add);
BigDecimal taxAmountSum = dbCg002Bs.stream().map(HGCG002B::getTaxAmount)
.reduce(BigDecimal.ZERO, BigDecimal::add);
cg002.setTaxAmount(taxAmountSum);
//含税金额
BigDecimal taxIncludeAmountSum = hgcg002BList.stream().map(HGCG002B::getTaxIncludeAmount).reduce(BigDecimal.ZERO,BigDecimal::add);
BigDecimal taxIncludeAmountSum = dbCg002Bs.stream().map(HGCG002B::getTaxIncludeAmount)
.reduce(BigDecimal.ZERO, BigDecimal::add);
cg002.setTaxIncludeAmount(taxIncludeAmountSum);
DaoUtils.update(HGSqlConstant.HgCg002.UPDATE_PUR, cg002);
}
......
......@@ -9,6 +9,8 @@ import com.baosight.hggp.util.MapUtils;
import com.baosight.hggp.util.ObjectUtils;
import com.baosight.hggp.util.StringUtils;
import org.apache.commons.collections.CollectionUtils;
import java.util.List;
import java.util.Map;
......@@ -83,6 +85,9 @@ public class HGCGUtils {
* @return
*/
public static Map<String, HGCG002A> lockGetData(List<String> contractNos) {
if (CollectionUtils.isEmpty(contractNos)) {
return null;
}
// 锁
HGCGTools.HgCg002.lock(contractNos);
// db数据
......@@ -142,6 +147,9 @@ public class HGCGUtils {
* @return
*/
public static Map<Long, HGCG002B> lockGetData(List<Long> ids) {
if (CollectionUtils.isEmpty(ids)) {
return null;
}
// 锁
HGCGTools.HgCg002B.lock(ids);
// db数据
......
......@@ -105,6 +105,8 @@ public class HGConstant {
public static final String CG_CONTRACT_LINE_NO = "CG_CONTRACT_LINE_NO";
// 采购收货号
public static final String CG_RECEIVE_NO = "CG_RECEIVE_NO";
// 采购收货行号
public static final String CG_RECEIVE_LINE_NO = "CG_RECEIVE_LINE_NO";
// 采购入库号
public static final String CG_DEPOSIT_NO = "CG_DEPOSIT_NO";
// 点检单号
......
......@@ -78,8 +78,11 @@
proj_code = #projCode#
</isNotEmpty>
<isNotEmpty prepend=" AND " property="projName">
proj_name like '%$projName$%'
proj_name like concat('%', #projName#, '%')
</isNotEmpty>
<isNotEmpty prepend=" AND " property="projectName">
proj_name like concat('%', #projectName#, '%')
</isNotEmpty>
<isNotEmpty prepend=" AND " property="projType">
proj_type = #projType#
</isNotEmpty>
......
......@@ -30,7 +30,7 @@
ACCOUNT_CODE = #accountCode#
</isNotEmpty>
<isNotEmpty prepend=" AND " property="receiveUserName">
USER_NAME LIKE CONCAT('%', #accountCode#, '%')
USER_NAME LIKE CONCAT('%', #receiveUserName#, '%')
</isNotEmpty>
</sql>
......
......@@ -31,8 +31,11 @@
<!-- 采购 -->
<sqlMap resource="com/baosight/hggp/hg/cg/sql/HGCG001.xml"/>
<sqlMap resource="com/baosight/hggp/hg/cg/sql/HGCG001A.xml"/>
<sqlMap resource="com/baosight/hggp/hg/cg/sql/HGCG002.xml"/>
<sqlMap resource="com/baosight/hggp/hg/cg/sql/HGCG002A.xml"/>
<sqlMap resource="com/baosight/hggp/hg/cg/sql/HGCG003.xml"/>
<sqlMap resource="com/baosight/hggp/hg/cg/sql/HGCG003A.xml"/>
<!-- 库存 -->
<sqlMap resource="com/baosight/hggp/hg/kc/sql/HGKC001.xml"/>
......
......@@ -93,16 +93,6 @@ $(function () {
return dataItem["purUserName"];
},
editor: function (container, options) {
// let inInfo = new EiInfo();
// inInfo.set("inqu_status-0-companyCode", options.model["companyCode"]);
// inInfo.set("field", options.field);
// EiCommunicator.send("HGSC001", "userByCompanyComboBox", inInfo, {
// onSuccess: function (ei) {
// userByCompany = ei.getBlock("userByCompany").getMappedRows();
// },
// onFail: function (ei) {
// }
// }, {async: false});
var input = $('<input />');
input.attr("name", options.field);
input.attr("id", options.field);
......@@ -168,6 +158,7 @@ $(function () {
// change事件
grid.dataSource.bind("change", function (e) {
supCodeChange(e);
purUserIdChange(e);
var item = e.items[0];
if (e.field == "price") {
calAmount(item);
......@@ -317,6 +308,26 @@ let supCodeChange = function (e) {
}
/**
* 采购员变更
*/
let purUserIdChange = function (e) {
if (e.field != "purUserId") {
return;
}
let item = e.items[0];
let userRecordRows = __eiInfo.blocks.user_block_id.rows;
for (let k = 0; k < resultGrid.getCheckedRowsIndex() + 1; k++) {
for (let i = 0; i < userRecordRows.length; i++) {
if (userRecordRows[i][1] === item.supCode) {
let userName = userRecordRows[i][0];
resultGrid.setCellValue(item, 'purUserName', userName == null ? "" : userName);
return;
}
}
}
}
/**
* 保存
*/
let save = function () {
......
......@@ -65,7 +65,12 @@
<EF:EFOptions blockId="sup_record_block_id" valueField="valueField" textField="textField"/>
</EF:EFComboColumn>
<EF:EFColumn ename="supName" cname="供应商名称" enable="false" width="120" align="center" hidden="true"/>
<EF:EFColumn ename="purUserName" cname="采购员" width="120" align="center" required="true"/>
<EF:EFComboColumn ename="purUserId" cname="采购员" width="120" align="left" defaultValue=""
filter="contains" required="true" columnTemplate="#=valueField# - #=textField#"
itemTemplate="#=valueField# - #=textField#">
<EF:EFOptions blockId="user_block_id" valueField="valueField" textField="textField"/>
</EF:EFComboColumn>
<EF:EFColumn ename="purUserName" cname="采购员姓名" enable="false" width="120" align="center" hidden="true"/>
<EF:EFColumn ename="purQty" cname="采购数量" width="120" align="right" format="{0:N3}" enable="false"
defaultValue="0" sumType="page"/>
<EF:EFColumn ename="purWeight" cname="采购重量" width="120" align="right" format="{0:N3}" enable="false"
......
......@@ -8,8 +8,7 @@ $(function () {
pageSize: 20,
pageSizes: [20, 50, 70, 100],
},
columns: [
{
columns: [{
field: "inventCode",
template: function (item) {
let template = item.inventCode;
......@@ -50,54 +49,36 @@ $(function () {
filter: "contains"
});
}
},
{
field: "primaryId",
template: function (item) {
item['primaryId'] =$("#inqu_status-0-primaryId").val();
return $("#inqu_status-0-primaryId").val();
}
},
{
field: "purUserName",
template: function (dataItem) {
for (let i = 0; i < userByCompany.length; i++) {
let purUserName = dataItem['purUserName'];
if(purUserName){
if (userByCompany[i]['userName'] === purUserName.userName) {
return userByCompany[i]['userName'];
}
}, {
field: "purUserName",
template: function (dataItem) {
for (let i = 0; i < userByCompany.length; i++) {
let purUserName = dataItem['purUserName'];
if (purUserName) {
if (userByCompany[i]['userName'] === purUserName.userName) {
return userByCompany[i]['userName'];
}
}
return dataItem["purUserName"];
},
editor: function (container, options) {
// let inInfo = new EiInfo();
// inInfo.set("inqu_status-0-companyCode", options.model["companyCode"]);
// inInfo.set("field", options.field);
// EiCommunicator.send("HGSC001", "userByCompanyComboBox", inInfo, {
// onSuccess: function (ei) {
// userByCompany = ei.getBlock("userByCompany").getMappedRows();
// },
// onFail: function (ei) {
// }
// }, {async: false});
var input = $('<input />');
input.attr("name", options.field);
input.attr("id", options.field);
input.appendTo(container);
input.kendoDropDownList({
dataSource: userByCompany,
minLength: 0,
dataTextField: "userName",
dataValueField: "userName",
optionLabelTemplate: "[#:loginName#]#:userName#-#:depName#",
valueTemplate: "[#:loginName#]#:userName#-#:depName#",
template: "[#:loginName#]#:userName#-#:depName#",
filter: "contains"
});
}
return dataItem["purUserName"];
},
editor: function (container, options) {
var input = $('<input />');
input.attr("name", options.field);
input.attr("id", options.field);
input.appendTo(container);
input.kendoDropDownList({
dataSource: userByCompany,
minLength: 0,
dataTextField: "userName",
dataValueField: "userName",
optionLabelTemplate: "[#:loginName#]#:userName#-#:depName#",
valueTemplate: "[#:loginName#]#:userName#-#:depName#",
template: "[#:loginName#]#:userName#-#:depName#",
filter: "contains"
});
}
}
],
beforeEdit: function (e) {
var status = $("#inqu_status-0-status").val();
......
......@@ -69,8 +69,9 @@
<EF:EFColumn ename="companyName" cname="公司名称" enable="false" width="130" align="center" hidden="true"/>
<EF:EFColumn ename="contractDate" cname="合同日期" enable="false" width="100" align="center" editType="date"
dateFormat="yyyy-MM-dd" parseFormats="['yyyyMMdd']" hidden="true"/>
<EF:EFColumn ename="contractNo" cname="合同号" enable="false" width="120" align="center" hidden="true"/>
<EF:EFColumn ename="planNo" cname="计划单号" enable="false" width="120" align="center" hidden="true"/>
<EF:EFColumn ename="contractLineNo" cname="合同行号" enable="false" width="120" align="center"/>
<EF:EFColumn ename="contractNo" cname="合同号" enable="false" width="120" align="center"/>
<EF:EFColumn ename="planNo" cname="计划单号" enable="false" width="120" align="center"/>
<EF:EFColumn ename="supCode" cname="供应商编号" enable="false" width="120" align="center" hidden="true"/>
<EF:EFColumn ename="supName" cname="供应商名称" enable="false" width="100" align="center" hidden="true"/>
<EF:EFColumn ename="purUserName" cname="采购员" width="100" align="center" required="true" hidden="true"/>
......
......@@ -51,16 +51,6 @@ $(function () {
return dataItem["purUserName"];
},
editor: function (container, options) {
// let inInfo = new EiInfo();
// inInfo.set("inqu_status-0-companyCode", options.model["companyCode"]);
// inInfo.set("field", options.field);
// EiCommunicator.send("HGSC001", "userByCompanyComboBox", inInfo, {
// onSuccess: function (ei) {
// userByCompany = ei.getBlock("userByCompany").getMappedRows();
// },
// onFail: function (ei) {
// }
// }, {async: false});
var input = $('<input />');
input.attr("name", options.field);
input.attr("id", options.field);
......@@ -170,6 +160,7 @@ $(function () {
// change事件
grid.dataSource.bind("change", function (e) {
supCodeChange(e);
supCodeChange(e);
if (e.field == "companyCode") {
for (let i = 0; i < companyCodeBox.length; i++) {
if (companyCodeBox[i]['companyCode'] === e.items[0]['companyCode']) {
......@@ -355,19 +346,40 @@ let supCodeChange = function (e) {
}
}
/**
* 采购员变更
*/
let purUserIdChange = function (e) {
if (e.field != "purUserId") {
return;
}
let item = e.items[0];
let userRecordRows = __eiInfo.blocks.user_block_id.rows;
for (let k = 0; k < resultGrid.getCheckedRowsIndex() + 1; k++) {
for (let i = 0; i < userRecordRows.length; i++) {
if (userRecordRows[i][1] === item.supCode) {
let userName = userRecordRows[i][0];
resultGrid.setCellValue(item, 'purUserName', userName == null ? "" : userName);
return;
}
}
}
}
/**
* 显示详情
*/
function showDetail(id,status,source) {
function showDetail(id, status, source) {
JSColorbox.open({
href: "HGCG003B?methodName=initLoad&inqu_status-0-primaryId=" + id+"&status="+status+"&source="+source,
href: "HGCG003B?methodName=initLoad&inqu_status-0-primaryId=" + id + "&status=" + status + "&source="
+ source,
title: "<div style='text-align: center;'>详情</div>",
width: "80%",
height: "90%",
callbackName: windowCallback
});
}
function windowCallback() {
query();
JSColorbox.close();
......
......@@ -44,17 +44,17 @@
<EF:EFCodeOption codeName="hggp.hpcg.receiveSource"/>
</EF:EFComboColumn>
<EF:EFComboColumn ename="companyCode" cname="公司编码"
columnTemplate="#=companyName#" itemTemplate="#=companyName#"
textField="companyName" valueField="companyCode"
maxLength="16" readonly="false" width="100" required="true"
align="center" filter="contains" sort="true">
columnTemplate="#=companyName#" itemTemplate="#=companyName#"
textField="companyName" valueField="companyCode"
maxLength="16" readonly="false" width="100" required="true"
align="center" filter="contains" sort="true">
<EF:EFOptions blockId="roleCompany" textField="companyName" valueField="companyCode"/>
</EF:EFComboColumn>
<EF:EFColumn ename="companyName" cname="公司名称" width="120" enable="false" readonly="true" align="center"/>
<EF:EFColumn ename="projCode" cname="项目编码" enable="true" width="120" align="center" required="true"/>
<EF:EFColumn ename="companyName" cname="公司名称" enable="false" width="200" align="left"/>
<EF:EFColumn ename="projCode" cname="项目编码" width="140" align="center" required="true"/>
<EF:EFColumn ename="projName" cname="项目名称" width="120" align="center" enable="false"/>
<EF:EFColumn ename="receiveDate" cname="收货日期" width="100" align="center" editType="date"
dateFormat="yyyy-MM-dd" parseFormats="['yyyyMMdd']" required="true"/>
<EF:EFColumn ename="receiveDate" cname="收货日期" width="100" align="center" editType="date"
dateFormat="yyyy-MM-dd" parseFormats="['yyyyMMdd']" required="true"/>
<EF:EFColumn ename="receiveNo" cname="收货单号" enable="false" width="120" align="center"/>
<EF:EFComboColumn ename="status" cname="状态" enable="false" width="80" align="center">
<EF:EFCodeOption codeName="hggp.hgcg.receiveStatus"/>
......@@ -64,7 +64,12 @@
<EF:EFOptions blockId="sup_record_block_id" valueField="valueField" textField="textField"/>
</EF:EFComboColumn>
<EF:EFColumn ename="supName" cname="供应商名称" enable="false" width="120" align="center" hidden="true"/>
<EF:EFColumn ename="purUserName" cname="采购员" width="120" align="center" required="true"/>
<EF:EFComboColumn ename="purUserId" cname="采购员" width="120" align="left" defaultValue=""
filter="contains" required="true" columnTemplate="#=valueField# - #=textField#"
itemTemplate="#=valueField# - #=textField#">
<EF:EFOptions blockId="user_block_id" valueField="valueField" textField="textField"/>
</EF:EFComboColumn>
<EF:EFColumn ename="purUserName" cname="采购员姓名" enable="false" width="120" align="center" hidden="true"/>
<EF:EFColumn ename="receiveQty" cname="收货数量" enable="false" width="120" align="right" format="{0:N3}"
sumType="page"/>
<EF:EFColumn ename="deliverQty" cname="退货数量" enable="false" width="120" align="right" format="{0:N3}"
......
......@@ -58,7 +58,7 @@ $(function () {
}],
beforeEdit: function (e) {
var status = $("#status").val();
if (status != '0') {
if (status != '0' && status != '2') {
e.preventDefault();
}
var source = $("#source").val();
......@@ -80,13 +80,16 @@ $(function () {
// 此grid对象
grid.dataSource.bind("change", function (e) {
var item = e.items[0];
//数量发生变化进行计算
// 数量发生变化进行计算
if(e.field === "receiveQty"){
calAmount(item)
}
if(e.field === "price"){
calAmount(item)
}
if(e.field === "taxRate"){
calAmount(item)
}
if(e.field === "receiveWeight"){
calAmount(item)
}
......@@ -96,18 +99,38 @@ $(function () {
if (e.field === "inventCode") {
for (let i = 0; i < inventRecordBoxBlockId.length; i++) {
if (inventRecordBoxBlockId[i]['valueField'] === e.items[0].inventCode) {
resultGrid.setCellValue(e.items[0], 'inventName', inventRecordBoxBlockId[i]['textField'])
resultGrid.setCellValue(e.items[0], 'inventTypeDetail', inventRecordBoxBlockId[i]['param1Field'])
resultGrid.setCellValue(e.items[0], 'inventType', inventRecordBoxBlockId[i]['param3Field'])
resultGrid.setCellValue(e.items[0], 'spec', inventRecordBoxBlockId[i]['param4Field'])
resultGrid.setCellValue(e.items[0], 'material', inventRecordBoxBlockId[i]['param5Field'])
resultGrid.setCellValue(e.items[0], 'unit', inventRecordBoxBlockId[i]['param6Field'])
resultGrid.setCellValue(e.items[0], 'length', inventRecordBoxBlockId[i]['param7Field'])
resultGrid.setCellValue(e.items[0], 'width', inventRecordBoxBlockId[i]['param8Field'])
resultGrid.setCellValue(e.items[0], 'thick', inventRecordBoxBlockId[i]['param9Field'])
//系数
resultGrid.setCellValue(e.items[0], 'inventName',
inventRecordBoxBlockId[i]['textField']
)
resultGrid.setCellValue(e.items[0], 'inventTypeDetail',
inventRecordBoxBlockId[i]['param1Field']
)
resultGrid.setCellValue(e.items[0], 'inventType',
inventRecordBoxBlockId[i]['param3Field']
)
resultGrid.setCellValue(e.items[0], 'spec',
inventRecordBoxBlockId[i]['param4Field']
)
resultGrid.setCellValue(e.items[0], 'material',
inventRecordBoxBlockId[i]['param5Field']
)
resultGrid.setCellValue(e.items[0], 'unit',
inventRecordBoxBlockId[i]['param6Field']
)
resultGrid.setCellValue(e.items[0], 'length',
inventRecordBoxBlockId[i]['param7Field']
)
resultGrid.setCellValue(e.items[0], 'width',
inventRecordBoxBlockId[i]['param8Field']
)
resultGrid.setCellValue(e.items[0], 'thick',
inventRecordBoxBlockId[i]['param9Field']
)
// 系数
let coefficient = inventRecordBoxBlockId[i]['param10Field']
calUnitWeight(e.items[0],e.items[0].length,e.items[0].width,e.items[0].thick,coefficient);
calUnitWeight(e.items[0], e.items[0].length, e.items[0].width,
e.items[0].thick, coefficient
);
break
}
}
......@@ -143,15 +166,15 @@ $(window).load(function () {
initInventCode();
var status = $("#status").val();
if(status != '0'){
if (status != '0' && status != '2') {
$(".k-grid-add").hide();
$(".k-grid-save-changes").hide();
$(".k-grid-cancel-changes").hide();
$(".k-grid-delete").hide();
}else {
} else {
//合同选择的存货不让新增、删除
var source = $("#source").val();
if(source === '0'){
if (source === '0') {
$(".k-grid-add").hide();
$(".k-grid-save-changes").hide();
$(".k-grid-cancel-changes").hide();
......@@ -170,23 +193,34 @@ $(window).load(function () {
* @param coefficient
*/
let calAmount = function (item) {
let totalAmount;
let price = item.price;
//计算方式为重量乘单价
if (item.calculationMethod == 1) {
let receiveWeight = item.receiveWeight;
if (!isBlank(receiveWeight) && !isBlank(price)) {
// 重量*单价金额
let totalAmount = parseFloat(receiveWeight) * parseFloat(price);
resultGrid.setCellValue(item, 'amount', totalAmount)
totalAmount = parseFloat(receiveWeight) * parseFloat(price);
}
} else {
let receiveQty = item.receiveQty;
if (!isBlank(receiveQty) && !isBlank(price)) {
// 数量*单价金额
let totalAmount = parseFloat(receiveQty) * parseFloat(price);
resultGrid.setCellValue(item, 'amount', totalAmount)
totalAmount = parseFloat(receiveQty) * parseFloat(price);
}
}
if (isBlank(totalAmount)) {
return;
}
// 不含税金额
let amount = isBlank(item.taxRate) ? totalAmount : totalAmount / (1 + item.taxRate / 100);
// 税额
let taxAmount = totalAmount - amount;
// 含税金额
let taxIncludeAmount = totalAmount;
resultGrid.setCellValue(item, 'amount', amount)
resultGrid.setCellValue(item, 'taxAmount', taxAmount)
resultGrid.setCellValue(item, 'taxIncludeAmount', taxIncludeAmount)
}
/**
......@@ -273,13 +307,12 @@ let remove = function () {
});
}
let calUnitWeight = function (item,length,width,thick,coefficient) {
let l = Number(length)||1;
let w = Number(width)||1;
let t = Number(thick)||1;
let amount = (l * w * t )>1? l * w * t * Number(coefficient)/100000:0;
let calUnitWeight = function (item, length, width, thick, coefficient) {
let l = Number(length) || 1;
let w = Number(width) || 1;
let t = Number(thick) || 1;
let unitWeight = (l * w * t) > 1 ? l * w * t * Number(coefficient) / 100000 : 0;
//item['amount'] = amount.toString();
resultGrid.setCellValue(item, 'receiveUnitWeight', amount);
resultGrid.setCellValue(item, 'receiveWeight', item.receiveQty*amount);
resultGrid.setCellValue(item, 'receiveUnitWeight', unitWeight);
resultGrid.setCellValue(item, 'receiveWeight', item.receiveQty * unitWeight);
}
......@@ -25,7 +25,10 @@
<EF:EFRegion id="result" title="明细信息">
<EF:EFGrid blockId="result" autoDraw="override" isFloat="true" checkMode="row">
<EF:EFColumn ename="id" cname="内码" hidden="true"/>
<EF:EFColumn ename="inventCode" required="true" cname="存货编号"/>
<EF:EFComboColumn ename="status" cname="状态" enable="false" width="80" align="center">
<EF:EFCodeOption codeName="hggp.hgcg.receiveStatus"/>
</EF:EFComboColumn>
<EF:EFColumn ename="inventCode" required="true" cname="存货编号" width="110" align="center"/>
<EF:EFColumn ename="inventName" cname="存货名称" width="120" align="center" enable="false" readonly="true"
required="true"/>
<EF:EFComboColumn ename="inventType" cname="存货类型" width="120" align="center" required="false"
......@@ -65,10 +68,10 @@
sumType="page"/>
<EF:EFColumn ename="taxIncludeAmount" cname="含税金额" enable="false" width="120" align="right" format="{0:C3}"
sumType="page"/>
<EF:EFComboColumn ename="status" cname="状态" enable="false" width="80" align="center">
<EF:EFCodeOption codeName="hggp.hgcg.receiveStatus"/>
</EF:EFComboColumn>
<EF:EFColumn ename="contractNo" cname="合同号" enable="false" width="120" align="center"/>
<EF:EFColumn ename="contractLineNo" cname="合同行号" enable="false" width="120" align="center"/>
<EF:EFColumn ename="receiveNo" cname="收货单号" enable="false" width="120" align="center"/>
<EF:EFColumn ename="receiveLineNo" cname="收货单行号" enable="false" width="120" align="center"/>
<EF:EFColumn ename="createdName" cname="创建人" enable="false" width="100" align="center"/>
<EF:EFColumn ename="createdTime" cname="创建时间" enable="false" width="140" align="center"
editType="datetime" parseFormats="['yyyyMMddHHmmss']"/>
......@@ -76,7 +79,6 @@
<EF:EFColumn ename="companyName" cname="公司名称" enable="false" width="130" align="center" hidden="true"/>
<EF:EFColumn ename="receiveDate" cname="收货日期" enable="false" width="100" align="center" editType="date"
dateFormat="yyyy-MM-dd" parseFormats="['yyyyMMdd']" hidden="true"/>
<EF:EFColumn ename="receiveNo" cname="收货单号" enable="false" width="120" align="center" hidden="true"/>
<EF:EFColumn ename="primaryId" cname="主表id" enable="false" width="100" align="center" hidden="true"/>
</EF:EFGrid>
</EF:EFRegion>
......
......@@ -108,6 +108,8 @@ function add(docId, leafType, docType) {
message("文件类型或ID不能为空");
return;
}
// 隐藏预览区域
hideHtml();
// 第一级目录
if (leafType === "C") {
otherDownload(true, null);
......@@ -137,8 +139,6 @@ function add(docId, leafType, docType) {
* @param docType
*/
function preview(docId, docType) {
// 隐藏预览区域
hideHtml();
// 隐藏文本描述
$("#descDiv").css('display', 'none');
if ("docx" == docType) {
......
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