Commit 0ddb76ea by 宋祥

1.采购收货增加含税金额,税率等

2.生成计划科重复排产
parent 51b8d56f
package com.baosight.hggp.hg.cg.constant;
/**
* @author:songx
* @date:2024/9/4,9:24
*/
public class HgCgSqlConst {
/**
* @author:songx
* @date:2024/8/30,16:25
*/
public class HgCg003A {
// 模块名称:HGCW003A
private static final String MODULE_NAME = "HGCG003A.";
//
public static final String QUERY_BY_QUALITY_TESTING = MODULE_NAME + "queryByQualityTesting";
// 修改数量
public static final String UPDATE_QTY = MODULE_NAME + "updateQty";
}
}
package com.baosight.hggp.hg.cg.domain;
import com.baosight.iplat4j.core.data.DaoEPBase;
import com.baosight.iplat4j.core.ei.EiColumn;
import com.baosight.iplat4j.core.util.NumberUtils;
import com.baosight.iplat4j.core.util.StringUtils;
import java.math.BigDecimal;
import java.util.HashMap;
import java.util.Map;
/**
* Project: <br>
* Title:Hgcg003a.java <br>
* Description: <br>
*
* Copyrigth:Baosight Software LTD.co Copyright (c) 2019. <br>
*
* @version 1.0
* @history 2024-09-04 9:15:38 create
*/
public class HGCG003B1 extends HGCG003B {
private static final long serialVersionUID = 1L;
public static final String FIELD_SUP_CODE = "supCode"; /* 供应商编码*/
public static final String FIELD_SUP_NAME = "supName"; /* 供应商名称*/
public static final String FIELD_PUR_USER_ID = "purUserId"; /* 采购员*/
public static final String FIELD_PUR_USER_NAME = "purUserName"; /* 采购员名称*/
public static final String FIELD_SOURCE = "source"; /* 数据来源 根据采购数据来源小代码 目前0默认采购合同,1手动录入*/
private String supCode = " "; /* 供应商编码*/
private String supName = " "; /* 供应商名称*/
private String purUserId = " "; /* 采购员*/
private String purUserName = " "; /* 采购员名称*/
private Integer source; /* 数据来源 根据采购数据来源小代码 目前0默认采购合同,1手动录入*/
/**
* initialize the metadata.
*/
public void initMetaData() {
EiColumn eiColumn;
eiColumn = new EiColumn(FIELD_SUP_CODE);
eiColumn.setDescName("供应商编码");
eiMetadata.addMeta(eiColumn);
eiColumn = new EiColumn(FIELD_SUP_NAME);
eiColumn.setDescName("供应商名称");
eiMetadata.addMeta(eiColumn);
eiColumn = new EiColumn(FIELD_PUR_USER_ID);
eiColumn.setDescName("采购员");
eiMetadata.addMeta(eiColumn);
eiColumn = new EiColumn(FIELD_PUR_USER_NAME);
eiColumn.setDescName("采购员名称");
eiMetadata.addMeta(eiColumn);
eiColumn = new EiColumn(FIELD_SOURCE);
eiColumn.setDescName("数据来源");
eiMetadata.addMeta(eiColumn);
}
/**
* the constructor.
*/
public HGCG003B1() {
super.initMetaData();
initMetaData();
}
public String getSupCode() {
return supCode;
}
public void setSupCode(String supCode) {
this.supCode = supCode;
}
public String getSupName() {
return supName;
}
public void setSupName(String supName) {
this.supName = supName;
}
public String getPurUserId() {
return purUserId;
}
public void setPurUserId(String purUserId) {
this.purUserId = purUserId;
}
public String getPurUserName() {
return purUserName;
}
public void setPurUserName(String purUserName) {
this.purUserName = purUserName;
}
public Integer getSource() {
return source;
}
public void setSource(Integer source) {
this.source = source;
}
/**
* get the value from Map.
*
* @param map - source data map
*/
@Override
public void fromMap(Map map) {
super.fromMap(map);
setSupCode(StringUtils.defaultIfEmpty(StringUtils.toString(map.get(FIELD_SUP_CODE)), supCode));
setSupName(StringUtils.defaultIfEmpty(StringUtils.toString(map.get(FIELD_SUP_NAME)), supName));
setPurUserId(StringUtils.defaultIfEmpty(StringUtils.toString(map.get(FIELD_PUR_USER_ID)), purUserId));
setPurUserName(StringUtils.defaultIfEmpty(StringUtils.toString(map.get(FIELD_PUR_USER_NAME)), purUserName));
setSource(NumberUtils.toInteger(StringUtils.toString(map.get(FIELD_SOURCE)), source));
}
/**
* set the value to Map.
*/
@Override
public Map toMap() {
Map map = super.toMap();
map.put(FIELD_SUP_CODE, StringUtils.toString(supCode, eiMetadata.getMeta(FIELD_SUP_CODE)));
map.put(FIELD_SUP_NAME, StringUtils.toString(supName, eiMetadata.getMeta(FIELD_SUP_NAME)));
map.put(FIELD_PUR_USER_ID, StringUtils.toString(purUserId, eiMetadata.getMeta(FIELD_PUR_USER_ID)));
map.put(FIELD_PUR_USER_NAME, StringUtils.toString(purUserName, eiMetadata.getMeta(FIELD_PUR_USER_NAME)));
map.put(FIELD_SOURCE, StringUtils.toString(source, eiMetadata.getMeta(FIELD_SOURCE)));
return map;
}
}
...@@ -153,18 +153,24 @@ public class ServiceHGCG003A extends ServiceBase { ...@@ -153,18 +153,24 @@ public class ServiceHGCG003A extends ServiceBase {
fCg002B.setPurUnitWeight(bcReceiveWeight.divide(bcReceiveQty, 3, RoundingMode.HALF_UP)); fCg002B.setPurUnitWeight(bcReceiveWeight.divide(bcReceiveQty, 3, RoundingMode.HALF_UP));
} }
// 含税总金额 // 含税总金额
BigDecimal amount; BigDecimal taxIncludeAmount;
if (HgCgConst.CalculationMethod.S1.equals(fCg002B.getCalculationMethod())) { if (HgCgConst.CalculationMethod.S1.equals(fCg002B.getCalculationMethod())) {
amount = bcReceiveWeight.multiply(dbCg002b.getPrice()); taxIncludeAmount = bcReceiveWeight.multiply(dbCg002b.getPrice());
} else { } else {
amount = bcReceiveQty.multiply(dbCg002b.getPrice()); taxIncludeAmount = bcReceiveQty.multiply(dbCg002b.getPrice());
} }
// 如果税率不为空,总金额减去税 // 如果税率不为空,计算不含税金
if (dbCg002b.getTaxRate() != null) { if (dbCg002b.getTaxRate() != null) {
BigDecimal taxRate = dbCg002b.getTaxRate().multiply(new BigDecimal("0.01")).add(BigDecimal.ONE); BigDecimal taxRate = dbCg002b.getTaxRate().multiply(new BigDecimal("0.01")).add(BigDecimal.ONE);
amount = amount.divide(taxRate, 2, RoundingMode.HALF_UP); BigDecimal amount = taxIncludeAmount.divide(taxRate, 2, RoundingMode.HALF_UP);
BigDecimal taxAmount = taxIncludeAmount.subtract(amount);
fCg002B.setAmount(amount);
fCg002B.setTaxAmount(taxAmount);
} else {
fCg002B.setAmount(taxIncludeAmount);
fCg002B.setTaxAmount(BigDecimal.ZERO);
} }
fCg002B.setAmount(amount); fCg002B.setTaxIncludeAmount(taxIncludeAmount);
} }
} }
...@@ -191,10 +197,13 @@ public class ServiceHGCG003A extends ServiceBase { ...@@ -191,10 +197,13 @@ public class ServiceHGCG003A extends ServiceBase {
.reduce(BigDecimal.ZERO, BigDecimal::add); .reduce(BigDecimal.ZERO, BigDecimal::add);
newCg003.setReceiveWeight(receiveWeight); newCg003.setReceiveWeight(receiveWeight);
newCg003.setReceiveUnitWeight(receiveWeight.divide(bcReceiveQtySum, 3, RoundingMode.HALF_UP)); newCg003.setReceiveUnitWeight(receiveWeight.divide(bcReceiveQtySum, 3, RoundingMode.HALF_UP));
// 计算收货总金额 // 计算不含税总金额
BigDecimal receiveAmount = fCg002Bs.stream().map(HGCG002B::getAmount) newCg003.setAmount(fCg002Bs.stream().map(HGCG002B::getAmount).reduce(BigDecimal.ZERO, BigDecimal::add));
.reduce(BigDecimal.ZERO, BigDecimal::add); // 计算含税总金额
newCg003.setAmount(receiveAmount); newCg003.setTaxIncludeAmount(fCg002Bs.stream().map(HGCG002B::getTaxIncludeAmount)
.reduce(BigDecimal.ZERO, BigDecimal::add));
// 计算总税额
newCg003.setTaxAmount(fCg002Bs.stream().map(HGCG002B::getTaxAmount).reduce(BigDecimal.ZERO, BigDecimal::add));
newCg003.setStatus(HGConstant.CgReceiveStatus.S_0); newCg003.setStatus(HGConstant.CgReceiveStatus.S_0);
newCg003.setDeleteFlag(DeleteFlagEnum.UN_REMOVE.getCode()); newCg003.setDeleteFlag(DeleteFlagEnum.UN_REMOVE.getCode());
newCg003.setSource(HGConstant.CgSource.DEFAULT); newCg003.setSource(HGConstant.CgSource.DEFAULT);
......
...@@ -94,7 +94,7 @@ public class ServiceHGCG003B extends ServiceBase { ...@@ -94,7 +94,7 @@ public class ServiceHGCG003B extends ServiceBase {
try { try {
List<HGCG003B> fCg003Bs = MapUtils.toDaoEPBases(inInfo, HGCG003B.class); List<HGCG003B> fCg003Bs = MapUtils.toDaoEPBases(inInfo, HGCG003B.class);
HGCG003 cg003 = HGCGTools.HgCg003.get(fCg003Bs.get(0).getPrimaryId()); HGCG003 cg003 = HGCGTools.HgCg003.get(fCg003Bs.get(0).getPrimaryId());
if (cg003.getSource().intValue() == HGConstant.CgSource.DEFAULT) { if (cg003.getSource() == HGConstant.CgSource.DEFAULT) {
// 采购收货DB数据 // 采购收货DB数据
Map<Long, HGCG003B> dbCg003BMap = HGCGUtils.HgCg003B.lockGetDataEp(fCg003Bs); Map<Long, HGCG003B> dbCg003BMap = HGCGUtils.HgCg003B.lockGetDataEp(fCg003Bs);
// 采购合同DB数据 // 采购合同DB数据
......
...@@ -38,14 +38,17 @@ ...@@ -38,14 +38,17 @@
DEPOSIT_QTY as "depositQty", <!-- 入库数量 --> DEPOSIT_QTY as "depositQty", <!-- 入库数量 -->
RECEIVE_UNIT_WEIGHT as "receiveUnitWeight", <!-- 收货单重 --> RECEIVE_UNIT_WEIGHT as "receiveUnitWeight", <!-- 收货单重 -->
RECEIVE_WEIGHT as "receiveWeight", <!-- 收货重量 --> RECEIVE_WEIGHT as "receiveWeight", <!-- 收货重量 -->
PRICE as "price", <!-- 单价 --> STATUS as "status", <!-- 状态:0-已收货,1-已入库,2-部分入库,3-退货 -->
AMOUNT as "amount", <!-- 金额 --> PRICE as "price", <!-- 单价 -->
STATUS as "status", <!-- 状态:0-已收货,1-已入库,2-部分入库,3-退货 --> AMOUNT as "amount", <!-- 金额(不含税金额) -->
SOURCE as "source", <!-- 数据来源 根据采购数据来源小代码 目前默认0采购合同,1手工录入 --> TAX_INCLUDE_AMOUNT as "taxIncludeAmount", <!-- 含税金额 -->
INVENT_TYPE_DETAIL as "inventTypeDetail", <!-- 存货类型明细 --> TAX_AMOUNT as "taxAmount", <!-- 税额 -->
PROJ_CODE as "projCode", <!-- 项目编码 --> TAX_RATE as "taxRate", <!-- 税率 -->
PROJ_NAME as "projName", <!-- 项目名称 --> INVENT_TYPE_DETAIL as "inventTypeDetail", <!-- 存货类型大类 -->
IS_INVOICING as "isInvoicing" IS_INVOICING as "isInvoicing", <!-- 是否开票 -->
SOURCE as "source", <!-- 数据来源 根据采购数据来源小代码 目前0默认采购合同,1手动录入 -->
PROJ_CODE as "projCode", <!-- 项目编码 -->
PROJ_NAME as "projName" <!-- 项目名称 -->
</sql> </sql>
<sql id="condition"> <sql id="condition">
...@@ -183,7 +186,6 @@ ...@@ -183,7 +186,6 @@
<insert id="insert"> <insert id="insert">
INSERT INTO ${hggpSchema}.HGCG003 ( INSERT INTO ${hggpSchema}.HGCG003 (
ID,
ACCOUNT_CODE, <!-- 企业编码 --> ACCOUNT_CODE, <!-- 企业编码 -->
DEP_CODE, <!-- 部门编码 --> DEP_CODE, <!-- 部门编码 -->
CREATED_BY, <!-- 记录创建者 --> CREATED_BY, <!-- 记录创建者 -->
...@@ -211,23 +213,30 @@ ...@@ -211,23 +213,30 @@
WIDTH, <!-- 宽度 --> WIDTH, <!-- 宽度 -->
THICK, <!-- 厚度 --> THICK, <!-- 厚度 -->
RECEIVE_QTY, <!-- 收货数量 --> RECEIVE_QTY, <!-- 收货数量 -->
DELIVER_QTY, <!-- 退货数量 -->
DEPOSIT_QTY, <!-- 入库数量 -->
RECEIVE_UNIT_WEIGHT, <!-- 收货单重 --> RECEIVE_UNIT_WEIGHT, <!-- 收货单重 -->
RECEIVE_WEIGHT, <!-- 收货重量 --> RECEIVE_WEIGHT, <!-- 收货重量 -->
PRICE, <!-- 单价 -->
AMOUNT, <!-- 金额 -->
STATUS, <!-- 状态:0-已收货,1-已入库,2-部分入库,3-退货 --> STATUS, <!-- 状态:0-已收货,1-已入库,2-部分入库,3-退货 -->
INVENT_TYPE_DETAIL, PRICE, <!-- 单价 -->
IS_INVOICING, AMOUNT, <!-- 金额(不含税金额) -->
TAX_INCLUDE_AMOUNT, <!-- 含税金额 -->
TAX_AMOUNT, <!-- 税额 -->
TAX_RATE, <!-- 税率 -->
INVENT_TYPE_DETAIL, <!-- 存货类型大类 -->
IS_INVOICING, <!-- 是否开票 -->
SOURCE, <!-- 数据来源 根据采购数据来源小代码 目前0默认采购合同,1手动录入 -->
PROJ_CODE, <!-- 项目编码 --> PROJ_CODE, <!-- 项目编码 -->
PROJ_NAME, <!-- 项目名称 --> PROJ_NAME <!-- 项目名称 -->
SOURCE <!-- 数据来源 根据采购数据来源小代码 目前默认0采购合同,1手工录入 -->
) VALUES ( ) VALUES (
#id#,#accountCode#, #depCode#, #createdBy#, #createdName#, #createdTime#, #accountCode#, #depCode#, #createdBy#, #createdName#, #createdTime#,
#deleteFlag#, #companyCode#, #companyName#, #receiveDate#, #receiveNo#, #deleteFlag#, #companyCode#, #companyName#, #receiveDate#, #receiveNo#,
#planNo#, #contractNo#, #supCode#, #supName#, #purUserId#, #purUserName#, #planNo#, #contractNo#, #supCode#, #supName#, #purUserId#, #purUserName#,
#inventType#, #inventCode#, #inventName#, #specId#, #spec#, #material#, #inventType#, #inventCode#, #inventName#, #specId#, #spec#, #material#,
#unit#, #length#, #width#, #thick#, #receiveQty#, #receiveUnitWeight#, #unit#, #length#, #width#, #thick#, #receiveQty#, #deliverQty#, #depositQty#,
#receiveWeight#,#price#, #amount#, #status#,#inventTypeDetail#,#isInvoicing#,#projCode#,#projName#, #source# #receiveUnitWeight#, #receiveWeight#, #status#, #price#, #amount#,
#taxIncludeAmount#, #taxAmount#, #taxRate#, #inventTypeDetail#, #isInvoicing#,
#source#, #projCode#, #projName#
) )
<selectKey resultClass="long" keyProperty="id"> <selectKey resultClass="long" keyProperty="id">
SELECT MAX(ID) AS "id" FROM ${hggpSchema}.HGCG003 SELECT MAX(ID) AS "id" FROM ${hggpSchema}.HGCG003
...@@ -270,6 +279,9 @@ ...@@ -270,6 +279,9 @@
RECEIVE_QTY = #receiveQty#, <!-- 收货数量 --> RECEIVE_QTY = #receiveQty#, <!-- 收货数量 -->
RECEIVE_WEIGHT = #receiveWeight#, <!-- 收货重量 --> RECEIVE_WEIGHT = #receiveWeight#, <!-- 收货重量 -->
AMOUNT = #amount#, <!-- 金额 --> AMOUNT = #amount#, <!-- 金额 -->
TAX_INCLUDE_AMOUNT = #taxIncludeAmount#, <!-- 含税金额 -->
TAX_AMOUNT = #taxAmount#, <!-- 税额 -->
TAX_RATE = #taxRate#, <!-- 税率 -->
RECEIVE_DATE = REPLACE(#receiveDate#, '-', ''), <!-- 收货日期 --> RECEIVE_DATE = REPLACE(#receiveDate#, '-', ''), <!-- 收货日期 -->
PROJ_CODE = #projCode#, <!-- 项目编号 --> PROJ_CODE = #projCode#, <!-- 项目编号 -->
PROJ_NAME = #projName#, <!-- 项目名称 --> PROJ_NAME = #projName#, <!-- 项目名称 -->
......
...@@ -137,67 +137,66 @@ public class ServiceHGKC003 extends ServiceBase { ...@@ -137,67 +137,66 @@ public class ServiceHGKC003 extends ServiceBase {
String.format("入库单【%s】已删除,请勿重复操作", fKc003.getDepositNo())); String.format("入库单【%s】已删除,请勿重复操作", fKc003.getDepositNo()));
AssertUtils.isTrue(fKc003.getSubmitStatus().compareTo(HGConstant.ProductStatus.WTJ) == 0,"入库单"+fKc003.getDepositNo()+"未提交,请勿退回"); AssertUtils.isTrue(fKc003.getSubmitStatus().compareTo(HGConstant.ProductStatus.WTJ) == 0,"入库单"+fKc003.getDepositNo()+"未提交,请勿退回");
} }
/** /**
* 修改提交状态 * 修改提交状态
*
* @param inInfo * @param inInfo
* @return * @return
*/ */
public EiInfo updateSubmitStatus(EiInfo inInfo){ public EiInfo updateSubmitStatus(EiInfo inInfo) {
int i = 0;
try { try {
HGKC003 hgkc003 = new HGKC003(); List<HGKC003> fKc003s = MapUtils.toDaoEPBases(inInfo, HGKC003.class);
EiBlock eiBlock = inInfo.getBlock(EiConstant.resultBlock); for (HGKC003 fKc003 : fKc003s) {
for (i = 0; i < eiBlock.getRowCount(); i++) { HGKC003 dbKc003 = HGKCTools.HgKc003.getId(fKc003.getId());
Map<?, ?> map = eiBlock.getRow(i); // 查看是否能获取到账期,获取不到就提示
hgkc003.fromMap(map); HGCWTools.HgCw001.getAccountPeriod(dbKc003.getCompanyCode(), dbKc003.getDepositDate());
hgkc003 = HGKCTools.HgKc003.getId(hgkc003.getId()); dbKc003.setSubmitStatus(HGConstant.ProductStatus.YTJ);
//查看是否能获取到账期,获取不到就提示
HGCWTools.HgCw001.getAccountPeriod(hgkc003.getCompanyCode(),hgkc003.getDepositDate());
hgkc003.setSubmitStatus(HGConstant.ProductStatus.YTJ);
// 校验数据 // 校验数据
this.checkSubmitData(hgkc003); this.checkSubmitData(dbKc003);
DaoUtils.update(HGKC003.UPDATE_SUBMIT_STATUS, dbKc003);
DaoUtils.update(HGKC003.UPDATE_SUBMIT_STATUS, hgkc003); // 修改计划生产任务完工数量
//修改计划生产任务完工数量 HGSCTools.complete(dbKc003.getQualityId(), dbKc003.getInvQty().intValue(), dbKc003.getRectificationId(),
HGSCTools.complete(hgkc003.getQualityId(),hgkc003.getInvQty().intValue(),hgkc003.getRectificationId(),HGConstant.StorageType.RK); HGConstant.StorageType.RK);
// 修改库存 // 修改库存
HGKCUtils.HgKc010.updateInv(hgkc003.getCompanyCode(), hgkc003.getWhCode(), hgkc003.getPrdtCode(), HGKCUtils.HgKc010.updateInv(dbKc003.getCompanyCode(), dbKc003.getWhCode(), dbKc003.getPrdtCode(),
hgkc003.getInvQty(), hgkc003.getInvWeight()); dbKc003.getInvQty(), dbKc003.getInvWeight());
} }
inInfo.setStatus(EiConstant.STATUS_SUCCESS); inInfo.setStatus(EiConstant.STATUS_SUCCESS);
inInfo.setMsgByKey("ep.1000", new String[]{String.valueOf(i), I18nMessages.getText("label.update", "提交")}); inInfo.setMsg("提交成功!");
} catch (PlatException e) { } catch (PlatException e) {
e.printStackTrace(); LogUtils.setMsg(inInfo, e, "提交失败");
inInfo.setStatus(EiConstant.STATUS_FAILURE);
ErrorCodeUtils.handleUpdateException(inInfo,i,e);
logError("修改失败", e.getMessage());
return inInfo;
} }
return inInfo; return inInfo;
} }
private void checkSubmitData(HGKC003 hgkc003) { /**
AssertUtils.isEmpty(hgkc003.getWhCode(),"仓库编码不能为空!"); * 数据校验
AssertUtils.isEmpty(hgkc003.getWhName(),"仓库名称不能为空!"); *
AssertUtils.isNull(hgkc003.getPrice(),"单价不能为空!"); * @param dbKc003
*/
private void checkSubmitData(HGKC003 dbKc003) {
AssertUtils.isEmpty(dbKc003.getWhCode(), "仓库编码不能为空!");
AssertUtils.isEmpty(dbKc003.getWhName(), "仓库名称不能为空!");
AssertUtils.isNull(dbKc003.getPrice(), "单价不能为空!");
//判断是不是最前工序,如果不是得提示 //判断是不是最前工序,如果不是得提示
List<HGPZ005A> hgpz005AList = HGPZTools.HgPz005A.queryByInventCode(hgkc003.getPrdtCode()); List<HGPZ005A> hgpz005AList = HGPZTools.HgPz005A.queryByInventCode(dbKc003.getPrdtCode());
List<HGKC003> hgkc003List = HGKCTools.HgKc003.getByQualityId(hgkc003.getQualityId()); List<HGKC003> hgkc003List = HGKCTools.HgKc003.getByQualityId(dbKc003.getQualityId());
//当前提交的工序信息 //当前提交的工序信息
HGPZ005A hgpz005AFilter = hgpz005AList.stream().filter(o->o.getInventCode().equals(hgkc003.getPrdtCode())).findAny().orElse(null); HGPZ005A hgpz005AFilter = hgpz005AList.stream().filter(o -> o.getInventCode().equals(dbKc003.getPrdtCode()))
AssertUtils.isNull(hgpz005AFilter,"此物料没有配置工序!"); .findAny().orElse(null);
for(HGKC003 entity : hgkc003List){ AssertUtils.isNull(hgpz005AFilter, "此物料没有配置工序!");
if(entity.getId().intValue() != hgkc003.getId().intValue()){ for (HGKC003 entity : hgkc003List) {
if (entity.getId().intValue() != dbKc003.getId().intValue()) {
//遍历相同质检单的工序 //遍历相同质检单的工序
HGPZ005A hgpz005A = hgpz005AList.stream().filter(o->o.getInventCode().equals(entity.getPrdtCode())).findAny().orElse(null); HGPZ005A hgpz005A = hgpz005AList.stream().filter(o -> o.getInventCode().equals(entity.getPrdtCode()))
.findAny().orElse(null);
//如果未提交的生产单有比当前更靠前的工序,则需要提示 //如果未提交的生产单有比当前更靠前的工序,则需要提示
AssertUtils.isTrue(hgpz005A.getProcessOrder().compareTo(hgpz005AFilter.getProcessOrder()) < 0,hgpz005A.getInventCode()+"的工序“"+hgpz005A.getProcessName()+"“未提交,生产入库号为:"+entity.getDepositNo()); AssertUtils.isTrue(hgpz005A.getProcessOrder().compareTo(hgpz005AFilter.getProcessOrder()) < 0,
hgpz005A.getInventCode() + "的工序“" + hgpz005A.getProcessName() + "“未提交,生产入库号为:"
+ entity.getDepositNo());
} }
} }
} }
/** /**
......
...@@ -20,96 +20,127 @@ import java.util.*; ...@@ -20,96 +20,127 @@ import java.util.*;
* @Date 2024/5/6 19:48 * @Date 2024/5/6 19:48
*/ */
public class ServiceHGSC005A extends ServiceBase { public class ServiceHGSC005A extends ServiceBase {
@OperationLogAnnotation(operModul = "生产计划详情", operType = "查询", operDesc = "初始化页面") /**
public EiInfo initLoad(EiInfo inInfo) { * 初始化
try { *
String planCode = inInfo.getCellStr(EiConstant.queryBlock,0,HGSC005A.FIELD_plan_code); * @param inInfo
HGSC005 hgsc005 = HGSCTools.THGSC005.queryByPlanCode(planCode); * @return
inInfo.setCell(EiConstant.queryBlock,0,HGSC005.FIELD_is_schedule,hgsc005.getIsSchedule()); */
inInfo.addBlock(EiConstant.resultBlock).addBlockMeta(new HGSC005A().eiMetadata); @OperationLogAnnotation(operModul = "生产计划详情", operType = "查询", operDesc = "初始化页面")
// inInfo = super.query(inInfo, HGSC005A.QUERY, new HGSC005A()); public EiInfo initLoad(EiInfo inInfo) {
CommonMethod.initBlock(inInfo, Arrays.asList(DdynamicEnum.PLAN_PROCESS_BLOCK_ID), new HashMap<String, Object>(){{ try {
put(HGSC005A.FIELD_plan_code,planCode); String planCode = inInfo.getCellStr(EiConstant.queryBlock, 0, HGSC005A.FIELD_plan_code);
}},false); HGSC005 hgsc005 = HGSCTools.THGSC005.queryByPlanCode(planCode);
CommonMethod.comboBoxDefaultValue(inInfo,DdynamicEnum.PLAN_PROCESS_BLOCK_ID.getBlockId(),"全部"); inInfo.setCell(EiConstant.queryBlock, 0, HGSC005.FIELD_is_schedule, hgsc005.getIsSchedule());
} catch (PlatException e) { inInfo.addBlock(EiConstant.resultBlock).addBlockMeta(new HGSC005A().eiMetadata);
LogUtils.setDetailMsg(inInfo, e, "初始化失败"); CommonMethod.initBlock(inInfo, Arrays.asList(DdynamicEnum.PLAN_PROCESS_BLOCK_ID),
} new HashMap<String, Object>() {{
return inInfo; put(HGSC005A.FIELD_plan_code, planCode);
} }}, false);
CommonMethod.comboBoxDefaultValue(inInfo, DdynamicEnum.PLAN_PROCESS_BLOCK_ID.getBlockId(), "全部");
@OperationLogAnnotation(operModul = "生产计划详情", operType = "查询", operDesc = "查询") } catch (PlatException e) {
public EiInfo query(EiInfo inInfo) { LogUtils.setDetailMsg(inInfo, e, "初始化失败");
try { }
inInfo = super.query(inInfo, HGSC005A.QUERY, new HGSC005A()); return inInfo;
inInfo.setStatus(EiConstant.STATUS_DEFAULT); }
} catch (PlatException e) {
LogUtils.setDetailMsg(inInfo, e, "查询失败"); /**
} * 修改数据
return inInfo; *
} * @param inInfo
* @return
@OperationLogAnnotation(operModul = "生产计划详情", operType = "保存", operDesc = "保存计划详情") */
public EiInfo update(EiInfo inInfo){ @OperationLogAnnotation(operModul = "生产计划详情", operType = "查询", operDesc = "查询")
try { public EiInfo query(EiInfo inInfo) {
List<HGSC005A> hgsc005AList = MapUtils.toDaoEPBases(inInfo, HGSC005A.class); try {
// 数据校验 inInfo = super.query(inInfo, HGSC005A.QUERY, new HGSC005A());
this.checkSaveData(hgsc005AList); inInfo.setStatus(EiConstant.STATUS_SUCCESS);
// 保存数据 inInfo.setMsg("查询成功!");
this.saveData(hgsc005AList); } catch (PlatException e) {
inInfo = this.query(inInfo); LogUtils.setDetailMsg(inInfo, e, "查询失败");
inInfo.setStatus(EiConstant.STATUS_DEFAULT); }
inInfo.setMsg("操作成功!本次对[" + hgsc005AList.size() + "]条数据保存成功!"); return inInfo;
} catch (Exception e) { }
LogUtils.setDetailMsg(inInfo, e, "保存失败");
} /**
return inInfo; * 修改数据
} *
* @param inInfo
private void saveData(List<HGSC005A> hgsc005AList) { * @return
for (HGSC005A hgsc005a : hgsc005AList) { */
DaoUtils.update(HGSC005A.UPDATE_PLAN_DATE, hgsc005a); @OperationLogAnnotation(operModul = "生产计划详情", operType = "保存", operDesc = "保存计划详情")
} public EiInfo update(EiInfo inInfo) {
} try {
List<HGSC005A> hgsc005AList = MapUtils.toDaoEPBases(inInfo, HGSC005A.class);
private void checkSaveData(List<HGSC005A> hgsc005AList) { // 数据校验
AssertUtils.isEmpty(hgsc005AList,"保存数据为空,请勾选后修改保存!"); this.checkSaveData(hgsc005AList);
AssertUtils.isEmpty(hgsc005AList.get(0).getPlanCode(),"生产计划详情数据异常,请联系管理员!"); // 保存数据
HGSC005 hgsc005 = HGSCTools.THGSC005.queryByPlanCode(hgsc005AList.get(0).getPlanCode()); this.saveData(hgsc005AList);
AssertUtils.isTrue(Objects.isNull(hgsc005.getCommitStatus()),"生产计划状态异常,请联系管理员!"); inInfo = this.query(inInfo);
inInfo.setStatus(EiConstant.STATUS_DEFAULT);
AssertUtils.isTrue(hgsc005.getCommitStatus().compareTo(CommonConstant.YesNo.NO_0)>0,"生产计划已提交,不可修改!"); inInfo.setMsg("操作成功!本次对[" + hgsc005AList.size() + "]条数据保存成功!");
for (HGSC005A hgsc005a : hgsc005AList) { } catch (Exception e) {
AssertUtils.isEmpty(hgsc005a.getPlanStartDate(), String.format("产品[%s]计划开工日期为空!", hgsc005a.getProductName())); LogUtils.setDetailMsg(inInfo, e, "保存失败");
AssertUtils.isEmpty(hgsc005a.getPlanEndDate(), String.format("产品[%s]计划完工日期为空!", hgsc005a.getProductName())); }
AssertUtils.isTrue(DateUtil.toDate(hgsc005a.getPlanEndDate(),DateUtil.DATE10_PATTERN).compareTo( return inInfo;
DateUtil.toDate(hgsc005a.getPlanStartDate(),DateUtil.DATE10_PATTERN))<0,String.format("产品[%s]计划完工日期不能大于开工日期!", hgsc005a.getProductName())); }
} private void saveData(List<HGSC005A> hgsc005AList) {
} for (HGSC005A hgsc005a : hgsc005AList) {
DaoUtils.update(HGSC005A.UPDATE_PLAN_DATE, hgsc005a);
@OperationLogAnnotation(operModul = "生产计划详情", operType = "排产", operDesc = "排产") }
public EiInfo schedule(EiInfo inInfo) { }
try {
Map queryMap = EiInfoUtils.getFirstRow(inInfo); private void checkSaveData(List<HGSC005A> hgsc005AList) {
String planCode = MapUtils.getString(queryMap, "planCode"); AssertUtils.isEmpty(hgsc005AList, "保存数据为空,请勾选后修改保存!");
HGSC005 hgsc005 = HGSCTools.THGSC005.queryByPlanCode(planCode); AssertUtils.isEmpty(hgsc005AList.get(0).getPlanCode(), "生产计划详情数据异常,请联系管理员!");
this.checkScheduleData(hgsc005); HGSC005 hgsc005 = HGSCTools.THGSC005.queryByPlanCode(hgsc005AList.get(0).getPlanCode());
int count = HGSCTools.THGSC005A.schedule(planCode); AssertUtils.isTrue(Objects.isNull(hgsc005.getCommitStatus()), "生产计划状态异常,请联系管理员!");
hgsc005.setIsSchedule(CommonConstant.YesNo.YES_1);
DaoUtils.update(HGSC005.UPDATE,hgsc005); AssertUtils.isTrue(hgsc005.getCommitStatus().compareTo(CommonConstant.YesNo.NO_0) > 0, "生产计划已提交,不可修改!");
inInfo = this.query(inInfo); for (HGSC005A hgsc005a : hgsc005AList) {
inInfo.setStatus(EiConstant.STATUS_DEFAULT); AssertUtils.isEmpty(hgsc005a.getPlanStartDate(),
inInfo.setMsg("操作成功!本次对[" + count + "]条数据排产成功!"); String.format("产品[%s]计划开工日期为空!", hgsc005a.getProductName()));
} catch (Exception e) { AssertUtils.isEmpty(hgsc005a.getPlanEndDate(), String.format("产品[%s]计划完工日期为空!", hgsc005a.getProductName()));
LogUtils.setDetailMsg(inInfo, e, "操作失败"); AssertUtils.isTrue(DateUtil.toDate(hgsc005a.getPlanEndDate(), DateUtil.DATE10_PATTERN).compareTo(
} DateUtil.toDate(hgsc005a.getPlanStartDate(), DateUtil.DATE10_PATTERN)) < 0,
return inInfo; String.format("产品[%s]计划完工日期不能大于开工日期!", hgsc005a.getProductName()));
} }
}
private void checkScheduleData(HGSC005 hgsc005) {
AssertUtils.isTrue(hgsc005.getIsSchedule().compareTo(CommonConstant.YesNo.YES_1)==0,"当前计划已排产,请手动调整计划!"); /**
} * 排产
*
* @param inInfo
* @return
*/
@OperationLogAnnotation(operModul = "生产计划详情", operType = "排产", operDesc = "排产")
public EiInfo schedule(EiInfo inInfo) {
try {
Map queryMap = EiInfoUtils.getFirstRow(inInfo);
String planCode = MapUtils.getString(queryMap, "planCode");
HGSC005 dbSc005 = HGSCTools.THGSC005.queryByPlanCode(planCode);
this.checkScheduleData(dbSc005);
int count = HGSCTools.THGSC005A.schedule(planCode);
dbSc005.setIsSchedule(CommonConstant.YesNo.YES_1);
DaoUtils.update(HGSC005.UPDATE, dbSc005);
inInfo = this.query(inInfo);
inInfo.setStatus(EiConstant.STATUS_DEFAULT);
inInfo.setMsg("操作成功!本次对[" + count + "]条数据排产成功!");
} catch (Exception e) {
LogUtils.setDetailMsg(inInfo, e, "操作失败");
}
return inInfo;
}
/**
* 排产校验数据
*
* @param dbSc005
*/
private void checkScheduleData(HGSC005 dbSc005) {
// AssertUtils.isEquals(hgsc005.getIsSchedule(), CommonConstant.YesNo.YES_1, "当前计划已排产,请手动调整计划!");
}
} }
...@@ -4,11 +4,14 @@ import com.baosight.hggp.aspect.annotation.OperationLogAnnotation; ...@@ -4,11 +4,14 @@ import com.baosight.hggp.aspect.annotation.OperationLogAnnotation;
import com.baosight.hggp.common.DdynamicEnum; import com.baosight.hggp.common.DdynamicEnum;
import com.baosight.hggp.core.constant.CommonConstant; import com.baosight.hggp.core.constant.CommonConstant;
import com.baosight.hggp.core.dao.DaoUtils; import com.baosight.hggp.core.dao.DaoUtils;
import com.baosight.hggp.hg.cg.constant.HgCgSqlConst;
import com.baosight.hggp.hg.cg.domain.HGCG003; import com.baosight.hggp.hg.cg.domain.HGCG003;
import com.baosight.hggp.hg.cg.domain.HGCG003B; import com.baosight.hggp.hg.cg.domain.HGCG003B;
import com.baosight.hggp.hg.cg.domain.HGCG003B1;
import com.baosight.hggp.hg.cg.tools.HGCGTools; import com.baosight.hggp.hg.cg.tools.HGCGTools;
import com.baosight.hggp.hg.cg.utils.HGCGUtils; import com.baosight.hggp.hg.cg.utils.HGCGUtils;
import com.baosight.hggp.hg.constant.HGConstant; import com.baosight.hggp.hg.constant.HGConstant;
import com.baosight.hggp.hg.constant.HGSqlConstant;
import com.baosight.hggp.hg.zl.domain.HGZL001; import com.baosight.hggp.hg.zl.domain.HGZL001;
import com.baosight.hggp.util.AssertUtils; import com.baosight.hggp.util.AssertUtils;
import com.baosight.hggp.util.BeanUtils; import com.baosight.hggp.util.BeanUtils;
...@@ -49,7 +52,7 @@ public class ServiceHGZL001B extends ServiceEPBase { ...@@ -49,7 +52,7 @@ public class ServiceHGZL001B extends ServiceEPBase {
CommonMethod.initBlock(inInfo, Arrays.asList(DdynamicEnum.SUP_RECORD_BLOCK_ID)); 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.INVENT_RECORD_BLOCK_ID));
CommonMethod.initBlock(inInfo, Arrays.asList(DdynamicEnum.SPEC_NAME_BLOCK_ID)); CommonMethod.initBlock(inInfo, Arrays.asList(DdynamicEnum.SPEC_NAME_BLOCK_ID));
inInfo.addBlock(EiConstant.resultBlock).addBlockMeta(new HGCG003().eiMetadata); inInfo.addBlock(EiConstant.resultBlock).addBlockMeta(new HGCG003B1().eiMetadata);
} catch (Exception e) { } catch (Exception e) {
LogUtils.setDetailMsg(inInfo, e, "初始化失败"); LogUtils.setDetailMsg(inInfo, e, "初始化失败");
} }
...@@ -67,9 +70,9 @@ public class ServiceHGZL001B extends ServiceEPBase { ...@@ -67,9 +70,9 @@ public class ServiceHGZL001B extends ServiceEPBase {
public EiInfo query(EiInfo inInfo) { public EiInfo query(EiInfo inInfo) {
try { try {
Map queryMap = EiInfoUtils.getFirstRow(inInfo); Map queryMap = EiInfoUtils.getFirstRow(inInfo);
queryMap.put(HGCG003B.FIELD_SOURCE, HGConstant.CgSource.DEFAULT); queryMap.put(HGCG003.FIELD_SOURCE, HGConstant.CgSource.DEFAULT);
queryMap.put(HGCG003B.FIELD_STATUS, HGConstant.CgReceiveStatus.S_0); queryMap.put(HGCG003B.FIELD_STATUS, HGConstant.CgReceiveStatus.S_0);
inInfo = super.query(inInfo, HGCG003B.QUERY_BY_QUALITY_TESTING, new HGCG003B()); inInfo = super.query(inInfo, HgCgSqlConst.HgCg003A.QUERY_BY_QUALITY_TESTING, new HGCG003B1());
} catch (Exception e) { } catch (Exception e) {
LogUtils.setDetailMsg(inInfo, e, "查询失败"); LogUtils.setDetailMsg(inInfo, e, "查询失败");
} }
......
...@@ -75,6 +75,10 @@ ...@@ -75,6 +75,10 @@
sumType="page"/> sumType="page"/>
<EF:EFColumn ename="amount" cname="金额" enable="false" width="120" align="right" format="{0:C3}" <EF:EFColumn ename="amount" cname="金额" enable="false" width="120" align="right" format="{0:C3}"
sumType="page"/> sumType="page"/>
<EF:EFColumn ename="taxAmount" cname="税额" enable="false" width="120" align="right" format="{0:C3}"
sumType="page"/>
<EF:EFColumn ename="taxIncludeAmount" cname="含税金额" enable="false" width="120" align="right" format="{0:C3}"
sumType="page"/>
<EF:EFColumn ename="createdName" cname="创建人" enable="false" width="100" align="center"/> <EF:EFColumn ename="createdName" cname="创建人" enable="false" width="100" align="center"/>
<EF:EFColumn ename="createdTime" cname="创建时间" enable="false" width="140" align="center" <EF:EFColumn ename="createdTime" cname="创建时间" enable="false" width="140" align="center"
editType="datetime" parseFormats="['yyyyMMddHHmmss']"/> editType="datetime" parseFormats="['yyyyMMddHHmmss']"/>
......
...@@ -56,8 +56,15 @@ ...@@ -56,8 +56,15 @@
<EF:EFCodeOption codeName="hggp.cg.calculationMethod"/> <EF:EFCodeOption codeName="hggp.cg.calculationMethod"/>
</EF:EFComboColumn> </EF:EFComboColumn>
<EF:EFColumn ename="price" cname="单价" width="120" align="right" format="{0:C3}" required="true"/> <EF:EFColumn ename="price" cname="单价" width="120" align="right" format="{0:C3}" required="true"/>
<EF:EFComboColumn ename="taxRate" cname="税率(%)" width="100" align="center" required="true" copy="true">
<EF:EFCodeOption codeName="hggp.cw.taxPoints"/>
</EF:EFComboColumn>
<EF:EFColumn ename="amount" cname="金额" enable="false" width="120" align="right" format="{0:C3}" <EF:EFColumn ename="amount" cname="金额" enable="false" width="120" align="right" format="{0:C3}"
sumType="page"/> sumType="page"/>
<EF:EFColumn ename="taxAmount" cname="税额" enable="false" width="120" align="right" format="{0:C3}"
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:EFComboColumn ename="status" cname="状态" enable="false" width="80" align="center">
<EF:EFCodeOption codeName="hggp.hgcg.receiveStatus"/> <EF:EFCodeOption codeName="hggp.hgcg.receiveStatus"/>
</EF:EFComboColumn> </EF:EFComboColumn>
...@@ -67,7 +74,7 @@ ...@@ -67,7 +74,7 @@
<EF:EFColumn ename="companyCode" cname="公司编码" enable="false" width="100" align="center" hidden="true"/> <EF:EFColumn ename="companyCode" cname="公司编码" enable="false" width="100" align="center" hidden="true"/>
<EF:EFColumn ename="companyName" cname="公司名称" enable="false" width="130" align="center" hidden="true"/> <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" <EF:EFColumn ename="receiveDate" cname="收货日期" enable="false" width="100" align="center" editType="date"
dateFormat="yyyy-MM-dd" parseFormats="['yyyyMMdd']" hidden="true"/> dateFormat="yyyy-MM-dd" parseFormats="['yyyyMMdd']" hidden="true"/>
<EF:EFColumn ename="receiveNo" cname="收货单号" enable="false" width="120" align="center" 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:EFColumn ename="primaryId" cname="主表id" enable="false" width="100" align="center" hidden="true"/>
</EF:EFGrid> </EF:EFGrid>
......
let whNameGlobalData = []; let whNameGlobalData = [];
$(function () { $(function () {
IPLATUI.EFGrid.result = { IPLATUI.EFGrid.result = {
...@@ -7,8 +7,7 @@ $(function () { ...@@ -7,8 +7,7 @@ $(function () {
pageSize: 20, pageSize: 20,
pageSizes: [10, 20, 30, 50, 100, 200], pageSizes: [10, 20, 30, 50, 100, 200],
}, },
columns: [ columns: [{
{
field: "operator", field: "operator",
title: "操作", title: "操作",
template: function (item) { template: function (item) {
...@@ -146,27 +145,17 @@ function updateSubmitStatus(id) { ...@@ -146,27 +145,17 @@ function updateSubmitStatus(id) {
JSUtils.confirm("确定提交此生产入库单吗? ", { JSUtils.confirm("确定提交此生产入库单吗? ", {
ok: function () { ok: function () {
EiCommunicator.send('HGKC003', 'updateSubmitStatus', inEiInfo, { EiCommunicator.send('HGKC003', 'updateSubmitStatus', inEiInfo, {
onSuccess: function (ei) { onSuccess: function (res) {
if (ei.getStatus() >= 0) { message(res.msg);
try { if (res.status > -1) {
query(); query();
} catch (e) {
}
if (ei.getStatus() == 0) {
NotificationUtil(ei, 'warning');
} else {
NotificationUtil(ei);
}
} else {
NotificationUtil(ei, "error");
}
},
onFail: function (ei) {
// 发生异常
NotificationUtil("操作失败,原因[" + ei + "]", "error");
} }
},
onFail: function (ei) {
// 发生异常
NotificationUtil("操作失败,原因[" + ei + "]", "error");
} }
); });
} }
}); });
......
...@@ -10,7 +10,7 @@ ...@@ -10,7 +10,7 @@
<div class="row"> <div class="row">
<EF:EFInput ename="inqu_status-0-companyName" cname="公司名称" colWidth="3"/> <EF:EFInput ename="inqu_status-0-companyName" cname="公司名称" colWidth="3"/>
<EF:EFDatePicker cname="单据日期" blockId="inqu_status" ename="depositDate" row="0" colWidth="3" <EF:EFDatePicker cname="单据日期" blockId="inqu_status" ename="depositDate" row="0" colWidth="3"
role="date" format="yyyy-MM-dd" readonly="true"/> role="date" format="yyyy-MM-dd" readonly="true"/>
<EF:EFInput ename="inqu_status-0-projName" cname="项目名称" colWidth="3"/> <EF:EFInput ename="inqu_status-0-projName" cname="项目名称" colWidth="3"/>
<EF:EFInput ename="inqu_status-0-depositNo" cname="生产入库单号" colWidth="3"/> <EF:EFInput ename="inqu_status-0-depositNo" cname="生产入库单号" colWidth="3"/>
</div> </div>
...@@ -19,24 +19,26 @@ ...@@ -19,24 +19,26 @@
</div> </div>
</EF:EFRegion> </EF:EFRegion>
<EF:EFRegion id="result" title="明细信息"> <EF:EFRegion id="result" title="明细信息" fitHeight="true">
<EF:EFGrid blockId="result" autoDraw="override" isFloat="true" checkMode="row"> <EF:EFGrid blockId="result" autoDraw="override" isFloat="true" checkMode="row" height="69vh">
<EF:EFColumn ename="id" cname="内码" hidden="true"/> <EF:EFColumn ename="id" cname="内码" hidden="true"/>
<EF:EFColumn ename="operator" cname="操作" locked="true" width="140" enable="false" readonly="false"/> <EF:EFColumn ename="operator" cname="操作" locked="true" width="80" enable="false" align="center"/>
<EF:EFColumn ename="qualityId" cname="质检单id" enable="false" width="90" align="center" hidden="true"/> <EF:EFColumn ename="qualityId" cname="质检单id" enable="false" width="90" align="center" hidden="true"/>
<EF:EFColumn ename="rectificationId" cname="整改通知单ID" enable="false" width="90" align="center" hidden="true"/> <EF:EFColumn ename="rectificationId" cname="整改通知单ID" enable="false" width="90" align="center"
<EF:EFComboColumn cname="入库类型" ename="storageType" width="90" align="center" required="false" enable="false" readonly="false" > hidden="true"/>
<EF:EFCodeOption codeName="hggp.kc.storageType" /> <EF:EFComboColumn cname="入库类型" ename="storageType" width="90" align="center" required="false" enable="false"
readonly="false">
<EF:EFCodeOption codeName="hggp.kc.storageType"/>
</EF:EFComboColumn> </EF:EFComboColumn>
<EF:EFColumn ename="companyName" cname="公司名称" enable="false" width="140" align="center"/> <EF:EFColumn ename="companyName" cname="公司名称" enable="false" width="200" align="left"/>
<EF:EFColumn ename="projCode" cname="项目编号" enable="false" width="140" align="center"/> <EF:EFColumn ename="projCode" cname="项目编号" enable="false" width="140" align="center"/>
<EF:EFColumn ename="projName" cname="项目名称" enable="false" width="140" align="center"/> <EF:EFColumn ename="projName" cname="项目名称" enable="false" width="140" align="left"/>
<EF:EFColumn ename="whCode" cname="仓库名称" width="120" align="center" required="true"/> <EF:EFColumn ename="whCode" cname="仓库名称" width="120" align="center" required="true"/>
<EF:EFColumn ename="whName" cname="仓库名称" hidden="true"/> <EF:EFColumn ename="whName" cname="仓库名称" hidden="true"/>
<EF:EFColumn ename="depositDate" cname="单据日期" enable="false" width="100" align="center" editType="date" <EF:EFColumn ename="depositDate" cname="单据日期" enable="false" width="100" align="center" editType="date"
dateFormat="yyyy-MM-dd" parseFormats="['yyyyMMdd']"/> dateFormat="yyyy-MM-dd" parseFormats="['yyyyMMdd']"/>
<EF:EFColumn ename="depositNo" cname="生产入库单号" enable="false" width="120" align="center"/> <EF:EFColumn ename="depositNo" cname="生产入库单号" enable="false" width="120" align="center"/>
<EF:EFColumn ename="depositNoOld" cname="历史生产入库单号" enable="false" width="120" align="center"/> <EF:EFColumn ename="depositNoOld" cname="历史生产入库单号" enable="false" width="140" align="center"/>
<EF:EFComboColumn ename="prdtType" cname="存货类型" width="120" align="center" required="false" <EF:EFComboColumn ename="prdtType" cname="存货类型" width="120" align="center" required="false"
blockName="invent_type_box_block_id" textField="textField" valueField="valueField" blockName="invent_type_box_block_id" textField="textField" valueField="valueField"
columnTemplate="#=textField#" itemTemplate="#=textField#" readonly="false" columnTemplate="#=textField#" itemTemplate="#=textField#" readonly="false"
......
...@@ -48,9 +48,11 @@ ...@@ -48,9 +48,11 @@
<EF:EFColumn ename="inventName" cname="存货名称" enable="false" width="100" align="center"/> <EF:EFColumn ename="inventName" cname="存货名称" enable="false" width="100" align="center"/>
<EF:EFColumn ename="specId" cname="规格ID" enable="false" width="100" align="center" hidden="true"/> <EF:EFColumn ename="specId" cname="规格ID" enable="false" width="100" align="center" hidden="true"/>
<EF:EFColumn ename="spec" cname="规格" enable="false" width="120" align="center"/> <EF:EFColumn ename="spec" cname="规格" enable="false" width="120" align="center"/>
<EF:EFColumn ename="invQty" cname="库存数量" enable="false" width="120" align="right" format="{0:N3}"/> <EF:EFColumn ename="invQty" cname="库存数量" enable="false" width="120" align="right" format="{0:N3}"
sumType="page"/>
<EF:EFColumn ename="invUnitWeight" cname="单重(KG)" enable="false" width="120" align="right" format="{0:N3}"/> <EF:EFColumn ename="invUnitWeight" cname="单重(KG)" enable="false" width="120" align="right" format="{0:N3}"/>
<EF:EFColumn ename="invWeight" cname="库存总重(KG)" enable="false" width="120" align="right" format="{0:N3}"/> <EF:EFColumn ename="invWeight" cname="库存总重(KG)" enable="false" width="120" align="right" format="{0:N3}"
sumType="page"/>
<EF:EFColumn ename="material" cname="材质" enable="false" width="80" align="center"/> <EF:EFColumn ename="material" cname="材质" enable="false" width="80" align="center"/>
<EF:EFColumn ename="unit" cname="单位" enable="false" width="80" align="center"/> <EF:EFColumn ename="unit" cname="单位" enable="false" width="80" align="center"/>
<EF:EFColumn ename="createdName" cname="创建人" enable="false" width="100" align="center"/> <EF:EFColumn ename="createdName" cname="创建人" enable="false" width="100" align="center"/>
......
...@@ -37,37 +37,32 @@ $(window).load(function () { ...@@ -37,37 +37,32 @@ $(window).load(function () {
query(); query();
}); });
/**
* 排产
*/
function schedule() { function schedule() {
var planCode = $("#inqu_status-0-planCode").val(); var planCode = $("#inqu_status-0-planCode").val();
var isSchedule = $("#inqu_status-0-isSchedule").val(); IPLAT.confirm({
if(isSchedule&&isSchedule==='1'){ title: '提交',
message("当前计划已排产,请手动调整计划!"); message: '自动排产将覆盖原排产数据,请谨慎操作,确认对当前数据进行排产?',
return; okFn: function () {
}else { var inInfo = new EiInfo();
var inInfo = new EiInfo(); inInfo.set("inqu_status-0-planCode", planCode);
inInfo.set("inqu_status-0-planCode", planCode); EiCommunicator.send("HGSC005A", "schedule", inInfo, {
IPLAT.confirm({ onSuccess: function (ei) {
title: '提交', if (ei.getStatus() >= 0) {
message: '自动排产将覆盖原排产数据,且只能执行一次,请谨慎操作,确认对当前数据进行排产?', $("#inqu_status-0-isSchedule").val('1');
okFn: function () { NotificationUtil(ei);
var inInfo = new EiInfo(); resultGrid.dataSource.query();
inInfo.set("inqu_status-0-planCode", planCode); } else {
EiCommunicator.send("HGSC005A", "schedule", inInfo, { NotificationUtil(ei, "error");
onSuccess: function (ei) { }
if (ei.getStatus() >= 0) { },
$("#inqu_status-0-isSchedule").val('1'); onFail: function (ei) {
NotificationUtil(ei); // 发生异常
resultGrid.dataSource.query(); NotificationUtil("操作失败,原因[" + ei + "]", "error");
} else { }
NotificationUtil(ei, "error"); });
} }
}, });
onFail: function (ei) {
// 发生异常
NotificationUtil("操作失败,原因[" + ei + "]", "error");
}
});
}
});
}
} }
...@@ -32,24 +32,29 @@ ...@@ -32,24 +32,29 @@
</EF:EFRegion> </EF:EFRegion>
<EF:EFRegion id="result" title="记录集"> <EF:EFRegion id="result" title="记录集">
<EF:EFGrid blockId="result" autoDraw="override" isFloat="true"> <EF:EFGrid blockId="result" autoDraw="override" isFloat="true">
<EF:EFColumn ename="id" cname="主键" hidden="true"/> <EF:EFColumn ename="id" cname="主键" hidden="true"/>
<EF:EFColumn ename="companyName" cname="公司名称" enable="true" width="120" align="center" readOnly="true"/> <EF:EFColumn ename="companyName" cname="公司名称" enable="false" width="120" align="center" readonly="true"/>
<EF:EFColumn ename="projName" cname="项目名称" width="120" enable="true" align="center" readOnly="true"/> <EF:EFColumn ename="projName" cname="项目名称" enable="false" width="120" align="center" readonly="true"/>
<EF:EFColumn ename="productCode" cname="产品编码" width="120" enable="true" align="center" readOnly="true"/> <EF:EFColumn ename="productCode" cname="产品编码" enable="false" width="120" align="center" readonly="true"/>
<EF:EFColumn ename="productName" cname="产品名称" width="120" enable="true" align="center" readOnly="true"/> <EF:EFColumn ename="productName" cname="产品名称" width="120" enable="true" align="center" readonly="true"/>
<EF:EFColumn ename="processName" cname="工序" width="120" enable="true" align="center" readOnly="true"/> <EF:EFColumn ename="processName" cname="工序" width="120" enable="true" align="center" readonly="true"/>
<EF:EFColumn ename="finishDate" cname="交货日期" width="120" enable="true" align="center" readOnly="true"/> <EF:EFColumn ename="finishDate" cname="交货日期" width="120" enable="true" align="center" readonly="true"/>
<EF:EFColumn ename="planStartDate" cname="计划开工日期" width="120" enable="true" align="center" editType="date" <EF:EFColumn ename="planStartDate" cname="计划开工日期" width="120" enable="true" align="center" editType="date"
dateFormat="yyyy-MM-dd" parseFormats="['yyyy-MM-dd']" required="true"/> dateFormat="yyyy-MM-dd" parseFormats="['yyyy-MM-dd']" required="true"/>
<EF:EFColumn ename="planEndDate" cname="计划完工日期" width="120" enable="true" align="center" editType="date" <EF:EFColumn ename="planEndDate" cname="计划完工日期" width="120" enable="true" align="center" editType="date"
dateFormat="yyyy-MM-dd" parseFormats="['yyyy-MM-dd']" required="true"/> dateFormat="yyyy-MM-dd" parseFormats="['yyyy-MM-dd']" required="true"/>
<EF:EFColumn ename="singleWeight" cname="单重(KG)" format="{0:0.00}" editType="text" width="120" enable="true" align="center" readOnly="true"/> <EF:EFColumn ename="singleWeight" cname="单重(KG)" format="{0:0.00}" editType="text" width="120" enable="true"
<EF:EFColumn ename="totalWeight" cname="计划重量(KG)" format="{0:0.00}" editType="text" width="120" enable="true" align="center" readOnly="true"/> align="center" readonly="true"/>
<EF:EFColumn ename="finishWeight" cname="完成重量(KG)" format="{0:0.00}" editType="text" width="120" enable="true" align="center" readOnly="true"/> <EF:EFColumn ename="totalWeight" cname="计划重量(KG)" format="{0:0.00}" editType="text" width="120"
<EF:EFColumn ename="unfinishWeight" cname="未完成重量(KG)" format="{0:0.00}" editType="text" width="120" enable="true" align="center" readOnly="true"/> enable="true" align="center" readonly="true"/>
<EF:EFColumn ename="quantity" cname="计划数量" width="120" enable="true" align="center" readOnly="true"/> <EF:EFColumn ename="finishWeight" cname="完成重量(KG)" format="{0:0.00}" editType="text" width="120"
<EF:EFColumn ename="finishQuantity" cname="完成数量" width="120" enable="true" align="center" readOnly="true"/> enable="true" align="center" readonly="true"/>
<EF:EFColumn ename="unfinishQuantity" cname="未完成数量" width="120" enable="true" align="center" readOnly="true"/> <EF:EFColumn ename="unfinishWeight" cname="未完成重量(KG)" format="{0:0.00}" editType="text" width="120"
enable="true" align="center" readonly="true"/>
<EF:EFColumn ename="quantity" cname="计划数量" width="120" enable="true" align="center" readonly="true"/>
<EF:EFColumn ename="finishQuantity" cname="完成数量" width="120" enable="true" align="center" readonly="true"/>
<EF:EFColumn ename="unfinishQuantity" cname="未完成数量" width="120" enable="true" align="center"
readonly="true"/>
</EF:EFGrid> </EF:EFGrid>
</EF:EFRegion> </EF:EFRegion>
</EF:EFPage> </EF:EFPage>
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