廖井涛
2024-10-24 014cf0c32726b85230809c78a83963af8707ae6b
Merge branch 'master' of http://bore.pub:10439/r/ERP_override
1个文件已添加
10个文件已修改
206 ■■■■ 已修改文件
north-glass-erp/northglass-erp/src/components/pp/TagStyleDesigner.vue 27 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
north-glass-erp/northglass-erp/src/hook/queue.js 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
north-glass-erp/northglass-erp/src/views/sd/glassPrice/GlassPriceList.vue 15 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
north-glass-erp/northglass-erp/src/views/sd/glassPrice/GlassPriceSet.vue 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
north-glass-erp/northglass-erp/src/views/sd/glassPrice/pages/Glass.vue 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
north-glass-erp/northglass-erp/src/views/sd/glassPrice/pages/Hollow.vue 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
north-glass-erp/northglass-erp/src/views/sd/glassPrice/pages/Interlayer.vue 4 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
north-glass-erp/northglass-erp/src/views/sd/glassPrice/pages/Process.vue 103 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
north-glass-erp/src/main/java/com/example/erp/entity/sd/GlassPriceBasic.java 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
north-glass-erp/src/main/java/com/example/erp/service/pp/ReportingWorkService.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
north-glass-erp/src/main/java/com/example/erp/service/sd/GlassPriceBasicService.java 36 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
north-glass-erp/northglass-erp/src/components/pp/TagStyleDesigner.vue
@@ -23,6 +23,9 @@
let dataList = ref([])
let lastList = ref([])
let list = ref([])
//打印机
const printerData = ref()
const printerList = ref()
// 纸张类型
const paperTypes = {
  '成品标签': {
@@ -666,10 +669,11 @@
    hiprint.hiwebSocket.setHost("http://localhost:17521")
  }
  //获取打印机列表
  /*hiprint.refreshPrinterList((list) => {
    console.log('refreshPrinterList')
    console.log(list)
  });*/
  hiprint.refreshPrinterList((list) => {
    // console.log('refreshPrinterList')
    // console.log(list)
    printerList.value=list
  });
};
@@ -859,8 +863,9 @@
    object = {table:lastList.value}
    columnsNum = (list.panels[0].printElements[0].options.gridColumns || 1)
  }
  let printer=printerData.value
  if(type===1){
    const queuePrinter = new QueuePrinter( object,hiprintTemplate,columnsNum)
    const queuePrinter = new QueuePrinter( object,hiprintTemplate,columnsNum,printer)
    queuePrinter.tick
  }else{
    hiprintTemplate.value.print(object)
@@ -917,13 +922,13 @@
          </el-select>
        </el-col>
        <el-col :span="3">
          <el-select v-model="stateValue" :placeholder="$t('processCard.pleaseSelect')" allow-create class="m-2" clearable
                     filterable style="width: 140px">
          <el-select v-model="printerData" :placeholder="$t('processCard.pleaseSelect')" clearable default-value="default_city"
                     style="width: 160px">
            <el-option
                v-for="item in stateOptions"
                :key="item.value"
                :label="item.label"
                :value="item.value"
                v-for="item in printerList"
                :key="item.displayName"
                :label="item.name"
                :value="item.name"
            />
          </el-select>
        </el-col>
north-glass-erp/northglass-erp/src/hook/queue.js
@@ -2,7 +2,7 @@
 * Queue hook
 * 打印队列方法
 */
export default function QueuePrinter(list,hiprintTemplate,columnsNum){
export default function QueuePrinter(list,hiprintTemplate,columnsNum,printer){
    const queue = JSON.parse(JSON.stringify(list));
    // 添加打印任务
    this.printJob = function(job) {
@@ -14,7 +14,8 @@
                if(typeof queue === 'object' && Array.isArray(queue)){
                    if (queue.length > 0) {
                        hiprintTemplate.value.print2(queue[0])
                        console.log(printer)
                        hiprintTemplate.value.print2(queue[0],{printer:printer})
                        queue.shift(); // 打印任务,并从队列中移除
                    }else{
                        clearInterval(this.tick)
north-glass-erp/northglass-erp/src/views/sd/glassPrice/GlassPriceList.vue
@@ -84,13 +84,24 @@
        inputPattern:/^.{1,20}$/,
        inputErrorMessage: t('components.message')
      }).then(({ value }) => {
        alert(value)
        const data = {
          id: row.id,
          price: value
        }
        request.post(`/glassPriceBasic/updateGlassPriceById`,data).then((res) => {
            if(res.code==='200' && res.data){
              ElMessage.success("数据保存成功")
              router.push({path:'/main/glassPrice/glassPriceList',query:{random:Math.random()}})
            }else{
              ElMessage.warning('数据保存失败')
            }
        })
      })
      break
    }
    case 'delete': {
      request.post(`/glassPriceBasic/deleteGlassPriceById/${row.id}`).then((res) => {
        if(res.code==200){
        if(res.code==='200' && res.data){
          ElMessage.success(t('searchOrder.msgDeleteSuccess'))
          router.push({path:'/main/glassPrice/glassPriceList',query:{random:Math.random()}})
        }else{
north-glass-erp/northglass-erp/src/views/sd/glassPrice/GlassPriceSet.vue
@@ -2,6 +2,7 @@
import glass from './pages/Glass.vue'
import Interlayer from './pages/Interlayer.vue'
import Hollow from './pages/Hollow.vue'
import Process from './pages/Process.vue'
import {onMounted, ref} from "vue";
import request from "@/utils/request";
import {ElMessage} from "element-plus";
@@ -71,6 +72,9 @@
      <el-tab-pane :name="3" label="中空">
        <hollow @getChild="getChild" v-if="tabsValue===3" :basicData="BasicData"/>
      </el-tab-pane>
      <el-tab-pane :name="4" label="工艺">
        <process @getChild="getChild" v-if="tabsValue===4" :basicData="BasicData"/>
      </el-tab-pane>
    </el-tabs>
  </div>
</template>
north-glass-erp/northglass-erp/src/views/sd/glassPrice/pages/Glass.vue
@@ -52,7 +52,8 @@
  <el-row :gutter="8">
    <el-col :span="3">
    <el-input
        v-model.number="stuff.price"
        v-model="stuff.price"
        type="number"
        placeholder="元/m²"
        class="delInput"/>
    </el-col>
north-glass-erp/northglass-erp/src/views/sd/glassPrice/pages/Hollow.vue
@@ -67,7 +67,7 @@
        <el-option v-for="item in props.basicData.hollowType"
                   :key="item.id"
                   :label="item.basicName+'('+item.nickname+')'"
                   :value="item.nickname"
                   :value="'('+item.nickname+')'"
        />
      </el-select>
    </el-col>
@@ -76,7 +76,9 @@
  <el-row :gutter="8">
    <el-col :span="3">
      <el-input
          v-model.number="hollowBasic.price"
          v-model="hollowBasic.price"
          type="number"
          placeholder="元/m²"
          class="delInput"/>
    </el-col>
  </el-row>
north-glass-erp/northglass-erp/src/views/sd/glassPrice/pages/Interlayer.vue
@@ -76,7 +76,9 @@
  <el-row :gutter="8">
    <el-col :span="3">
      <el-input
          v-model.number="interlayerBasic.price"
          v-model="interlayerBasic.price"
          type="number"
          placeholder="元/m²"
          class="delInput"/>
    </el-col>
  </el-row>
north-glass-erp/northglass-erp/src/views/sd/glassPrice/pages/Process.vue
New file
@@ -0,0 +1,103 @@
<script setup>
import {ref} from "vue"
import {useI18n} from "vue-i18n"
const { t } = useI18n()
const props  = defineProps({
  basicData:{
    stuffColor:null,
    stuffThickness:null,
    process:[]
  }
})
console.log(props.basicData)
let stuff = ref({
  thickness:'',
  color:'',
  process:'',
  price:null,
  type:'process'
})
const emit = defineEmits(['getChild'])
const save = ()=>{
  emit('getChild',stuff.value)
}
</script>
<template>
  <el-row :gutter="8">
    <el-col :span="12">
      <el-select v-model.trim="stuff.thickness" size="small" clearable :placeholder="$t('product.msg.thickness')" >
        <el-option v-for="item in props.basicData.stuffThickness"
                   :key="item.id"
                   :label="item.basicName"
                   :value="item.basicName"
        />
      </el-select>
    </el-col>
  </el-row>
  <el-row :gutter="8">
    <el-col :span="12">
      <el-select v-model.trim="stuff.color" size="small" clearable :placeholder="$t('product.msg.color')"  filterable>
        <el-option v-for="item in props.basicData.stuffColor"
                   :key="item.id"
                   :label="item.basicName"
                   :value="item.basicName"
        />
      </el-select>
    </el-col>
  </el-row>
  <el-row :gutter="8">
    <el-col :span="12">
      <el-select v-model.trim="stuff.process" size="small" clearable placeholder="原片工艺"  filterable>
        <el-option v-for="item in props.basicData.process"
                   :key="item.id"
                   :label="item.basicName"
                   :value="item.basicName"
        />
      </el-select>
    </el-col>
  </el-row>
  <el-row :gutter="8">
    <el-col :span="3">
      <el-input
          v-model="stuff.price"
          type="number"
          placeholder="元/m²"
          class="delInput"/>
    </el-col>
  </el-row>
  <el-row :gutter="8">
    <el-col :span="3">
      <el-button @click="save" type="primary" >保存</el-button>
    </el-col>
  </el-row>
</template>
<style scoped>
.el-row{
  margin-bottom: 5px;
}
.el-input{
  width: 182px;
}
/deep/.delInput input::-webkit-outer-spin-button,
/deep/.delInput input::-webkit-inner-spin-button {
  -webkit-appearance: none!important;
}
/deep/.delInput input[type="number"]{
  -moz-appearance: textfield;
}
</style>
north-glass-erp/src/main/java/com/example/erp/entity/sd/GlassPriceBasic.java
@@ -14,6 +14,7 @@
    private String type;
    private Double thickness;
    private String name;
    private String process;
    private Double price;
    private String json;
    private LocalDateTime createTime;
north-glass-erp/src/main/java/com/example/erp/service/pp/ReportingWorkService.java
@@ -344,7 +344,7 @@
            }
            //更新流程卡表的报工数量
            if (Objects.equals(reportingWork.getNextProcess(), "")) {
            if (Objects.equals(reportingWork.getNextProcess(), "")|| Objects.equals(reportingWork.getNextProcess(), null)) {
                LambdaUpdateWrapper<FlowCard> flowCardLambdaUpdateWrapper =
                        new LambdaUpdateWrapper<>();
                flowCardLambdaUpdateWrapper
north-glass-erp/src/main/java/com/example/erp/service/sd/GlassPriceBasicService.java
@@ -12,6 +12,7 @@
import org.springframework.stereotype.Service;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import java.util.Arrays;
import java.util.List;
import java.util.Map;
import java.util.Objects;
@@ -20,11 +21,11 @@
@DS("sd")
public class GlassPriceBasicService {
    private final GlassPriceBasicMapper glassPriceBasicMapper;
    @Autowired
    private ProductDetailMapper productDetailMapper;
    private final ProductDetailMapper productDetailMapper;
    public GlassPriceBasicService(GlassPriceBasicMapper glassPriceBasicMapper) {
    public GlassPriceBasicService(GlassPriceBasicMapper glassPriceBasicMapper, ProductDetailMapper productDetailMapper) {
        this.glassPriceBasicMapper = glassPriceBasicMapper;
        this.productDetailMapper = productDetailMapper;
    }
    //保存玻璃价格
@@ -50,8 +51,14 @@
                    prams.get("thickness").toString()
                            + prams.get("color").toString()
                            + prams.get("types").toString());
        } else if (Objects.equals(type, "process")) {
            glassPriceBasic.setName(prams.get("thickness").toString() + prams.get("color").toString()+prams.get("process").toString());
            glassPriceBasic.setProcess(prams.get("process").toString());
        }
        GlassPriceBasic glassPriceBasic1 = glassPriceBasicMapper.selectOne(new QueryWrapper<GlassPriceBasic>().eq("name", glassPriceBasic.getName()));
        GlassPriceBasic glassPriceBasic1 = glassPriceBasicMapper.selectOne(
                new QueryWrapper<GlassPriceBasic>()
                        .eq("name", glassPriceBasic.getName())
        );
        if(glassPriceBasic1 != null){
            return false;
        }
@@ -63,29 +70,42 @@
                .selectList(new QueryWrapper<ProductDetail>().eq("prod_id", productId));
        final Double[] money = {0.0};
        productDetails.forEach(productDetail -> {
        for (ProductDetail productDetail : productDetails){
            Map<String,String> separation =  JSON.parseObject(
                    productDetail.getSeparation(), new TypeReference<Map<String, String>>(){});
            String name = "";
            switch (productDetail.getDetailType()) {
                case "glass":
                    name = separation.get("thickness") + separation.get("color");
                    String[] process = productDetail.getProcess().split("->");
                    for (String s : process) {
                        GlassPriceBasic glassPriceBasic = glassPriceBasicMapper.selectOne(
                                new QueryWrapper<GlassPriceBasic>()
                                        .eq("name", name+s));
                        if(glassPriceBasic == null) {
                            return 0.0;
                        }else{
                            money[0] += glassPriceBasic.getPrice();
                        }
                    }
                    break;
                case "hollow":
                    name = separation.get("thickness") + separation.get("gasType") + separation.get("type");
                    name = separation.get("thickness") + separation.get("gasType") + separation.get("Type");
                    break;
                case "interlayer":
                    name = separation.get("thickness") + separation.get("color") + separation.get("type");
                    break;
            }
            GlassPriceBasic glassPriceBasic = glassPriceBasicMapper
                    .selectOne(new QueryWrapper<GlassPriceBasic>().eq("name", name));
            if(glassPriceBasic == null) {
                money[0]= 0.0;
                return;
                return money[0];
            }
            money[0] += glassPriceBasic.getPrice();
        });
        }
        return money[0];
    }