Jelajahi Sumber

开票-添加-是否手动开票字段

huangguoce 3 minggu lalu
induk
melakukan
a0f1585e0a

+ 1 - 0
jeeplus-modules/jeeplus-assess/src/main/java/com/jeeplus/assess/invoice/domain/FinanceInvoice.java

@@ -196,6 +196,7 @@ public class FinanceInvoice extends BaseEntity {
     private String redFlushReason;	//红冲原因
 
     private String isSmsNotice; //是否短信通知
+    private String isOmsBilling; //是否手动开票
 
     private static final long serialVersionUID = 1L;
 }

+ 6 - 6
jeeplus-modules/jeeplus-assess/src/main/java/com/jeeplus/assess/invoice/mapper/xml/FinanceInvoiceMapper.xml

@@ -52,7 +52,7 @@
             <result property="situationDetail" column="situation_detail" jdbcType="VARCHAR"/>
             <result property="redFlushReason" column="red_flush_reason" jdbcType="VARCHAR"/>
             <result property="isSmsNotice" column="is_sms_notice" jdbcType="VARCHAR"/>
-
+            <result property="isOmsBilling" column="is_oms_billing" jdbcType="VARCHAR"/>
         <result property="actualDrawerEmailAddress" column="actual_drawer_email_address" jdbcType="VARCHAR"/>
             <association property="financeInvoiceInvalidDTO" column="id" select="getFii" javaType="com.jeeplus.assess.invoice.service.dto.FinanceInvoiceInvalidDTO"></association>
             <collection property="financeInvoiceReceivablesDTOList" column="id" select="getFirList" ofType="com.jeeplus.assess.invoice.service.dto.FinanceInvoiceReceivablesDTO"></collection>
@@ -109,6 +109,7 @@
         <result property="situationDetail" column="situation_detail" jdbcType="VARCHAR"/>
         <result property="redFlushReason" column="red_flush_reason" jdbcType="VARCHAR"/>
         <result property="isSmsNotice" column="is_sms_notice" jdbcType="VARCHAR"/>
+        <result property="isOmsBilling" column="is_oms_billing" jdbcType="VARCHAR"/>
         <result property="actualDrawerEmailAddress" column="actual_drawer_email_address" jdbcType="VARCHAR"/>
     </resultMap>
 
@@ -221,7 +222,8 @@
         fi.related_invoice,
         fi.situation_detail,
         fi.red_flush_reason,
-        fi.is_sms_notice
+        fi.is_sms_notice,
+        fi.is_oms_billing
     </sql>
 
     <sql id="New_Base_Column_List">
@@ -268,10 +270,8 @@
         fi.related_invoice,
         fi.situation_detail,
         fi.red_flush_reason,
-        fi.is_sms_notice
-
-
-
+        fi.is_sms_notice,
+        fi.is_oms_billing
                                                      </sql>
 
     <select id="getFii" resultType="com.jeeplus.assess.invoice.service.dto.FinanceInvoiceInvalidDTO">

+ 32 - 10
jeeplus-modules/jeeplus-assess/src/main/java/com/jeeplus/assess/invoice/service/FinanceInvoiceService.java

@@ -302,7 +302,21 @@ public class FinanceInvoiceService extends ServiceImpl<FinanceInvoiceMapper, Fin
         if (StringUtils.isNotBlank(financeInvoiceDTO.getBillingType())){
             queryWrapper.eq("fi.billing_type",financeInvoiceDTO.getBillingType());
         }
