This commit is contained in:
linfso 2024-07-26 07:35:11 +08:00
parent 62180097a8
commit c0cff7e465
4 changed files with 71 additions and 49 deletions

View File

@ -34,7 +34,7 @@ public interface EmisSettleSubBillMapper extends BaseMapper<EmisSettleSubBill>
public EmisSettleSubBill selectEmisSettleSubBillById(Long id);
public EmisSettleSubBill selectSettleSubBillByBillCode(String billCode);
public List<EmisSettleSubBill> selectSettleSubBillListByBillCode(String billCode);
public EmisSettleSubBill selectSettleSubBillBySubBillNo(String subBillNo);

View File

@ -1054,25 +1054,36 @@ public class EmisBaseService {
public void redoGenerateBill(String billCode) throws EmisBizError{
log.error("===>Start 运单出账:"+billCode);
// 已确认的不允许出账
EmisSettleSubBill querySubBill=getSettleSubBillByBillCode(billCode);
if(querySubBill!=null) {
if (!"0".equals(querySubBill.getBlConfirmCenter())) {
EmisSettleSubBill oldBill=null;
boolean isNewBill=true;
// 已确认的不允许出账
List<EmisSettleSubBill> oldSubBillList=getSettleSubBillListByBillCode(billCode);
if(oldSubBillList!=null ) {
if(oldSubBillList.size()>1 ) {
log.error("===>账已拆分不允许出账!");
return;
}
oldBill = oldSubBillList.get(0);
isNewBill=false;
if (!"0".equals(oldBill.getBlConfirmCenter())) {
log.error("===>账单财务确认不允许出账!");
return;
// throw new EmisBizError(EmisBizErrorType.FAIL, "账单财务确认不允许出账");
}
}
// 删除已出账单
emisSettleSubBillMapper.deleteEmisSettleSubBillByBillCode(billCode);
emisSettleSubBillFeeitemMapper.deleteEmisSettleSubBillFeeitemByBillCode(billCode);
// 重新出账
EmisWaybill dt=emisWaybillMapper.selectEmisWaybillByBillCode(billCode);
// 生成分账单明细
EmisSettleSubBill emisSettleSubBill=new EmisSettleSubBill();
// 生成分账单明细,判断是否是新账单
EmisSettleSubBill emisSettleSubBill=new EmisSettleSubBill();
if(oldBill!=null){
// emisSettleSubBill.setId(oldBill.getId());
// 逻辑删除原账单重出账单
emisSettleSubBillMapper.deleteEmisSettleSubBillByBillCode(billCode);
}
emisSettleSubBill.setBillCode(dt.getBillCode());
emisSettleSubBill.setBillNo(dt.getBillCode());
emisSettleSubBill.setBillDate(new Date());
@ -1108,26 +1119,21 @@ public class EmisBaseService {
emisSettleSubBill.setPayee(dt.getPayee());
emisSettleSubBill.setSalesmen(dt.getSalesmen());
emisSettleSubBill.setBlSpecialQuote(dt.getBlSpecialQuote());
// emisSettleSubBill.setBlSensitive();
emisSettleSubBillMapper.insertEmisSettleSubBill(emisSettleSubBill);
// 设置初始账单未确认
emisSettleSubBill.setBlConfirmSite("0");
emisSettleSubBill.setBlConfirmCenter("0");
emisSettleSubBillMapper.insertEmisSettleSubBill(emisSettleSubBill);
// 如果是一口价,自动生成一条运费明细,其他则根据实际来计算
// 生成费用明细
if(dt.getCalcFeeType().equals("3")) {
// EmisSettleSubBillFeeitem emisSettleSubBillFeeitem =new EmisSettleSubBillFeeitem();
// emisSettleSubBillFeeitem.setSubBillNo(dt.getBillCode());
// emisSettleSubBillFeeitem.setBillCode(dt.getBillCode());
// emisSettleSubBillFeeitem.setBillFee(dt.getFreight());
// emisSettleSubBillFeeitem.setCurrency(dt.getCurrency());
// emisSettleSubBillFeeitem.setFeeCode("1001");
// emisSettleSubBillFeeitem.setFeeName("运输费");
// emisSettleSubBillFeeitem.setOrigFee(dt.getFreight());
// emisSettleSubBillFeeitem.setRemark("一口价运输费");
// emisSettleSubBillFeeitemMapper.insertEmisSettleSubBillFeeitem(emisSettleSubBillFeeitem);
}else{
// 逻辑删除原来的费用明细,重新插入明细
emisSettleSubBillFeeitemMapper.deleteEmisSettleSubBillFeeitemByBillCode(billCode);
// 产生新的费用明细
List<EmisWaybillFeeitem> feeitemList = emisWaybillFeeitemMapper.selectFeeitemListByWaybillId(dt.getId());
for(EmisWaybillFeeitem feeitem:feeitemList){
EmisSettleSubBillFeeitem emisSettleSubBillFeeitem =new EmisSettleSubBillFeeitem();
@ -1217,8 +1223,8 @@ public class EmisBaseService {
* @param billCode
* @return
*/
public EmisSettleSubBill getSettleSubBillByBillCode(String billCode){
return emisSettleSubBillMapper.selectSettleSubBillByBillCode(billCode);
public List<EmisSettleSubBill> getSettleSubBillListByBillCode(String billCode){
return emisSettleSubBillMapper.selectSettleSubBillListByBillCode(billCode);
}
/**
@ -2554,8 +2560,15 @@ public class EmisBaseService {
public boolean isBillLock(EmisWaybill emisWaybill) {
// 财务已确认账单不允许修改
EmisSettleSubBill emisSettleSubBill=getSettleSubBillByBillCode(emisWaybill.getBillCode());
if(emisSettleSubBill!=null){
List<EmisSettleSubBill> emisSettleSubBillList=getSettleSubBillListByBillCode(emisWaybill.getBillCode());
if(emisSettleSubBillList!=null ){
if(emisSettleSubBillList.size()>1) {
// 已分单不允许修改
return true;
}
EmisSettleSubBill emisSettleSubBill= emisSettleSubBillList.get(0);
if("1".equals(emisSettleSubBill.getBlConfirmCenter()) ){
// 财务确认出账明细锁账
return true;
@ -2563,7 +2576,7 @@ public class EmisBaseService {
// 财务或业务确认不出账不允许修改
if("2".equals(emisSettleSubBill.getBlConfirmCenter())
|| "2".equals(emisSettleSubBill.getBlConfirmSite())
|| "2".equals(emisSettleSubBill.getBlConfirmSite())
){
// 财务确认出账明细锁账
return true;

View File

@ -179,11 +179,20 @@ public class EmisWaybillAjustApplyServiceImpl extends EmisBaseService implements
emisWaybillAjustApply.setCenterConfirmManCode(getCurrentUser().getEmpCode());
// 获取账单状态,若账单处于非未确认状态,不允许审核
EmisSettleSubBill emisSettleSubBill=getSettleSubBillByBillCode(emisWaybillAjustApply.getBillCode());
if("1".equals(emisSettleSubBill.getBlConfirmCenter())){
throw new EmisBizError(EmisBizErrorType.FAIL,"已确认账单!");
List<EmisSettleSubBill> emisSettleSubBillList=getSettleSubBillListByBillCode(emisWaybillAjustApply.getBillCode());
if(emisSettleSubBillList!=null && emisSettleSubBillList.size()>1){
throw new EmisBizError(EmisBizErrorType.FAIL,"账单已拆分,请先删除子账单!");
}
EmisSettleSubBill emisSettleSubBill=emisSettleSubBillList.get(0);
if("1".equals(emisSettleSubBill.getBlConfirmCenter())){
throw new EmisBizError(EmisBizErrorType.FAIL,"财务已确认账单,不允许审核,请先取消财务确认!");
}
// 运单更新
JSONObject jsonObject = JSONObject.parseObject(emisWaybillAjustApply.getJsonData());
JSONObject newValueJObj=jsonObject.getJSONObject("newValue");

View File

@ -510,17 +510,17 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
where a.id = #{id}
</select>
<select id="selectSettleSubBillByBillCode" parameterType="String" resultMap="EmisSettleSubBillResult">
<select id="selectSettleSubBillListByBillCode" parameterType="String" resultMap="EmisSettleSubBillResult">
select id, bill_no, parent_bill_no, settle_bill_no, bill_code, bill_date, bill_fee, currency, settle_type, bl_split, bl_merge, bill_month, cust_no, cust_name, customer_code, customer_name, payee, salesmen, bl_special_quote, bl_sensitive, bl_confirm_center, confirm_center_date, confirm_center_note, confirm_center_man_code, confirm_center_code, bl_confirm_site, confirm_site_date, confirm_site_man_code, confirm_site_note, confirm_site_code, del_flag, create_by, create_time, update_by, update_time, create_site, update_site
from emis_settle_sub_bill a
where a.del_flag='0' and a.bill_code = #{billCode} and a.parent_bill_no='0' limit 1
where a.del_flag='0' and a.bill_code = #{billCode}
</select>
<select id="selectSubBillListBySettleBillNo" parameterType="String" resultMap="EmisSettleSubBillResult">
select id, bill_no, parent_bill_no, settle_bill_no, bill_code, bill_date, bill_fee, currency, settle_type, bl_split, bl_merge, bill_month, cust_no, cust_name, customer_code, customer_name, payee, salesmen, bl_special_quote, bl_sensitive, bl_confirm_center, confirm_center_date, confirm_center_note, confirm_center_man_code, confirm_center_code, bl_confirm_site, confirm_site_date, confirm_site_man_code, confirm_site_note, confirm_site_code, del_flag, create_by, create_time, update_by, update_time, create_site, update_site
from emis_settle_sub_bill a
where a.settle_bill_no = #{settleBillNo}
where a.settle_bill_no = #{settleBillNo} and del_flag='0'
</select>
@ -653,7 +653,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<if test="createSite != null and createSite != ''">create_site = #{createSite},</if>
<if test="updateSite != null and updateSite != ''">update_site = #{updateSite},</if>
</trim>
where id = #{id}
where id = #{id} and del_flag='0'
</update>
<!-- 更新合账单 -->
@ -666,7 +666,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<if test="updateTime != null">update_time = #{updateTime},</if>
<if test="updateSite != null and updateSite != ''">update_site = #{updateSite},</if>
</trim>
where id = #{id}
where id = #{id} and del_flag='0'
</update>
<!-- 更新合账单 -->
@ -679,7 +679,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<if test="updateTime != null">update_time = #{updateTime},</if>
<if test="updateSite != null and updateSite != ''">update_site = #{updateSite},</if>
</trim>
where id = #{id}
where id = #{id} and del_flag='0'
</update>
@ -693,7 +693,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<if test="updateSite != null and updateSite != ''">update_site = #{updateSite},</if>
</trim>
where id in
where del_flag='0' and id in
<foreach item="id" collection="ids" open="(" separator="," close=")">
#{id}
</foreach>
@ -710,7 +710,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<if test="updateTime != null">update_time = #{updateTime},</if>
<if test="updateSite != null and updateSite != ''">update_site = #{updateSite},</if>
</trim>
where id = #{id}
where id = #{id} and del_flag='0'
</update>
<!-- 中心取消确认 -->
@ -724,7 +724,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<if test="updateTime != null">update_time = #{updateTime},</if>
<if test="updateSite != null and updateSite != ''">update_site = #{updateSite},</if>
</trim>
where id = #{id}
where id = #{id} and del_flag='0'
</update>
<!-- 中心确认不出账 2-->
@ -739,7 +739,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<if test="updateTime != null">update_time = #{updateTime},</if>
<if test="updateSite != null and updateSite != ''">update_site = #{updateSite},</if>
</trim>
where id = #{id}
where id = #{id} and del_flag='0'
</update>
<!-- 中心账单设置异常 3 -->
@ -754,7 +754,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<if test="updateTime != null">update_time = #{updateTime},</if>
<if test="updateSite != null and updateSite != ''">update_site = #{updateSite},</if>
</trim>
where id = #{id}
where id = #{id} and del_flag='0'
</update>
<!-- 站点业务确认 -->
@ -769,7 +769,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<if test="updateTime != null">update_time = #{updateTime},</if>
<if test="updateSite != null and updateSite != ''">update_site = #{updateSite},</if>
</trim>
where id = #{id}
where id = #{id} and del_flag='0'
</update>
<!-- 站点取消确认 -->
@ -785,7 +785,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<if test="updateTime != null">update_time = #{updateTime},</if>
<if test="updateSite != null and updateSite != ''">update_site = #{updateSite},</if>
</trim>
where id = #{id}
where id = #{id} and del_flag='0'
</update>
<!-- 站点确认不出账 2-->
@ -801,7 +801,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<if test="updateTime != null">update_time = #{updateTime},</if>
<if test="updateSite != null and updateSite != ''">update_site = #{updateSite},</if>
</trim>
where id = #{id}
where id = #{id} and del_flag='0'
</update>
<!-- 站点账单设置异常 3 -->
@ -817,7 +817,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<if test="updateTime != null">update_time = #{updateTime},</if>
<if test="updateSite != null and updateSite != ''">update_site = #{updateSite},</if>
</trim>
where id = #{id}
where id = #{id} and del_flag='0'
</update>
<delete id="deleteEmisSettleSubBillByBillCode" parameterType="String">