Commit d4c5a55b by liuyang

2024-07-23

1.付款单录入收款金额,保存提示生成收款单失败bug
2.付款单删除bug
3、付款单明细显示调整
4、付款单核销优化
parent 6c4f78c3
package com.baosight.hggp.controller;
import com.baosight.hggp.core.utils.QrCodeUtils;
import com.baosight.hggp.hg.mt.utils.UploadUtils;
import com.baosight.hggp.util.LogUtils;
import com.baosight.iplat4j.core.ei.EiConstant;
import org.springframework.data.repository.query.Param;
......@@ -36,8 +37,8 @@ public class FileUploadController {
public Map upload(MultipartFile file) throws IOException {
Map resultMap = new HashMap();
try {
// JSONObject upload = UploadUtils2.upload((CommonsMultipartFile)file);
// resultMap.put("id", upload.getString("docId"));
JSONObject upload = UploadUtils.upload((CommonsMultipartFile)file);
resultMap.put("id", upload.getString("docId"));
resultMap.put("status", EiConstant.STATUS_SUCCESS);
resultMap.put("message", "SUCCESS");
return resultMap;
......
package com.baosight.hggp.hg.cw.service;
import com.baosight.hggp.aspect.annotation.OperationLogAnnotation;
import com.baosight.hggp.common.ReviewStatusEnum;
import com.baosight.hggp.core.security.UserSessionUtils;
import com.baosight.hggp.hg.cw.domain.HGCW012;
import com.baosight.hggp.hg.cw.domain.HGCW012;
import com.baosight.hggp.hg.cw.domain.HGCW016;
import com.baosight.hggp.hg.xs.domain.Company;
import com.baosight.hggp.util.EiInfoUtils;
import com.baosight.hggp.util.LogUtils;
import com.baosight.hggp.util.contants.ACConstants;
import com.baosight.iplat4j.core.ei.EiConstant;
import com.baosight.iplat4j.core.ei.EiInfo;
import com.baosight.iplat4j.core.exception.PlatException;
......@@ -25,13 +28,14 @@ public class ServiceHGCW016A extends ServiceBase {
* @return
*/
@OperationLogAnnotation(operModul = "账期维护",operType = "查询",operDesc = "初始化")
@OperationLogAnnotation(operModul = "付款单",operType = "查询",operDesc = "初始化")
@Override
public EiInfo initLoad(EiInfo inInfo) {
try {
EiInfoUtils.addBlock(inInfo,"roleCompany", UserSessionUtils.getRoleCompany(), Company.class);
inInfo.addBlock(EiConstant.resultBlock).addBlockMeta(new HGCW012().eiMetadata);
} catch (Exception e) {
LogUtils.setDetailMsg(inInfo, e, "初始化失败");
LogUtils.setDetailMsg(inInfo, e, "初始化付款单失败");
}
return inInfo;
}
......@@ -42,10 +46,12 @@ public class ServiceHGCW016A extends ServiceBase {
* @param inInfo
* @return
*/
@OperationLogAnnotation(operModul = "账期维护",operType = "查询",operDesc = "查询")
@OperationLogAnnotation(operModul = "付款单",operType = "查询",operDesc = "查询")
@Override
public EiInfo query(EiInfo inInfo) {
try {
inInfo.setCell(EiConstant.queryBlock, ACConstants.ROW_CODE_0, HGCW016.FIELD_REVIEW_STATUS, ReviewStatusEnum.REVIEWED.getCode());
inInfo.setCell(EiConstant.queryBlock, ACConstants.ROW_CODE_0, "notRemainingAmount", 0);
inInfo = super.query(inInfo, HGCW012.QUERY, new HGCW012());
} catch (Exception e) {
LogUtils.setDetailMsg(inInfo, e, "查询失败");
......
......@@ -72,29 +72,28 @@ public class ServiceHGCW017 extends ServiceBase {
List<Map> resultRows = inInfo.getBlock(EiConstant.resultBlock).getRows();
// 写入数据
Long mainId = null;
for (int i = 0; i < resultRows.size(); i++) {
HGCW017 HGCW017 = new HGCW017();
HGCW017.fromMap(resultRows.get(i));
for (Map resultRow : resultRows) {
HGCW017 hgcw017 = new HGCW017();
hgcw017.fromMap(resultRow);
UserVO userVO = HGCWTools.HgCw002.getUserCompany();
HGCW017.setCompanyCode(userVO.getUsercode());
HGCW017.setCompanyName(userVO.getUsername());
mainId = HGCW017.getMainId();
if (HGCW017.getId() == null || HGCW017.getId() == 0) {
this.add(HGCW017);
hgcw017.setCompanyCode(userVO.getUsercode());
hgcw017.setCompanyName(userVO.getUsername());
mainId = hgcw017.getMainId();
if (hgcw017.getId() == null || hgcw017.getId() == 0) {
this.add(hgcw017);
} else {
// 回写数据
HGCW017 oldHGCW017 = HGCWTools.HgCw017.getId(HGCW017.getId());
HGCW017 oldHgcw017 = HGCWTools.HgCw017.getId(hgcw017.getId());
//先加再扣
HGCWTools.HgCw012.cutAmount(oldHGCW017.getContractNumber(),
oldHGCW017.getTotalContractPriceIncluding().multiply(new BigDecimal(-1)));
this.modify(HGCW017);
HGCWTools.HgCw012.cutAmount(HGCW017.getContractNumber(),
HGCW017.getTotalContractPriceIncluding());
HGCWTools.HgCw012.cutAmount(oldHgcw017.getContractNumber(),
oldHgcw017.getTotalContractPriceIncluding().multiply(new BigDecimal(-1)));
this.modify(hgcw017);
HGCWTools.HgCw012.cutAmount(hgcw017.getContractNumber(),
hgcw017.getTotalContractPriceIncluding());
}
}
// 更新主表
HGCWTools.HgCw016.updateAmount(mainId);
inInfo = this.query(inInfo);
inInfo.setStatus(EiConstant.STATUS_DEFAULT);
inInfo.setMsg("操作成功!本次对[" + resultRows.size() + "]条数据保存成功!");
} catch (Exception e) {
......@@ -106,21 +105,21 @@ public class ServiceHGCW017 extends ServiceBase {
/**
* 新增操作
*
* @param HGCW017
* @param hgcw017
* @return
*/
public void add(HGCW017 HGCW017) {
DaoUtils.insert("HGCW017.insert", HGCW017);
public void add(HGCW017 hgcw017) {
DaoUtils.insert(HGCW017.INSERT, hgcw017);
}
/**
* 修改操作
*
* @param HGCW017
* @param hgcw017
* @return
*/
public void modify(HGCW017 HGCW017) {
DaoUtils.update("HGCW017.update", HGCW017);
public void modify(HGCW017 hgcw017) {
DaoUtils.update(HGCW017.UPDATE, hgcw017);
}
/**
......@@ -145,7 +144,6 @@ public class ServiceHGCW017 extends ServiceBase {
}
// 更新主表
HGCWTools.HgCw016.updateAmount(mainId);
inInfo = this.query(inInfo);
inInfo.setStatus(EiConstant.STATUS_DEFAULT);
inInfo.setMsg("操作成功!本次对[" + resultRows.size() + "]条数据删除成功!");
} catch (Exception e) {
......
......@@ -165,6 +165,9 @@
<isNotEmpty prepend=" AND " property="receiveWeight">
RECEIVE_WEIGHT = #receiveWeight#
</isNotEmpty>
<isNotEmpty prepend=" AND " property="notRemainingAmount">
REMAINING_AMOUNT != #notRemainingAmount#
</isNotEmpty>
</sql>
<select id="query" parameterClass="java.util.HashMap"
......@@ -178,7 +181,7 @@
$orderBy$
</isNotEmpty>
<isEmpty property="orderBy">
ID desc
RECEIVE_DATE desc ,SIGNING_DATE desc, ID desc
</isEmpty>
</dynamic>
......
......@@ -117,7 +117,7 @@
$orderBy$
</isNotEmpty>
<isEmpty property="orderBy">
ID asc
SIGNING_DATE desc ,ID desc
</isEmpty>
</dynamic>
......
......@@ -725,13 +725,13 @@ public class HGCWTools {
DaoUtils.update("HGCW012.update", HGCW012);
}
}
public static void cutAmount(String settlementNumber, BigDecimal cutAmount) {
AssertUtils.isNull(settlementNumber, "来源单号不能为空!");
public static void cutAmount(String billNumber, BigDecimal cutAmount) {
AssertUtils.isNull(billNumber, "发票号不能为空!");
// if (cutAmount.compareTo(new BigDecimal(BigInteger.ZERO)) <= 0) {
// throw new PlatException("扣款金额不能小于等于0!");
// }
List<HGCW012> results = DaoBase.getInstance().query(HGCW012.QUERY,new HashMap<String,Object>(){
{put("settlementNumber",settlementNumber);}
{put(HGCW012.FIELD_BILL_NUMBER,billNumber);}
});
if (CollectionUtils.isEmpty(results)) {
throw new PlatException("找不到对应的采购收票记录!");
......@@ -1007,7 +1007,7 @@ public class HGCWTools {
rows.forEach(row -> {
HGCW017 hgcw017 = new HGCW017();
hgcw017.fromMap(row);
String contractNumber = row.get("settlementNumber").toString();
String contractNumber = row.get(HGCW012.FIELD_BILL_NUMBER).toString();
String remainingAmount = row.get("thisAmount").toString();
hgcw017.setContractNumber(contractNumber);
hgcw017.setTotalContractPriceIncluding(new BigDecimal(remainingAmount));
......
package com.baosight.hggp.hg.mt.utils;
import com.baosight.iplat4j.core.data.ibatis.dao.Dao;
import com.baosight.iplat4j.core.ioc.spring.PlatApplicationContext;
import com.baosight.iplat4j.core.util.StringUtils;
import com.baosight.iplat4j.eu.dm.PlatFileUploadUtils;
import net.sf.json.JSONObject;
import org.springframework.web.multipart.commons.CommonsMultipartFile;
import java.util.HashMap;
import java.util.Map;
/**
* @author LiuYang
* @version 1.0 2024/7/23
*/
public class UploadUtils {
private static Dao dao = (Dao) PlatApplicationContext.getApplicationContext().getBean("dao");
public static JSONObject upload(CommonsMultipartFile multipartFile ) throws Exception {
JSONObject documentJSON = new JSONObject();
String docName = multipartFile.getOriginalFilename();
Long docSize = multipartFile.getSize();
HashMap<String, String> inMap = new HashMap();
inMap.put("groupId", "hk_file11");
inMap.put("configPathDefine", "A");
Map<String, String> returnMap = PlatFileUploadUtils.uploadFile(multipartFile, inMap);
String docId = (String)returnMap.get("docId");
String docUrl = (String)returnMap.get("docUrl");
docId = docId == null ? "" : docId;
documentJSON.put("docId", docId);
if (StringUtils.isNotEmpty(docUrl)) {
documentJSON.put("docUrl", docUrl);
} else {
documentJSON.remove("docUrl");
}
documentJSON.put("groupId", returnMap.get("groupId") == null ? "" : returnMap.get("groupId"));
documentJSON.put("docName", docName);
documentJSON.put("docSize", docSize);
documentJSON.put("docType", docName.substring(docName.lastIndexOf(46)));
return documentJSON;
}
}
......@@ -12,14 +12,21 @@ $(function() {
pageSize: 20,
pageSizes: [10,20,30,50,100,200],
},
columns: [{
field: "operator",
template: function (item) {
let template = '<a style="cursor: pointer;display: inline-flex;justify-content: center;margin:auto 5px" '
+ 'onclick="contractDetailFunc(' + item.id + ')">付款清单</a>';
return template;
columns: [
{
field: "operator",
template: function (item) {
let template = '<a style="cursor: pointer;display: inline-flex;justify-content: center;margin:auto 5px" '
+ 'onclick="contractDetailFunc(' + item.id + ')">付款清单</a>';
return template;
}
},
{
field: "signingDate",
defaultValue: function () {
return currShortDate();
}
}
}
],
loadComplete: function (grid) {
$("#BTN_CHOICE").on("click",choiceFunc);
......
......@@ -46,13 +46,16 @@
editType="date" dateFormat="yyyy-MM-dd" parseFormats="['yyyyMMdd']"/>
<EF:EFColumn ename="contractNumber" cname="来源单号" width="120" enable="false" readonly="true" align="center"/>
<EF:EFColumn ename="incomeNumber" cname="付款单号" width="120" enable="false" readonly="true" align="center"/>
<EF:EFColumn ename="totalContractPriceIncluding" cname="付款总额" width="120" format="{0:N3}" readonly="true" align="center"/>
<EF:EFColumn ename="totalContractPriceIncluding" cname="付款总额" width="120" enable="false" format="{0:N3}" editType="text"
displayType="0.000" sort="true" align="right" readonly="true"
data-regex="/^-?[0-9]{1,15}([.][0-9]{1,3})?$/" maxLength="15" required="false"
data-errorprompt="请输入数字,该值最大可设置15位整数和3位小数!"/>
<EF:EFComboColumn ename="cancelStatus" cname="核销状态" width="100" align="center" readonly="true"
columnTemplate="#=textField#" itemTemplate="#=textField#" enable="false" >
columnTemplate="#=textField#" itemTemplate="#=textField#" enable="false" defaultValue="1">
<EF:EFCodeOption codeName="hggp.cw.cancelStatus"/>
</EF:EFComboColumn>
<EF:EFComboColumn ename="reviewStatus" cname="审批状态" width="100" align="center" readonly="true"
columnTemplate="#=textField#" itemTemplate="#=textField#" enable="false" >
columnTemplate="#=textField#" itemTemplate="#=textField#" enable="false" defaultValue="0">
<EF:EFCodeOption codeName="hggp.cw.reviewStatus"/>
</EF:EFComboColumn>
</EF:EFGrid>
......
......@@ -40,21 +40,37 @@
align="center" filter="contains" sort="true">
<EF:EFOptions blockId="roleCompany" textField="companyName" valueField="companyCode"/>
</EF:EFComboColumn>
<EF:EFColumn ename="thisAmount" cname="本次付款金额" width="120" align="center"/>
<EF:EFColumn ename="remainingAmount" cname="剩余付款金额" width="120" enable="false" readonly="true" align="center"/>
<EF:EFColumn ename="thisAmount" cname="本次付款金额" width="120" enable="true" format="{0:N3}" editType="text"
displayType="0.000" sort="true" align="right"
data-regex="/^-?[0-9]{1,15}([.][0-9]{1,3})?$/" maxLength="15" required="true"
data-errorprompt="请输入数字,该值最大可设置15位整数和3位小数!"/>
<EF:EFColumn ename="remainingAmount" cname="剩余付款金额" width="120" enable="false" format="{0:N3}" editType="text"
displayType="0.000" sort="true" align="right"
data-regex="/^-?[0-9]{1,15}([.][0-9]{1,3})?$/" maxLength="15" required="true"
data-errorprompt="请输入数字,该值最大可设置15位整数和3位小数!"/>
<EF:EFColumn ename="partyA" cname="供应商名称" width="120" enable="false" readonly="true" align="center"/>
<EF:EFColumn ename="settlementNumber" cname="来源单号" width="120" enable="false" readonly="true" align="center"/>
<EF:EFComboColumn ename="billTybe" cname="票据类型" width="100" align="center"
<EF:EFComboColumn ename="billTybe" cname="票据类型" width="120" align="center"
columnTemplate="#=textField#" itemTemplate="#=textField#" enable="false" >
<EF:EFCodeOption codeName="hggp.cw.billTybe"/>
</EF:EFComboColumn>
<EF:EFColumn ename="signingDate" cname="付款日期" width="120" enable="false" readonly="true" align="center"/>
<%--<EF:EFColumn ename="signingDate" cname="付款日期" width="120" enable="false" readonly="true" align="center"/>--%>
<EF:EFColumn ename="signingDate" cname="付款日期" width="120" enable="true" align="center" editType="date"
dateFormat="yyyy-MM-dd" parseFormats="['yyyyMMdd']" required="false" />
<EF:EFColumn ename="billNumber" cname="发票号" width="120" enable="false" readonly="true" align="center"/>
<EF:EFColumn ename="taxPoints" cname="税率(%)" width="120" enable="false" readonly="true" align="center"/>
<EF:EFColumn ename="thisSettlementAmount" cname="不含税金额" width="120" enable="false" readonly="true" align="center"/>
<EF:EFColumn ename="thisSettlementTax" cname="税额" width="120" enable="false" readonly="true" align="center"/>
<EF:EFColumn ename="totalContractPriceIncluding" cname="发票总额" width="120" enable="false" readonly="true" align="center"/>
<EF:EFColumn ename="thisSettlementAmount" cname="不含税金额" width="120" enable="false" format="{0:N3}" editType="text"
displayType="0.000" sort="true" align="right" readonly="true"
data-regex="/^-?[0-9]{1,15}([.][0-9]{1,3})?$/" maxLength="15" required="false"
data-errorprompt="请输入数字,该值最大可设置15位整数和3位小数!"/>
<EF:EFColumn ename="thisSettlementTax" cname="税额" width="120" enable="false" format="{0:N3}" editType="text"
displayType="0.000" sort="true" align="right" readonly="true"
data-regex="/^-?[0-9]{1,15}([.][0-9]{1,3})?$/" maxLength="15" required="false"
data-errorprompt="请输入数字,该值最大可设置15位整数和3位小数!"/>
<EF:EFColumn ename="totalContractPriceIncluding" cname="发票总额" width="120" enable="false" format="{0:N3}" editType="text"
displayType="0.000" sort="true" align="right" readonly="true"
data-regex="/^-?[0-9]{1,15}([.][0-9]{1,3})?$/" maxLength="15" required="false"
data-errorprompt="请输入数字,该值最大可设置15位整数和3位小数!"/>
</EF:EFGrid>
</EF:EFRegion>
<div class="row" style="display:flex;justify-content:center;">
......
......@@ -62,7 +62,7 @@ function saveFunc() {
onSuccess: function (ei) {
if (ei.getStatus() >= 0) {
try {
query();
} catch (e) {
// TODO: handle exception
}
......@@ -71,6 +71,7 @@ function saveFunc() {
} else {
NotificationUtil(ei);
}
query();
} else {
NotificationUtil(ei, "error");
}
......
......@@ -13,7 +13,10 @@
<EF:EFColumn ename="id" cname="主键" hidden="true"/>
<EF:EFColumn ename="partyA" cname="客户名称" width="120" enable="false" readonly="true" align="center"/>
<EF:EFColumn ename="contractNumber" cname="来源单号" width="120" enable="false" readonly="true" align="center"/>
<EF:EFColumn ename="totalContractPriceIncluding" cname="付款总额" width="120" format="{0:N3}" align="center"/>
<EF:EFColumn ename="totalContractPriceIncluding" cname="付款总额" width="120" enable="true" format="{0:N3}" editType="text"
displayType="0.000" sort="true" align="right"
data-regex="/^-?[0-9]{1,15}([.][0-9]{1,3})?$/" maxLength="15" required="false"
data-errorprompt="请输入数字,该值最大可设置15位整数和3位小数!"/>
</EF:EFGrid>
</EF:EFRegion>
</EF:EFPage>
......
......@@ -13,7 +13,10 @@
<EF:EFColumn ename="id" cname="主键" hidden="true"/>
<EF:EFColumn ename="partyA" cname="客户名称" width="120" enable="false" readonly="true" align="center"/>
<EF:EFColumn ename="contractNumber" cname="来源单号" width="120" enable="false" readonly="true" align="center"/>
<EF:EFColumn ename="totalContractPriceIncluding" cname="付款总额" width="120" format="{0:N3}" align="center" enable="false" readonly="true"/>
<EF:EFColumn ename="totalContractPriceIncluding" cname="付款总额" width="120" enable="false" format="{0:N3}" editType="text"
displayType="0.000" sort="true" align="right" readonly="true"
data-regex="/^-?[0-9]{1,15}([.][0-9]{1,3})?$/" maxLength="15" required="false"
data-errorprompt="请输入数字,该值最大可设置15位整数和3位小数!"/>
</EF:EFGrid>
</EF:EFRegion>
</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