-
+        //是否手动开票
+        if (StringUtils.isNotBlank(financeInvoiceDTO.getIsOmsBilling())) {
+            String isOmsBilling = financeInvoiceDTO.getIsOmsBilling();
+            if ("1".equals(isOmsBilling)) {
+                // 当值为0时,匹配is_oms_billing = 0 或者 is_oms_billing 为空
+                queryWrapper.and(wrapper -> wrapper
+                        .eq("fi.is_oms_billing", "1")
+                        .or()
+                        .isNull("fi.is_oms_billing") // 匹配数据库null值
+                        .or()
+                        .eq("fi.is_oms_billing", "")); // 匹配数据库空字符串
+            } else {
+                queryWrapper.eq("fi.is_oms_billing", isOmsBilling);
+            }
+        }
         IPage<FinanceInvoiceDTO> pageList = financeInvoiceMapper.findList(page, queryWrapper);
         pageList.getRecords().stream().forEach(item ->{
             // 发票申请
@@ -335,11 +349,13 @@ public class FinanceInvoiceService extends ServiceImpl<FinanceInvoiceMapper, Fin
         }
 
         List<WorkAttachmentInfo> omsInvoiceFileList  = SpringUtil.getBean(IWorkAttachmentApi.class).getByAttachmentIdListAndFlag(idList);
-        for (FinanceInvoiceDTO invoice : pageList.getRecords()) {
-            for (WorkAttachmentInfo workattachment : omsInvoiceFileList) {
-                if(invoice.getId().equals(workattachment.getAttachmentId())){
-                    invoice.setOmsAttachmentUrl(workattachment.getUrl());
-                    break;
+        if(CollectionUtil.isNotEmpty(omsInvoiceFileList)){
+            for (FinanceInvoiceDTO invoice : pageList.getRecords()) {
+                for (WorkAttachmentInfo workattachment : omsInvoiceFileList) {
+                    if(invoice.getId().equals(workattachment.getAttachmentId())){
+                        invoice.setOmsAttachmentUrl(workattachment.getUrl());
+                        break;
+                    }
                 }
             }
         }
@@ -437,10 +453,13 @@ public class FinanceInvoiceService extends ServiceImpl<FinanceInvoiceMapper, Fin
     public String saveForm(FinanceInvoiceDTO financeInvoiceDTO) throws Exception{
         String isOms = "0";
         if("5".equals(financeInvoiceDTO.getStatus())){
-            isOms = handleDoInvoice(financeInvoiceDTO);
-            //如果需要走开票系统,则设置状态为12
-            if("1".equals(isOms) || "2".equals(isOms)){
-                financeInvoiceDTO.setStatus("12");
+            //IsOmsBilling为0时,需要走系统开票
+            if("0".equals(financeInvoiceDTO.getIsOmsBilling())){
+                isOms = handleDoInvoice(financeInvoiceDTO);
+                //如果需要走开票系统,则设置状态为12
+                if("1".equals(isOms) || "2".equals(isOms)){
+                    financeInvoiceDTO.setStatus("12");
+                }
             }
         }
         FinanceInvoice financeInvoice = FinanceInvoiceWrapper.INSTANCE.toEntity(financeInvoiceDTO);
@@ -456,6 +475,9 @@ public class FinanceInvoiceService extends ServiceImpl<FinanceInvoiceMapper, Fin
         if(StringUtils.isNotBlank(financeInvoiceDTO.getIsSmsNotice())){
             financeInvoice.setIsSmsNotice(financeInvoiceDTO.getIsSmsNotice());
         }
+        if(StringUtils.isNotBlank(financeInvoiceDTO.getIsOmsBilling())){
+            financeInvoice.setIsOmsBilling(financeInvoiceDTO.getIsOmsBilling());
+        }
         if (ObjectUtil.isNotEmpty(financeInvoice)) {
             if(StringUtils.isBlank(financeInvoice.getId())){
                 //获取当前登录人信息

+ 1 - 0
jeeplus-modules/jeeplus-assess/src/main/java/com/jeeplus/assess/invoice/service/dto/FinanceInvoiceDTO.java

@@ -356,6 +356,7 @@ public class FinanceInvoiceDTO extends BaseDTO {
     private List<WorkAttachmentInfo> invoiceList;
 
     private String isSmsNotice; //是否短信通知
+    private String isOmsBilling; //是否手动开票
 
     private static final long serialVersionUID = 1L;
 }

+ 1 - 0
jeeplus-modules/jeeplus-finance/src/main/java/com/jeeplus/finance/invoice/domain/CwFinanceInvoice.java

@@ -215,6 +215,7 @@ public class CwFinanceInvoice extends BaseEntity {
     private String redFlushReason;	//红冲原因
 
     private String isSmsNotice;//是否短信通知
+    private String isOmsBilling;//是否手动开票
 
     private static final long serialVersionUID = 1L;
 }

+ 6 - 1
jeeplus-modules/jeeplus-finance/src/main/java/com/jeeplus/finance/invoice/mapper/xml/CwFinanceInvoiceMapper.xml

@@ -208,7 +208,8 @@
         fi.related_invoice,
         fi.situation_detail,
         fi.red_flush_reason,
-        fi.is_sms_notice
+        fi.is_sms_notice,
+        fi.is_oms_billing
     </sql>
 
     <sql id="File_Column_List">
@@ -590,6 +591,10 @@
         <if test="null != isSmsNotice and isSmsNotice != ''">
             is_sms_notice= #{isSmsNotice},
         </if>
+        <if test="null != isOmsBilling and isOmsBilling != ''">
+            is_oms_billing= #{isOmsBilling},
+        </if>
+
         remarks = #{remarks}
         where id = #{id}
     </update>

+ 33 - 13
jeeplus-modules/jeeplus-finance/src/main/java/com/jeeplus/finance/invoice/service/CwFinanceInvoiceService.java

@@ -287,7 +287,21 @@ public class CwFinanceInvoiceService extends ServiceImpl<CwFinanceInvoiceMapper,
             if (StringUtils.isNotBlank(cwFinanceInvoiceDTO.getName())) {
                 queryWrapper.like("fi.name", cwFinanceInvoiceDTO.getName());
             }
-
+            //是否手动开票
+            if (StringUtils.isNotBlank(cwFinanceInvoiceDTO.getIsOmsBilling())) {
+                String isOmsBilling = cwFinanceInvoiceDTO.getIsOmsBilling();
+                if ("1".equals(isOmsBilling)) {
+                    // 当值为0时,匹配is_oms_billing = 0 或者 is_oms_billing 为空
+                    queryWrapper.and(wrapper -> wrapper
+                            .eq("fi.is_oms_billing", "1")
+                            .or()
+                            .isNull("fi.is_oms_billing") // 匹配数据库null值
+                            .or()
+                            .eq("fi.is_oms_billing", "")); // 匹配数据库空字符串
+                } else {
+                    queryWrapper.eq("fi.is_oms_billing", isOmsBilling);
+                }
+            }
             // 对账人
 //            if (StringUtils.isNotBlank(cwFinanceInvoiceDTO.getReconciliationPeopleName())) {
 //                List<User> users = SpringUtil.getBean ( IUserApi.class ).selectListByName(cwFinanceInvoiceDTO.getReconciliationPeopleName());
@@ -417,17 +431,16 @@ public class CwFinanceInvoiceService extends ServiceImpl<CwFinanceInvoiceMapper,
         }
         List<WorkAttachmentInfo> omsInvoiceFileList  = SpringUtil.getBean(IWorkAttachmentApi.class).getByAttachmentIdListAndFlag(idList);
 
-
-        for (CwFinanceInvoiceDTO invoice : list.getRecords()) {
-            for (WorkAttachmentInfo workattachment : omsInvoiceFileList) {
-                if(invoice.getId().equals(workattachment.getAttachmentId())){
-                    invoice.setOmsAttachmentUrl(workattachment.getUrl());
-                    break;
+        if(CollectionUtil.isNotEmpty(omsInvoiceFileList)){
+            for (CwFinanceInvoiceDTO invoice : list.getRecords()) {
+                for (WorkAttachmentInfo workattachment : omsInvoiceFileList) {
+                    if(invoice.getId().equals(workattachment.getAttachmentId())){
+                        invoice.setOmsAttachmentUrl(workattachment.getUrl());
+                        break;
+                    }
                 }
             }
         }
-
-
         return list;
     }
 
@@ -699,10 +712,13 @@ public class CwFinanceInvoiceService extends ServiceImpl<CwFinanceInvoiceMapper,
     public CwFinanceInvoice saveForm(CwFinanceInvoiceDTO cwFinanceInvoiceDTO) throws Exception {
         String isOms = "0";
         if("5".equals(cwFinanceInvoiceDTO.getStatus())){
-            isOms = handleDoInvoice(cwFinanceInvoiceDTO);
-            //如果需要走开票系统,则设置状态为12
-            if("1".equals(isOms) || "2".equals(isOms)){
-                cwFinanceInvoiceDTO.setStatus("12");
+            //IsOmsBilling为0时,需要走系统开票
+            if("0".equals(cwFinanceInvoiceDTO.getIsOmsBilling())){
+                isOms = handleDoInvoice(cwFinanceInvoiceDTO);
+                //如果需要走开票系统,则设置状态为12
+                if("1".equals(isOms) || "2".equals(isOms)){
+                    cwFinanceInvoiceDTO.setStatus("12");
+                }
             }
         }
 
@@ -745,6 +761,10 @@ public class CwFinanceInvoiceService extends ServiceImpl<CwFinanceInvoiceMapper,
         if (StringUtils.isNotEmpty(cwFinanceInvoiceDTO.getIsSmsNotice())) {
             cwFinanceInvoice.setIsSmsNotice(cwFinanceInvoiceDTO.getIsSmsNotice());
         }
+        if (StringUtils.isNotEmpty(cwFinanceInvoiceDTO.getIsOmsBilling())) {
+            cwFinanceInvoice.setIsOmsBilling(cwFinanceInvoiceDTO.getIsOmsBilling());
+        }
+
         if (StringUtils.isNotBlank(cwFinanceInvoiceDTO.getId())) {
             cwFinanceInvoiceMapper.updateInfoById(cwFinanceInvoice);
         } else {

+ 1 - 0
jeeplus-modules/jeeplus-finance/src/main/java/com/jeeplus/finance/invoice/service/dto/CwFinanceInvoiceDTO.java

@@ -419,6 +419,7 @@ public class CwFinanceInvoiceDTO extends BaseDTO {
     
 
     private String isSmsNotice;//是否短信通知
+    private String isOmsBilling; //是否手动开票
 
     private static final long serialVersionUID = 1L;
 }