跳至主要內容

银海印花

chanchaw大约 3 分钟客户资料

更新必读

客户订单明细表

该表有 dto ,没有 vo,有表结构变更需要同时更新 dto

定制功能

完工报警推送微信消息

在染厂项目中制作了定时任务 Schedule.java 检测需要推送的数据发送请求给微信后台服务 https://新东方染厂微信云域名/wxpadbe/dev/pushTmpMsg2MillFactory 微信后台通过下面语句获取本厂的所有微信号推送报警消息,所以和用户表的 receive 权限无关

select * from user_weixin where qr_scene_str like concat(#{millName},'%本厂');

硬件相关

老服务器:192.168.1.200 新服务器:192.168.1.254 虚拟机CentOS7 :192.168.1.244

软件相关

80%客户是经销,白坯调拨工作量大,要求工作细致,后来商定按照业务员分,白坯入库时按照业务员入库,开订单时候通过别名区分具体客户,要求标签、细码单、发货单打印具体客户名(订单中的别名)。暂时考虑折率可能有问题。

工具

各班组工序产量

下面SQL来自于“员工产量汇总表”的存储过程 p_EmpGatherOutput,将业务代码独立出来形成

# 2021年4月10日 12:43:40
# 银海印花统计时间段内各部门班组工序产量
# 设置下面的 @startt 和 @endt 为起始日期和终止日期进行查询
DELIMITER $$
SET @startt='2021-04-09 07:30:00';
SET @endt='2021-04-10 07:30:00';
SELECT
       a.depName,
       a.empName,
       a.processName,
       sum(ifnull(a.qtyFact, 0))   qtyFact,
       sum(ifnull(a.pieceFact, 0)) pieceFact,
       sum(a.B_GS)                 B_GS
FROM (
         # 非染色刷卡产量汇总
         SELECT f.classGroup                                                                    className,
                e.name                                                                          depName,        -- 班次,班组
                b.B_People                                                                      empName,        -- 员工名
                a.B_ProcessName                                                                 processName,    -- 工序名
                g.name                                                                          tintingName,    -- 染色方式
                c.colorClothName                                                                colorClothName, -- 品名
                c.colorClothId                                                                  colorClothId,   -- 品种
                cast(sum(if(k.B_Value = 0, if(ifnull(c.B_QtyFact, 0) = 0, ifnull(c.kilogram, 0),
                                              ifnull(c.B_QtyFact, 0)), ifnull(c.kilogram, 0)) *
                         ifnull(a.B_Ratio, 0) / ifnull(a.B_PeopleNumber, 1)) AS DECIMAL(30, 2)) qtyFact,        -- 实际公斤
                cast(sum(if(k.B_Value = 0, if(ifnull(c.B_PiShuFact, 0) = 0, ifnull(c.piece, 0),
                                              ifnull(c.B_PiShuFact, 0)), ifnull(c.piece, 0)) *
                         ifnull(a.B_Ratio, 0) / ifnull(a.B_PeopleNumber, 1)) AS DECIMAL(30, 2)) pieceFact,      -- 实际匹数
                0                                                                               price,          -- 单价
                0                                                                               salary,         -- 工资
                round(sum(a.B_GS * a.B_Ratio / ifnull(a.B_PeopleNumber, 1)), 1)                 B_GS            -- 缸数
         FROM g_cjflowbilldetailprocess a
                  LEFT JOIN g_cjflowbilldetailpeople b ON a.B_ItemID = b.B_ID
                  LEFT JOIN plan c ON a.B_ID = c.vatNum
                  LEFT JOIN employee d ON b.B_People = d.name
                  LEFT JOIN department e ON d.departmentSid = e.sId
                  LEFT JOIN `class` f ON d.classSid = f.sId
                  LEFT JOIN tintingtype g ON c.tintingTypeId = g.sId
                  JOIN (SELECT ifnull(B_Value, 0) B_Value
                        FROM g_config_oneint
                        WHERE B_GroupName = 'WEB应用_员工产量计算方式') k
         WHERE c.status = 1
           AND (isnull(a.B_HardWareID) OR length(trim(a.B_HardWareID)) <= 0)
           AND a.B_Date BETWEEN @startt AND @endt
         GROUP BY c.tintingTypeId, c.colorClothId, c.id, a.B_ProcessName, b.B_People

         UNION ALL

         # 打卷刷卡产量汇总
         SELECT f.classGroup                                          className,
                e.name                                                depName,     -- 班次,班组
                b.B_PeopleName                                        empName,     -- 员工名
                '打卷'                                                  processName, -- 工序名
                g.name                                                tintingName, -- 染色方式
                c.colorClothName,                                                  -- 品名
                c.colorClothId,                                                    -- 品名
                cast(if(k.B_Value = 0, ifnull(y.B_GJ, 0) / ifnull(x.B_GJ, 1) *
                                       if(ifnull(c.B_QtyFact, 0) = 0, ifnull(c.kilogram, 0),
                                          ifnull(c.B_QtyFact, 0)),
                        ifnull(y.B_GJ, 0) / ifnull(x.B_GJ, 0) * ifnull(c.kilogram, 0)) /
                     ifnull(a.B_StrStaffNumber, 1) AS DECIMAL(30, 2)) qtyFact,     -- 实际公斤
                cast(if(k.B_Value = 0, ifnull(y.B_PS, 0) / ifnull(x.B_PS, 1) *
                                       if(ifnull(c.B_PiShuFact, 0) = 0, ifnull(c.piece, 0),
                                          ifnull(c.B_PiShuFact, 0)),
                        ifnull(y.B_PS, 0) / ifnull(x.B_PS, 1) * ifnull(c.piece, 0)) /
                     ifnull(a.B_StrStaffNumber, 1) AS DECIMAL(30, 2)) pieceFact,   -- 实际匹数
                0                                                     price,       -- 单价
                0                                                     salary,      -- 工资
                0                                                     B_GS         -- 缸数
         FROM (SELECT count(B_itemId)      piece,
                      ifnull(sum(B_GJ), 0) B_GJ,
                      B_StrStaffName,
                      B_StrStaffNumber,
                      B_ID,
                      B_DTRK,
                      B_ItemID
               FROM g_jrkbill
               GROUP BY B_ID, B_StrStaffName, B_DTRK) a
                  LEFT JOIN g_djpeople b ON a.B_StrStaffName = b.B_StrPeople
                  LEFT JOIN plan c ON a.B_ID = c.id
                  LEFT JOIN employee d ON b.B_PeopleName = d.name
                  LEFT JOIN department e ON d.departmentSid = e.sId
                  LEFT JOIN class f ON d.classSid = f.sId
                  LEFT JOIN tintingtype g ON c.tintingTypeId = g.sId
                  LEFT JOIN (SELECT B_ID, ifnull(sum(B_GJ), 0) B_GJ, count(*) B_PS, ifnull(sum(B_MS), 0) B_MS
                             FROM g_jrkbill
                             GROUP BY B_ID) x ON x.B_ID = c.id
                  LEFT JOIN (SELECT B_ID,
                                    ifnull(sum(B_GJ), 0) B_GJ,
                                    count(*)             B_PS,
                                    B_StrStaffName,
                                    ifnull(sum(B_MS), 0) B_MS
                             FROM g_jrkbill
                             WHERE B_DTRK BETWEEN @startt AND @endt
                             GROUP BY B_ID, B_StrStaffName) y
                            ON y.B_StrStaffName = a.B_StrStaffName AND c.id = y.B_ID
                  JOIN (SELECT ifnull(B_Value, 0) B_Value
                        FROM g_config_oneint
                        WHERE B_GroupName = 'WEB应用_员工产量计算方式') k
         WHERE c.`status` = 1
           AND a.B_ItemID IS NOT NULL
           AND a.B_DTRK BETWEEN @startt AND @endt
         GROUP BY c.tintingTypeId, c.colorClothId, c.id, b.B_PeopleName) a
WHERE empName IS NOT NULL
GROUP BY a.processName, a.empName
ORDER by a.depName,a.empName,a.processName;$$
DELIMITER ;

在 2021年4月11日 13:19:24 使用上面代码创建了存储过程,之后可以这样查看产量

CALL usp_getDepYield('2021-04-10 07:30:00','2021-04-11 07:30:00');