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 selectEmisSettleSubBillById(Long id);
public EmisSettleSubBill selectSettleSubBillByBillCode(String billCode); public List<EmisSettleSubBill> selectSettleSubBillListByBillCode(String billCode);
public EmisSettleSubBill selectSettleSubBillBySubBillNo(String subBillNo); public EmisSettleSubBill selectSettleSubBillBySubBillNo(String subBillNo);

View File

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

View File

@ -179,11 +179,20 @@ public class EmisWaybillAjustApplyServiceImpl extends EmisBaseService implements
emisWaybillAjustApply.setCenterConfirmManCode(getCurrentUser().getEmpCode()); emisWaybillAjustApply.setCenterConfirmManCode(getCurrentUser().getEmpCode());
// 获取账单状态,若账单处于非未确认状态,不允许审核 // 获取账单状态,若账单处于非未确认状态,不允许审核
EmisSettleSubBill emisSettleSubBill=getSettleSubBillByBillCode(emisWaybillAjustApply.getBillCode()); List<EmisSettleSubBill> emisSettleSubBillList=getSettleSubBillListByBillCode(emisWaybillAjustApply.getBillCode());
if("1".equals(emisSettleSubBill.getBlConfirmCenter())){ if(emisSettleSubBillList!=null && emisSettleSubBillList.size()>1){
throw new EmisBizError(EmisBizErrorType.FAIL,"已确认账单!"); 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 jsonObject = JSONObject.parseObject(emisWaybillAjustApply.getJsonData());
JSONObject newValueJObj=jsonObject.getJSONObject("newValue"); JSONObject newValueJObj=jsonObject.getJSONObject("newValue");

View File

@ -510,17 +510,17 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
where a.id = #{id} where a.id = #{id}
</select> </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 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 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>
<select id="selectSubBillListBySettleBillNo" parameterType="String" resultMap="EmisSettleSubBillResult"> <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 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 from emis_settle_sub_bill a
where a.settle_bill_no = #{settleBillNo} where a.settle_bill_no = #{settleBillNo} and del_flag='0'
</select> </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="createSite != null and createSite != ''">create_site = #{createSite},</if>
<if test="updateSite != null and updateSite != ''">update_site = #{updateSite},</if> <if test="updateSite != null and updateSite != ''">update_site = #{updateSite},</if>
</trim> </trim>
where id = #{id} where id = #{id} and del_flag='0'
</update> </update>
<!-- 更新合账单 --> <!-- 更新合账单 -->
@ -666,7 +666,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<if test="updateTime != null">update_time = #{updateTime},</if> <if test="updateTime != null">update_time = #{updateTime},</if>
<if test="updateSite != null and updateSite != ''">update_site = #{updateSite},</if> <if test="updateSite != null and updateSite != ''">update_site = #{updateSite},</if>
</trim> </trim>
where id = #{id} where id = #{id} and del_flag='0'
</update> </update>
<!-- 更新合账单 --> <!-- 更新合账单 -->
@ -679,7 +679,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<if test="updateTime != null">update_time = #{updateTime},</if> <if test="updateTime != null">update_time = #{updateTime},</if>
<if test="updateSite != null and updateSite != ''">update_site = #{updateSite},</if> <if test="updateSite != null and updateSite != ''">update_site = #{updateSite},</if>
</trim> </trim>
where id = #{id} where id = #{id} and del_flag='0'
</update> </update>
@ -693,7 +693,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<if test="updateSite != null and updateSite != ''">update_site = #{updateSite},</if> <if test="updateSite != null and updateSite != ''">update_site = #{updateSite},</if>
</trim> </trim>
where id in where del_flag='0' and id in
<foreach item="id" collection="ids" open="(" separator="," close=")"> <foreach item="id" collection="ids" open="(" separator="," close=")">
#{id} #{id}
</foreach> </foreach>
@ -710,7 +710,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<if test="updateTime != null">update_time = #{updateTime},</if> <if test="updateTime != null">update_time = #{updateTime},</if>
<if test="updateSite != null and updateSite != ''">update_site = #{updateSite},</if> <if test="updateSite != null and updateSite != ''">update_site = #{updateSite},</if>
</trim> </trim>
where id = #{id} where id = #{id} and del_flag='0'
</update> </update>
<!-- 中心取消确认 --> <!-- 中心取消确认 -->
@ -724,7 +724,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<if test="updateTime != null">update_time = #{updateTime},</if> <if test="updateTime != null">update_time = #{updateTime},</if>
<if test="updateSite != null and updateSite != ''">update_site = #{updateSite},</if> <if test="updateSite != null and updateSite != ''">update_site = #{updateSite},</if>
</trim> </trim>
where id = #{id} where id = #{id} and del_flag='0'
</update> </update>
<!-- 中心确认不出账 2--> <!-- 中心确认不出账 2-->
@ -739,7 +739,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<if test="updateTime != null">update_time = #{updateTime},</if> <if test="updateTime != null">update_time = #{updateTime},</if>
<if test="updateSite != null and updateSite != ''">update_site = #{updateSite},</if> <if test="updateSite != null and updateSite != ''">update_site = #{updateSite},</if>
</trim> </trim>
where id = #{id} where id = #{id} and del_flag='0'
</update> </update>
<!-- 中心账单设置异常 3 --> <!-- 中心账单设置异常 3 -->
@ -754,7 +754,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<if test="updateTime != null">update_time = #{updateTime},</if> <if test="updateTime != null">update_time = #{updateTime},</if>
<if test="updateSite != null and updateSite != ''">update_site = #{updateSite},</if> <if test="updateSite != null and updateSite != ''">update_site = #{updateSite},</if>
</trim> </trim>
where id = #{id} where id = #{id} and del_flag='0'
</update> </update>
<!-- 站点业务确认 --> <!-- 站点业务确认 -->
@ -769,7 +769,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<if test="updateTime != null">update_time = #{updateTime},</if> <if test="updateTime != null">update_time = #{updateTime},</if>
<if test="updateSite != null and updateSite != ''">update_site = #{updateSite},</if> <if test="updateSite != null and updateSite != ''">update_site = #{updateSite},</if>
</trim> </trim>
where id = #{id} where id = #{id} and del_flag='0'
</update> </update>
<!-- 站点取消确认 --> <!-- 站点取消确认 -->
@ -785,7 +785,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<if test="updateTime != null">update_time = #{updateTime},</if> <if test="updateTime != null">update_time = #{updateTime},</if>
<if test="updateSite != null and updateSite != ''">update_site = #{updateSite},</if> <if test="updateSite != null and updateSite != ''">update_site = #{updateSite},</if>
</trim> </trim>
where id = #{id} where id = #{id} and del_flag='0'
</update> </update>
<!-- 站点确认不出账 2--> <!-- 站点确认不出账 2-->
@ -801,7 +801,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<if test="updateTime != null">update_time = #{updateTime},</if> <if test="updateTime != null">update_time = #{updateTime},</if>
<if test="updateSite != null and updateSite != ''">update_site = #{updateSite},</if> <if test="updateSite != null and updateSite != ''">update_site = #{updateSite},</if>
</trim> </trim>
where id = #{id} where id = #{id} and del_flag='0'
</update> </update>
<!-- 站点账单设置异常 3 --> <!-- 站点账单设置异常 3 -->
@ -817,7 +817,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<if test="updateTime != null">update_time = #{updateTime},</if> <if test="updateTime != null">update_time = #{updateTime},</if>
<if test="updateSite != null and updateSite != ''">update_site = #{updateSite},</if> <if test="updateSite != null and updateSite != ''">update_site = #{updateSite},</if>
</trim> </trim>
where id = #{id} where id = #{id} and del_flag='0'
</update> </update>
<delete id="deleteEmisSettleSubBillByBillCode" parameterType="String"> <delete id="deleteEmisSettleSubBillByBillCode" parameterType="String">